matlab 差值程序.docx
- 文档编号:12825916
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:37
- 大小:260.85KB
matlab 差值程序.docx
《matlab 差值程序.docx》由会员分享,可在线阅读,更多相关《matlab 差值程序.docx(37页珍藏版)》请在冰点文库上搜索。
matlab差值程序
HarbinInstituteofTechnology
数值逼近课程报告
姓名:
唐默金修浪
院系:
理学院
学号:
11312001061131200210
哈尔滨工业大学
Project2
1.Thelagrangeinterpolationmethod:
Theprogramoflagrangeinterpolation:
functionyy=lagrange(x,y,xx,n);
n=length(x);
m=length(xx);
yy=zeros(1,m);
forj=1:
m
L=0;
fork=1:
n
w=1;
fori=1:
n
if(i~=k)
w=w*(xx(j)-x(i))/(x(k)-x(i));
end
end
L=L+w*y(k);
end
yy(j)=L;
end
Theprogramofex1_2:
clearall
closeall
n=4;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,1)
plot(xx,y0,xx,yy)
n=10;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,2)
plot(xx,y0,xx,yy)
n=14;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,3)
plot(xx,y0,xx,yy)
n=20;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,4)
plot(xx,y0,xx,yy)
Thefigureofex1_2:
Theprogramofex1_3:
clearall
closeall
n=4;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,1)
plot(xx,y0,xx,yy)
n=10;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,2)
plot(xx,y0,xx,yy)
n=14;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,3)
plot(xx,y0,xx,yy)
n=20;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=lagrange(x,y,xx);
subplot(2,2,4)
plot(xx,y0,xx,yy)
Thefigureofex1_3:
2.Thelinearinterpolationmethod:
Theprogramoflinearinterpolation:
functionyy=liner_1(x,y,xx)
n=length(x);
m=length(xx);
yy=zeros(1,m);
forj=1:
m
fori=1:
n-1
ifxx(j)>=x(i)&&xx(j)<=x(i+1)
yy(j)=y(i)*(xx(j)-x(i+1))/(x(i)-x(i+1))+y(i+1)*(xx(j)-x(i))/(x(i+1)-x(i));
else
continue;
end
end
end
Theprogramofex2_1_1:
clearall
closeall
n=4;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=liner_1(x,y,xx);
subplot(2,2,1)
plot(xx,y0,xx,yy)
n=10;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=liner_1(x,y,xx);
subplot(2,2,2)
plot(xx,y0,xx,yy)
n=14;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
yy=liner_1(x,y,xx);
y0=1./(1+xx.^2);
subplot(2,2,3)
plot(xx,y0,xx,yy)
n=20;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=liner_1(x,y,xx);
subplot(2,2,4)
plot(xx,y0,xx,yy)
Thefigureofex2_1_1:
Theprogramofex2_1_2:
clearall
closeall
n=4;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=liner_1(x,y,xx);
subplot(2,2,1)
plot(xx,y0,xx,yy)
n=10;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=liner_1(x,y,xx);
subplot(2,2,2)
plot(xx,y0,xx,yy)
n=14;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=liner_1(x,y,xx);
subplot(2,2,3)
plot(xx,y0,xx,yy)
n=20;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=liner_1(x,y,xx);
subplot(2,2,4)
plot(xx,y0,xx,yy)
Thefigureofex2_1_2:
3.ThecubicHermiteinterpolationmethod:
functionyy=Hermite(x,y,z,xx);
n=length(x);
m=length(xx);
yy=zeros(1,m);
i=1;
forj=1:
m
fori=2:
n-1
ifxx(j)>=x
(1)&&xx(j)<=x
(2)
h
(1)=(1+2*(xx(j)-x
(1))/(x
(2)-x
(1)))*((xx(j)-x
(2)/(x
(1)-x
(2)))^2);
p
(1)=(xx(j)-x
(2))*((xx(j)-x
(1))/(x
(2)-x
(1)))^2;
end
ifxx(j)>=x(n-1)&&xx(j)<=x(n)
h(n)=(1+2*(xx(j)-x(n))/(x(n-1)-x(n)))*((xx(j)-x(n-1))/(x(n)-x(n-1)))^2;
p(n)=(xx(j)-x(n))*((xx(j)-x(n-1))/(x(i)-x(n-1)))^2;
end
ifxx(j)>=x(i-1)&&xx(j)<=x(i)
h(i)=(1+2*(xx(j)-x(i))/(x(i-1)-x(i)))*((xx(j)-x(i-1))/(x(i)-x(i-1)))^2;
p(i)=(xx(j)-x(i))*((xx(j)-x(i-1))/(x(i)-x(i-1)))^2;
elseifxx(j)>x(i)&&xx(j)<=x(i+1)
h(i)=(1+2*(xx(j)-x(i))/(x(i+1)-x(i)))*((xx(j)-x(i+1))/(x(i)-x(i+1)))^2;
p(i)=(xx(j)-x(i))*((xx(j)-x(i+1))/(x(i)-x(i+1)))^2;
elsecontinue
end
end
yy(j)=yy(j)+h(i)*y(i)+p(i)*z(i);
end
end
Theprogramofex2_2_1:
clearall
closeall
n=4;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
z=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,1)
plot(xx,y0,xx,yy)
n=10;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
z=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,2)
plot(xx,y0,xx,yy)
n=14;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
z=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,3)
plot(xx,y0,xx,yy)
n=20;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
z=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,4)
plot(xx,y0,xx,yy)
Thefigureofex2_2_1:
Theprogramofex2_2_2:
clearall
closeall
n=4;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,1)
plot(xx,y0,xx,yy)
n=10;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,2)
plot(xx,y0,xx,yy)
n=14;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,3)
plot(xx,y0,xx,yy)
n=20;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
z(i)=-2*x(i)/(1+(x(i))^2)^2;
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=Hermite(x,y,z,xx);
subplot(2,2,4)
plot(xx,y0,xx,yy)
Thefigureofex2_2_2:
4.Thecubicsplineinterpolationmethod:
functionyy=spline1(x,y,xx);
n=length(x);
m=length(xx);
yy=zeros(1,m);
M=zeros(1,n);
d=zeros(1,n);
A=zeros(n,n);
a=zeros(1,n-2);
b=zeros(1,n-2);
h=zeros(1,n-1);
forj=1:
m
fori=2:
n
h(i-1)=x(i)-x(i-1);
end
fori=1:
n-2
a(i)=h(i)/(h(i)+h(i+1));
b(i)=1-a(i);
end
fori=2:
n-1
d(i)=6*(((y(i-1)-y(i))/(x(i-1)-x(i)))-((y(i)-y(i+1))/(x(i)-x(i+1))))/(x(i-1)-x(i+1));
end
d
(1)=6*((-2*x(i)/(1+(x(i))^2)^2)-((y
(1)-y
(2))/(x
(1)-x
(2))))/(x
(1)-x
(2));
d(n)=6*(((y(n-1)-y(n))/(x(n-1)-x(n)))-(-2*x(n)/(1+(x(n))^2)^2))/(x(n-1)-x(n));
fork=2:
n-2
A(k,k)=2;
A(1,1)=2;
A(n,n)=2;
A(1,2)=1;
A(n,n-1)=1;
A(n-1,n-1)=2;
A(2,1)=a
(1);
A(n-1,n)=b(n-2);
A(k,k+1)=b(k-1);
A(k+1,k)=a(k);
end
M=A^(-1)*d';
i=0;
fori=1:
n-1
ifxx(j)>=x(i)&&xx(j)<=x(i+1)
yy(j)=y(i)+(y(i+1)-y(i))*(xx(j)-x(i))/(x(i+1)-x(i))-(1/6*M(i+1)+1/3*M(i))*(x(i+1)-x(i))*(xx(j)-x(i))+M(i)/2*(xx(j)-x(i))^2+1/6*(M(i+1)-M(i))/(x(i+1)-x(i))*(xx(j)-x(i))^3;
elsecontinue
end
end
end
Theprogramofex2_3_1:
clearall
closeall
n=4;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=spline1(x,y,xx);
subplot(2,2,1)
plot(xx,y0,xx,yy)
n=10;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=spline1(x,y,xx);
subplot(2,2,2)
plot(xx,y0,xx,yy)
n=14;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=spline1(x,y,xx);
subplot(2,2,3)
plot(xx,y0,xx,yy)
n=20;i=1;
h=10/n;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=-5+(i-1)*h;
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
y0=1./(1+xx.^2);
yy=spline1(x,y,xx);
subplot(2,2,4)
plot(xx,y0,xx,yy)
Thefigureofex2_3_1:
Theprogramofex2_3_2:
clearall
closeall
n=4;i=1;
x=zeros(1,n+1);
y=zeros(1,n+1);
whilei<=n+1
x(i)=5*cos((pi/2)*((2*(i-1)+1)/(n+1)));
y(i)=1/(1+(x(i))^2);
i=i+1;
end
xx=-5:
0.1:
5;
x=-x;
y0=1./(1+xx.^2);
yy=splin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 差值程序 差值 程序