matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

7.7 三角多项式逼近及其MATLAB程序

7.7  三角多项式逼近及其MATLAB程序

计算三角多项式的MATLAB主程序

function [A,B,Y1,Rm]=sanjiao(X,Y,X1,m)

n= length(X)-1;max1=fix((n-1)/2);

if m > max1

    m=max1;

end

A=zeros(1,m+1);B=zeros(1,m+1);

Ym=(Y(1)+Y(n+1))/2; Y(1)=Ym; Y(n+1)=Ym; A(1)=2*sum(Y)/n;

for i=1:m

B(i+1)=sin(i*X)*Y'; A(i+1)=cos(i*X)*Y';

end

  A=2*A/n; B=2*B/n; A(1)=A(1)/2;Y1=A(1);

for k=1:m

Y1=Y1+A(k+1)*cos(k*X1)+ B(k+1)*sin(k*X1);

Tm=A(1)+A(k+1).*cos(k*X)+ B(k+1).*sin(k*X); k=k+1;

end

Y;Tm; Rm=(sum(Y-Tm).^2)/n;

例7.7.1  根据上的个等距横坐标点 和函数.

(1)求的6阶三角多项式逼近,计算均方误差;

(2)将这三个三角多项式分别与的傅里叶级数

的前6项进行比较;

(3)利用三角多项式分别计算Xi= -2, 2.5的值;

(4)在同一坐标系中,画出函数的三角多项式和数据点的图形.

解 (1)输入程序

>> X1=-pi:2*pi/13:pi;Y1=2*sin(X1/3);X1i=[-2,2.5];

[A1,B1,Y11,Rm1]=sanjiao(X1,Y1,X1i,6),

 X2=-pi:2*pi/60:pi;Y2=2*sin(X2/3);

[A2,B2,Y12,Rm2]=sanjiao(X2,Y2,X1i,6)

X3=-pi:2*pi/350:pi;Y3=2*sin(X3/3);

[A3,B3,Y13,Rm3]=sanjiao(X3,Y3,X1i,6)

X1i=[-2,2.5];Y1=2*sin(X1i/3)

for n=1:6

bi=(-1)^(n+1)*18*sqrt(3)*n/(pi*(9*n^2-1))

end

(2)画图,输入程序

>>X1=-pi:2*pi/13:pi;Y1=2*sin(X1/3);

Xi=-pi:0.001:pi; f=2*sin(Xi/3);

[A1,B1,Y1i,R1m]=sanjiao(X1,Y1,Xi,6);X2=-pi:2*pi/60:pi;

Y2=2*sin(X2/3); X3=-pi:2*pi/350:pi;Y3=2*sin(X3/3);

[A2,B2,Y2i,R2m]=sanjiao(X2,Y2,Xi,6);

[A3,B3,Y3i,R3m]=sanjiao(X3,Y3,Xi,6);

plot(X1,Y1,'r*', Xi, Y1i,'b-',Xi, Y2i,'g--', Xi, Y3i, 'm:', Xi, f, 'k-.')

xlabel('x'),ylabel('y')

legend('数据点(xi,yi)','n=13的三角多项式','n=60的三角多项式','n=350的三角多项式','函数f(x)')

title('例7.7.1 的数据点(xi,yi)、n=13,60,350的三角多项式T3和函数f(x)的图形')

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3070700.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1