数值分析-插值法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

②当 n=20 时,我们在命令窗口中输入以下的命令: clear,clc X=-1:0.1:1; Y=1./(25*X.^2+1); dx0= 0.14201;dxn= -0.14201; S=csfit(X,Y,dx0,dxn) x1=-1:0.01:-0.5;y1=polyval(S(1,:),x1-X(1)); x2=-0.5:0.01:0;y2=polyval(S(2,:),x2-X(2)); x3=0:0.01:0.5; y3=polyval(S(3,:),x3-X(3)); x4=0.5:0.01:1;y4=polyval(S(4,:),x4-X(4)); plot(x1,y1,x2,y2,x3,y3,x4,y4, X,Y,'.') 结果如图:
temp=A(k-1)/B(k-1); B(k)=B(k)-temp*C(k-1); U(k)=U(k)-temp*U(k-1); end M(N)=U(N-1)/B(N-1); for k=N-2:-1:1 M(k+1)=(U(k)-C(k)*M(k+2))/B(k); end M(1)=3*(D(1)-dx0)/H(1)-M(2)/2; M(N+1)=3*(dxn-D(N))/H(N)-M(N)/2; for k=0:N-1 S(k+1,1)=(M(k+2)-M(k+1))/(6*H(k+1)); S(k+1,2)=M(k+1)/2; S(k+1,3)=D(k+1)-H(k+1)*(2*M(k+1)+M(k+2))/6; S(k+1,4)=Y(k+1); end ②当 n=10 时,我们在命令窗口中输入以下的命令: clear,clc X=-1:0.2:1; Y=1./(25*X.^2+1); dx0= 0.14201;dxn= -0.14201; S=csfit(X,Y,dx0,dxn) x1=-1:0.01:-0.5;y1=polyval(S(1,:),x1-X(1)); x2=-0.5:0.01:0;y2=polyval(S(2,:),x2-X(2)); x3=0:0.01:0.5; y3=polyval(S(3,:),x3-X(3)); x4=0.5:0.01:1;y4=polyval(S(4,:),x4-X(4)); plot(x1,y1,x2,y2,x3,y3,x4,y4, X,Y,'.') 结果如图:
for k=j:n D(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1));
end end C=D(n,n); for k=(n-1):-1:1
C=conv(C,poly(X(k))) m=length(C); C(m)= C(m)+D(k,k); end ②当 n=10 时,我们在命令窗口中输入以下的命令: clear,clf,hold on; X=-1:0.2:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.2:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和 f(x)图形:
③当 n=20 时,我们在命令窗口中输入以下的命令: clear,clf,hold on;
X=-1:0.1:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.1:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和 f(x)图形:
plot(x,y,'x');
xlabel('x');
ylabel('y'); 结果如图:
(2)、4 次拟合曲线 输入命令:
x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0]; y=[1.0 0.41 0.50 0.61 0.91 2.02 2.46]; cc=polyfit(x,y,4); xx=x(1):0.1:x(length(x)); yy=polyval(cc,xx); plot(xx,yy,'r'); hold on;
第三章 函数逼近与快速傅里叶变换
2. 由实验给出数据表
x
0.0
0.1
0.2
0.3
0.5
0.8
1.0
y
1.0
0.41
0.50
0.61
0.91
2.02
2.46
试求 3 次、4 次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线,用 图示数据曲线及相应的三种拟合曲线。
(1)、三次拟合曲线: 命令wk.baidu.com下:
第二章 插值法
2.在区间[-1,1]上分别取 n=10,20 用两组等距节点对龙哥函数 f(x)=1/(1+25*x^2)做多项式插值 及三次样条插值,对每个 n 值,分别画出插值函数及 f(x)的图形。 (1)多项式插值 ①先建立一个多项式插值的 M-file; 输入如下的命令(如牛顿插值公式): function [C,D]=newpoly(X,Y) n=length(X); D=zeros(n,n) D(:,1)=Y' for j=2:n
x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
y=[1.0 0.41 0.50 0.61 0.91 2.02 2.46];
cc=polyfit(x,y,3);
xx=x(1):0.1:x(length(x));
yy=polyval(cc,xx);
plot(xx,yy,'--');
hold on;
(2)三次样条插值 ①先建立一个多项式插值的 M-file; 输入如下的命令: function S=csfit(X,Y,dx0,dxn) N=length(X)-1; H=diff(X); D=diff(Y)./H; A=H(2:N-1); B=2*(H(1:N-1)+H(2:N)); C=H(2:N); U=6*diff(D); B(1)=B(1)-H(1)/2; U(1)=U(1)-3*(D(1)); B(N-1)=B(N-1)-H(N)/2; U(N-1)=U(N-1)-3*(-D(N)); for k=2:N-1
相关文档
最新文档