计算方法实验+编程代码

上传人:ba****u 文档编号:182619037 上传时间:2023-01-26 格式:DOCX 页数:9 大小:201.96KB
返回 下载 相关 举报
计算方法实验+编程代码_第1页
第1页 / 共9页
计算方法实验+编程代码_第2页
第2页 / 共9页
计算方法实验+编程代码_第3页
第3页 / 共9页
点击查看更多>>
资源描述
作多计算方法实验报告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 时:123对龙格函数f (x)二在区间-1,1上取x =-1 + k, k二0,1,2 n , n分别1 + 25 x 2kn取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)=k2(n +1)1 + 25 x 2作多项式插值,对每个n值,分别画出插值函数及/(x)的图形。解:n=10时:n=20 时:5 比较上面三组近似函数,说说你的体会。你能在此基础上做进一步的探索吗,比如n如果继续增加下去,结果会如何?附注:编程语言不限,但用 matlab 等语言编程时,不得直接调用现成的插值与逼近函数, 需要你在我们课堂教学的基础上,编程实现上述算法。解:用不同方法进行插值,得出的插值函数差异较大。其中,最小二乘拟合的曲 线精度较低,多项式插值拟合的曲线精度较高。曲线拟合的精度不仅和拟合方法 有关,还和采样点位置的选取、个数有关。如1,4 题都是多项式插值,但是第 4 题的拟合度最高。 n 值越大,拟合的函数会更加接近原函数。程序:1等距节点多项式插值clear;clc; syms x n=input(input n=); 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=ilga=lga*(x-x1(1,j)/(x1(1,i)-x1(1,j); elseendendfx=fx+y1(1,i)*lga;end disp(fx);x=-1:0.01:1;plot(x,eval(fx),rh) hold ona=linspace(-1,1,100);y2=1./(1.+25*a.八2);plot(a,y2,b)lege nd(插值函数,龙格函数)2. 分段线性插值function y=div(x0,y0,x,n)for j=1:nif (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);elsecontinueendendendclear;clc;n=input(input n=); x0=linspace(-1,1,n+1); yy=zeros(2001,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;endplot(xx,yy,r,LineWidth,1.5) a=linspace(-1,1,100);hold onplot(a,1./(1+25*a.八2),b,Li neWidth,1.5)lege nd(插值函数,龙格函数)3.三次最小二乘拟合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);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);endA=x0 x1 x2 x3;B=A*A;C=A*(y1);D=BC;x=linspace(-1,1,51);y二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 onplot(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+1,1);y1=zeros(n+1,1);for k=0:1:nx1(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;endA=x0 x1 x2 x3 x4 x5;B=A*A;C=A*(y1);D=BC;x=linspace(-1,1,51);y二D(6,1)*x.八5+D(5,1)*x4+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 onplot(a,y0,b,LineWidth,2)lege nd(插值函数,龙格函数)4. 多项式插值clear;clc;syms xn=input(input n=);x1=zeros(1,n+1);y1=zeros(n+1);for k=0:1:nx1(1,k+1)=cos(2*k+1)*pi/(2*(n+1); y1(1,k+1)=1./(1.+25*x1(1,k+1).八2);endyy=zeros(1,n+1);fx=0;for i=1:n+1;lga=1;for j=1:n+1厂 if j=ilga=lga*(x-x1(1,j)/(x1(1,i)-x1(1,j);elseendend 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(插值函数,龙格函数)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!