📄 exm04122_1.m
字号:
x=(0:0.1:1)*2*pi;y=sin(x); % 获得样点数据
pp=spline(x,y); % 求PP形式的样条函数pp,它近似表示
int_pp=fnint(pp); % 样条函数pp的数值不定积分int_pp,应近似 。
der_pp=fnder(pp); % 样条函数pp的数值导函数der_pp,应近似 。
% 在基础区间上,计算三个样条函数与理论值的最大误差
xx=(0:0.01:1)*2*pi;
err_yy=max(abs(ppval(pp,xx)-sin(xx)))
err_int=max(abs(ppval(int_pp,xx)-(1-cos(xx))))
err_der=max(abs(ppval(der_pp,xx)-cos(xx)))
% 计算y(x)在区间[1,2]上的定积分
DefiniteIntegral.bySpline=ppval(int_pp,[1,2])*[-1;1]; % <2>
DefiniteIntegral.byTheory=(1-cos(2))-(1-cos(1));
% 计算dy(3)/dx
Derivative.bySpline=fnval(der_pp,3);
Derivative.byTheory=cos(3);
Derivative.byDiference=(sin(3.01)-sin(3))/0.01; %前向差分近似
DefiniteIntegral,Derivative
fnplt(pp,'b-');hold on
fnplt(int_pp,'m:'),fnplt(der_pp,'r--');hold off
legend('y(x)','S(x)','dy/dx')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -