计算方法实验+编程代码



《计算方法实验+编程代码》由会员分享,可在线阅读,更多相关《计算方法实验+编程代码(9页珍藏版)》请在装配图网上搜索。
1、作多 计算方法实验报告 1在区间[-1,1]上分别取n=10,20,用两组等距节点对龙格函数f (x)二 1 + 25 x 2 项式插值,对每个n值,分别画出插值函数及/(x)的图形。 解:n=10时: n=20 时: 作分 2在区间[-1,1]上分别取n=10,20,用两组等距节点对龙格函数f (x)二一 1 + 25 x 2 段线性插值,对每个n值,分别画出插值函数及/(x)的图形。 解:n =10: n=20 时: 12 3对龙格函数f (x)二 在区间[-1,1]上取x =-1 + k, k二0,1,2 n , n分别 1 +
2、25 x 2 k n 取10,20,试分别求3次、5次最小二乘拟合多项式,打印出此曲线拟合函数,分 别画出此拟合函数及f (x)的图形。 3次最小二乘拟合 n=10 时: n=20 时: 5次最小二乘拟合 n=10 时: n=20 时: 4取点x = cos " +1兀,k = 0,1,2 n , n分别取10,20,对龙格函数f (x)= k 2(n +1) 1 + 25 x 2 作多项式插值,对每个n值,分别画出插值函数及/(x)的图形。解:n=10时: n=20 时: 5 比较上面三组近似函数,说说你的体会。你能在此基础上
3、做进一步的探索吗, 比如n如果继续增加下去,结果会如何? 附注:编程语言不限,但用 matlab 等语言编程时,不得直接调用现成的插值与逼近函数, 需要你在我们课堂教学的基础上,编程实现上述算法。 解:用不同方法进行插值,得出的插值函数差异较大。其中,最小二乘拟合的曲 线精度较低,多项式插值拟合的曲线精度较高。曲线拟合的精度不仅和拟合方法 有关,还和采样点位置的选取、个数有关。如1,4 题都是多项式插值,但是第 4 题的拟合度最高。 n 值越大,拟合的函数会更加接近原函数。 程序: 1.等距节点多项式插值 clear; clc; syms x n=input('input n='
4、); x1=linspace(-1,1,n+1); y1=1./(1.+25*x1.八2); yy=zeros(1,n+1); fx=0; for i=1:n+1; lga=1; for j=1:n+1 ■厂 ・~ ・ if j~=i lga=lga*(x-x1(1,j))/(x1(1,i)-x1(1,j)); else end end fx=fx+y1(1,i)*lga; end disp(fx); x=-1:0.01:1; plot(x,eval(fx),'rh') hold on a=linspace(-1,1,100); y2=1./(1.+25*a.
5、八2); plot(a,y2,'b') lege nd('插值函数','龙格函数') 2. 分段线性插值 function y=div(x0,y0,x,n) for j=1:n if (x>=x0(j))&&(x<=x0(j+1)) y=(x-x0(j+1))/(x0(j)-x0(j+1))*y0(j)+(x-x0(j))/(x0(j+1)-x0(j ))*y0(j+1); else continue end end end clear; clc; n=input('input n='); x0=linspace(-1,1,n+1); yy=zeros(2001,
6、1); for i=1:1:2001 xx(i,1)=0.001*(i-1)-1; y二div(x0,1./(1+25*x0.八2), xx(i,1), n); disp(y); yy(i,1)=y; end plot(xx,yy,'r','LineWidth',1.5) a=linspace(-1,1,100); hold on plot(a,1./(1+25*a.八2),'b','Li neWidth',1.5) lege nd('插值函数','龙格函数') 3. ①三次最小二乘拟合 clear ; n=input('input n='); x0=ones(n+1,
7、1); x1=zeros(n+1,1); x2=zeros(n+1,1); x3=zeros(n+1,1); y1=zeros(n+1,1); for k=0:1:n x1(1+k,1)=-1+2*k/n; y1(1+k,1)=1./(1+25*x1(1+k,1).八2); x2(k+1,1)=x1(k+1,1)*x1(k+1,1); x3(k+1,1)=x1(k+1,1)*x1(k+1,1)*x1(k+1,1); end A=[x0 x1 x2 x3]; B=A'*A; C=A'*(y1); D=B\C; x=linspace(-1,1,51); y二D(4,1)
8、*x.八3+D(3,1)*x.八2+D(2,1)*x+D(1,1); a=linspace(-1,1,101); y0=1./(1+25*a.八2); plot(x,y,'rh') hold on plot(a,y0,'b','LineWidth',2) lege nd('插值函数','龙格函数') ②五次最小二乘拟合 clear ; n=input('input n='); x0=ones(n+1,1); x1=zeros(n+1,1); x2=zeros(n+1,1); x3=zeros(n+1,1); x4=zeros(n+1,1); x5=zeros(n+
9、1,1); y1=zeros(n+1,1); for k=0:1:n x1(1+k,1)=-1+2*k/n; y1(1+k,1)=1./(1+25*x1(1+k,1).八2); x2(k+1,1)=x1(k+1,1)*x1(k+1,1); x3(k+1,1)=x1(k+1,1)*x1(k+1,1)*x1(k+1,1); x4(k+1,1) = (x1(k+1,1)).八4; x5(k+1,1) = (x1(k+1,1)).八5; end A=[x0 x1 x2 x3 x4 x5]; B=A'*A; C=A'*(y1); D=B\C; x=linspace(-1,1,
10、51); y二D(6,1)*x.八5+D(5,1)*x「4+D(4,1)*x.八3+D(3,1)*x.八2+D(2,1)*x+ D(1,1); a=linspace(-1,1,101); y0=1./(1+25*a.八2); plot(x,y,'rh') hold on plot(a,y0,'b','LineWidth',2) lege nd('插值函数','龙格函数') 4. 多项式插值 clear; clc; syms x n=input('input n='); x1=zeros(1,n+1); y1=zeros(n+1); for k=0:1:n x1(
11、1,k+1)=cos((2*k+1)*pi/(2*(n+1))); y1(1,k+1)=1./(1.+25*x1(1,k+1).八2); end yy=zeros(1,n+1); fx=0; for i=1:n+1; lga=1; for j=1:n+1 ■厂 ・~ ・ if j~=i lga=lga*(x-x1(1,j))/(x1(1,i)-x1(1,j)); else end end fx=fx+y1(1,i)*lga; end disp(fx); x=-1:0.01:1; plot(x,eval(fx),'rh') hold on a=linspace(-1,1,100); y2=1./(1.+25*a.八2); plot(a,y2,'b','LineWidth',1.5) lege nd('插值函数','龙格函数')
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。