数值分析实验二(matlab)插值法
更新时间:2023-08-28 22:51:01 阅读量: 教育文库 文档下载
- 数值计算实验报告推荐度:
- 相关推荐
实验二
插值法
实验2.1(多项式插值的振荡现象) ................................................................................................................ 3
实验要求1: ............................................................................................................................................... 3
程序: .................................................................................................................................................. 3 主函数: .............................................................................................................................................. 3 实验结果: .......................................................................................................................................... 5 实验要求2: ............................................................................................................................................... 6
(1)对:h(x)
x
.................................................................................................................... 6 4
1 x
程序: .................................................................................................................................................. 6 主函数: .............................................................................................................................................. 6 实验结果: .......................................................................................................................................... 8 实验分析 .............................................................................................................................................. 8 (2)对g(x)=arctan x .................................................................................................................... 8 程序: .................................................................................................................................................. 8 实验结果: ........................................................................................................................................ 10 实验分析 .............................................................................................................................................11 实验要求3: ..............................................................................................................................................11
程序: .................................................................................................................................................11 实验结果: ........................................................................................................................................ 13 实验分析: ........................................................................................................................................ 14
实验2.2(样条插值的收敛性) ...................................................................................................................... 15
实验要求(一) ........................................................................................................................................ 15
程序: ................................................................................................................................................ 15 数值实验结果 .................................................................................................................................... 15 实验分析 ............................................................................................................................................ 17 实验要求(二): ...................................................................................................................................... 17
程序: ................................................................................................................................................ 17 实验总结: ........................................................................................................................................ 19
实验2.3 .............................................................................................................................................................. 20
程序: ................................................................................................................................................ 20 运行结果: ........................................................................................................................................ 20
实验2.1(多项式插值的振荡现象)
实验要求1: 程序:
M文件:lagrange.m
test1p1.m Lagrange函数:
%lagrange insert
function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end
主函数:
x1=[-1:1:1];y1=1./(1+25*x1.^2); x2=[-1:0.5:1];y2=1./(1+25*x2.^2);
x4=[-1:0.25:1];y4=1./(1+25*x4.^2); x5=[-1:0.2:1];y5=1./(1+25*x5.^2); x6=[-1:0.1:1];y6=1./(1+25*x6.^2); x0=[-1:0.01:1]; subplot(4,2,1) y7=1./(1+25*x0.^2); plot(x0,y7,'-b') y0=lagrange(x1,y1,x0); y1=1./(1+25*x0.^2); subplot(4,2,2) plot(x0,y0,'--b') y0=lagrange(x2,y2,x0); y2=1./(1+25*x0.^2); subplot(4,2,3) plot(x0,y0,'-g') y0=lagrange(x3,y3,x0); y3=1./(1+25*x0.^2); subplot(4,2,4) plot(x0,y0,'--g') y0=lagrange(x4,y4,x0); y4=1./(1+25*x0.^2); subplot(4,2,5) plot(x0,y0,'-r') y0=lagrange(x5,y5,x0); y5=1./(1+25*x0.^2); subplot(4,2,6) plot(x0,y0,'--r') y0=lagrange(x6,y6,x0); y6=1./(1+25*x0.^2); subplot(4,2,7) plot(x0,y0,'-y')
数值实验结果及分析:
图一为原函数曲线。然后图二至图七为插值点分别为2个、4个、5个、8个、10个、20个时的函数图像。
10.5
0-110
-1-120
-2-11000
-100
-1
-0.5
0.5
1
-0.5
0.5
1
-0.5
0.5
1
-0.5
0.5
1
10.5
0-110
-1-120
-2-1
-0.5
0.5
1
-0.5
0.5
1
-0.5
0.5
1
实验分析
在此,我们看得到当采用四个和五个点进行拟合的时候,得到的函数在中间部分拟合得较好。随着插值点的次数越多,两端出现了明显的震荡。如图五、图六为插值节点增加到8个、10个的情况,得到的插值函数的图像明显与原函数的相似度很低,并且在两端出现了较大的震荡。图七增加到20个点时误差震荡极大,曲线基本不可取。从图中可以明显看到,随着插值节点的增多,虽然在中间的拟合函数拟合得比较好,在两端出现了较为明显的震荡,并且随着插值点的逐渐增多震荡越来越明显。
在这里,我们采用一个很简单的函数对其作出了很直接的验证。
(1)对:h(x) x1 x4
程序:
M文件:lagrange.m
test1p2a.m Lagrange函数:
%lagrange insert
function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end
主函数:
x1=[-5:2.5:5];y1=x1./(1+x1.^4); x2=[-5:2:5];y2=x2./(1+x2.^4); x3=[-5:1:5];y3=x3./(1+x3.^4);
x4=[-5:0.5:5];y4=x4./(1+x4.^4); x5=[-5:0.4:5];y5=x5./(1+x5.^4); x6=[-5:0.1:5];y6=x6./(1+x6.^4); x0=[-5:0.01:5]; subplot(4,2,1) y7=x0./(1+x0.^4); plot(x0,y7,'-b') y0=lagrange(x1,y1,x0); y1=x0./(1+x0.^4); subplot(4,2,2) plot(x0,y0,'--b') y0=lagrange(x2,y2,x0); y2=x0./(1+x0.^4); subplot(4,2,3) plot(x0,y0,'-g') y0=lagrange(x3,y3,x0); y3=x0./(1+x0.^4); subplot(4,2,4) plot(x0,y0,'--g') y0=lagrange(x4,y4,x0); y4=x0./(1+x0.^4); subplot(4,2,5) plot(x0,y0,'-r') y0=lagrange(x5,y5,x0); y5=x0./(1+x0.^4); subplot(4,2,6) plot(x0,y0,'--r') y0=lagrange(x6,y6,x0); y6=x0./(1+x0.^4); subplot(4,2,7) plot(x0,y0,'-y')
数值实验结果及分析:
实验结果:
图一为原函数曲线。然后图二至图七为插值点分别为4个、5个、10个、20个、25个、100个时的函数图像。
10
-1-510
-1-5100
-10-5
175
0-5-5
5
5
5
5
0.10
-0.1-510
-1-55000
-5000
-5
5
5
5
实验分析
与第一问得到的拟合函数的结果相类似,随着插值节点愈多,在中间阶段得到的函数图像叫原函数比较相似,但是在两端出现了明显的震荡,并且随着插值点的增多,震荡越来越大且不可控制。
(2)对g(x)=arctan x 程序:
M文件名:lagrange.m
Lagrange函数:
%lagrange insert
function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end 主函数:
x1=[-5:2.5:5];y1=atan(x1); x2=[-5:2:5];y2=atan(x2); x3=[-5:1:5];y3=atan(x3); x4=[-5:0.5:5];y4=atan(x4); x5=[-5:0.4:5];y5=atan(x5); x6=[-5:0.1:5];y6=atan(x6); x0=[-5:0.001:5]; subplot(4,2,1) y7=atan(x0); plot(x0,y7,'-b') y0=lagrange(x1,y1,x0); y1=atan(x1); subplot(4,2,2)
y0=lagrange(x2,y2,x0); y2=atan(x2); subplot(4,2,3) plot(x0,y0,'-g') y0=lagrange(x3,y3,x0); y3=atan(x3); subplot(4,2,4) plot(x0,y0,'--') y0=lagrange(x4,y4,x0); y4=atan(x4); subplot(4,2,5) plot(x0,y0,'-r') y0=lagrange(x5,y5,x0); y5=atan(x5); subplot(4,2,6) plot(x0,y0,'--r') y0=lagrange(x6,y6,x0); y6=atan(x6); subplot(4,2,7) plot(x0,y0,'-y')
数值实验结果及分析:
实验结果:
图一为原函数曲线。然后图二至图七为插值点分别为2个、4个、5个、8个、10个、20个时的函数图像。
20
-2-520
-2-550
-5-5
132
0-2-5
5
5
5
5
20
-2-520
-2-51000
-100
-5
5
5
5
实验分析
当插值节点为五个时,拟合程度不是很好,但是在两端出现的波动较小。当插值节点为10个时,可以看出,插值点确定出来的函数较原函数比较相识,中间阶段拟合程度比较高,在两端的波动也比较小。但是当节点增加到20、25、100个时,在插值区间两端出现了较大的波动,也就是龙格现象。可以看出,等距插值中,增加插值点的个数,并不能使得到的多项式函数与原函数的拟合程度更高。
实验要求3: 程序:
M文件名:lagrange.m
test1p3.m
Lagrange函数:
%lagrange insert
function y=lagrange(x0,y0,x) n=length(x0);m=length(x);
for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end 主函数:
k=[1:5];
x1=cos((2*k-1)*3.1415/12); y1=1./(1+25*x1.^2); a=[1:15];
x2= cos((2*a-1)*3.1415/32); y2=1./(1+25*x2.^2); b=[1:50];
x3= cos((2*b-1)*3.1415/102); y3=1./(1+25*x3.^2); c=[1:100];
x4= cos((2*b-1)*3.1415/102); y4=1./(1+25*x4.^2); x0=[-1:0.01:1]; subplot(3,2,1) y5=1./(1+25*x0.^2); plot(x0,y5,'-b') y0=lagrange(x1,y1,x0); y1=1./(1+25*x0.^2);
plot(x0,y0,'--b') y0=lagrange(x2,y2,x0); y2=1./(1+25*x0.^2); subplot(3,2,3) plot(x0,y0,'-g') y0=lagrange(x3,y3,x0); y3=1./(1+25*x0.^2); subplot(3,2,4) plot(x0,y0,'--g'); y0=lagrange(x4,y4,x0); y4=1./(1+25*x0.^2); subplot(3,2,5) plot(x0,y0,'--r')
数值实验结果及分析:
实验结果:
应用上面的lagrange函数以及主函数,分别就
y
1
1 25x2
在[ 1,1]区间上做出了图像,如下图的图一。然后分别采用切比雪夫点进行插值,然后图二至图七为插值点分别为5个、15个、50个、100个时的函数图像。 :
10.5
0-110.5
10.5
0-11.51
0.5
-0.500.51-0.500.51
0-11.51
0.50-1
-0.500.51
0-1
-0.500.51
-0.500.51
实验分析:
实验2.2(样条插值的收敛性)
实验要求(一) 程序:
M文件名:test2p1.m
x1=[-1:1];y1=1./(1+25*x1.^2); x2=[-1:0.5:1];y2=1./(1+25*x2.^2); x3=[-1:0.4:1];y3=1./(1+25*x3.^2); x4=[-1:0.25:1];y4=1./(1+25*x4.^2); x5=[-1:0.2:1];y5=1./(1+25*x5.^2); x6=[-1:0.1:1];y6=1./(1+25*x6.^2); x0=[-1:0.01:1]; subplot(4,2,1) y7=1./(1+25*x0.^2); plot(x0,y7,'-b') y0=spline(x1,y1,x0); y1=1./(1+25*x0.^2); subplot(4,2,2) plot(x0,y0,'--b') y0=spline(x2,y2,x0); y2=1./(1+25*x0.^2); subplot(4,2,3) plot(x0,y0,'-g') y0=spline(x3,y3,x0); y3=1./(1+25*x0.^2); subplot(4,2,4) plot(x0,y0,'--g') y0=spline(x4,y4,x0); y4=1./(1+25*x0.^2);
plot(x0,y0,'-r') y0=spline(x5,y5,x0); y5=1./(1+25*x0.^2); subplot(4,2,6) plot(x0,y0,'--r') y0=spline(x6,y6,x0); y6=1./(1+25*x0.^2); subplot(4,2,7) plot(x0,y0,'-y')
数值实验结果
应用matlab函数库中提供的spline函数以及原函数表达式函数,分别就
y
1
2
1 25x
在[ 1,1]区间上做出了原函数图像,如下图的图一。然后图二至图七为插值点分别为2个、4个、5个、8个、10个、20个时的函数图像。
10.5
0-110
-1-110.5
0-110.5
0-1
-0.5
0.5
1
-0.5
0.5
1
-0.5
0.5
1
-0.5
0.5
1
10.5
0-110
-1-110.5
0-1
-0.5
0.5
1
-0.5
0.5
1
-0.5
0.5
1
实验分析
在此看到,当采用五个插值函数的节点时和采用更多节点的三次样条函数对原函数进行插值拟合的时候,得到的函数都是光滑的。并且随着插值节点的增多,也没有出现如实验2·1所示的随着点的增多而出现龙格现象。并且可以看出,随着三次样条函数的分段的增多,插值函数的图像与原函数的图像越来越相似。
实验要求(二): 程序:test2p2.m
clear clc
X=[0,1,2,3,4,5,6,7,8,9,10];
Y=[0.0,0.79,1.53,2.19,2.71,3.03,3.27,2.89,3.06,3.19,3.29]; dy0=0.8; dyn=0.2; n=length(X)-1; d=zeros(n+1,1); h=zeros(1,n-1); f1=zeros(1,n-1); f2=zeros(1,n-2);
for i=1:n;h(i)=X(i+1)-X(i); f1(i)=(Y(i+1)-Y(i))/h(i); end
for i=2:n;f2(i)=(f1(i)-f1(i-1))/(X(i+1)-X(i-1)); d(i)=6*f2(i); end
d(1)=6*(f1(1)-dy0)/h(1);
d(n+1)=6*(dyn-f1(n-1))/h(n-1); A=zeros(n+1,n+1); B=zeros(1,n-1); C=zeros(1,n-1);
B(i)=h(i)/(h(i)+h(i+1)); C(i)=1-B(i); end A(1,2)=1; A(n+1,n)=1; for i=1:n+1 A(i,i)=2; end for i=2:n A(i,i-1)=B(i-1); A(i,i+1)=C(i-1); end M=A\d; x=zeros(1,n); S=zeros(1,n); for i=1:n x(i)=X(i)+0.5;
S(i)=Y(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x(i)-X(i))+M(i)/2*(x(i)-X(i))^2+(M(i+1)-M(i))/(6*h(i))*(x(i)-X(i))^3; end
plot(X,Y,'k'); hold on; plot(x,S,'o');
title('三次样条插值效果图');
legend('已知插值节点','三次样条插值'); hold off
返回插值函数:
S(x)=0.8*x - 0.001486*x^2 - 0.008514*x^3 (0,1)
S(x)=0.8122*x - 0.01365*x^2 - 0.004458*x^3 - 0.004055 (1,2) S(x)=0.8218*x - 0.01849*x^2 - 0.003652*x^3 - 0.01051 (2,3) S(x)=0.317*x^2 - 0.1847*x - 0.04093*x^3 + 0.9961 (3,4) S(x)=6.934*x - 1.463*x^2 + 0.1074*x^3 - 8.496 (4,5) S(x)=4.177*x^2 - 21.26*x - 0.2686*x^3 + 38.5 (5,6) S(x)=53.86*x - 8.344*x^2 + 0.427*x^3 - 111.7 (6,7)
S(x)=14.88*x - 1.643*x^2 + 0.06076*x^3 - 41.93 (8,9) S(x)=8.966*x - 0.986*x^2 + 0.03641*x^3 - 24.18 (9,10) 图像:
三次样条插值效果图
12345678910
实验总结:
插值多项式余项公式说明插值节点越多,一般说来误差越小,函数逼近越好,但这也不是绝对的,因为余项的大小既与插值节点的个数有关,也与函数f(x)的高阶导数有关。换句话说,适当地提高插值多项式的次数,有可能提高计算结果的准确程度,但并非插值多项式的次数越高越好。当插值节点增多时,不能保证非节点处的插值精度得到改善,有时反而误差更大。而这个误差就是由于计算机计算里面的舍入误差和截断误差。所以我们在进行多项式插值的时候,必须考虑这个函数的在插值区间的高阶导数的值是否是存在极大值的。
但是可以考虑的就是,在针对某些函数的时候,可以采用用切比雪夫插值的形式来对原函数进行插值拟合。这样,随着插值点的增多,插值函数越来越接近于原函数。
在实际的插值过程中,我们不需要一定就用高阶的多项式函数进行插值。在一些函数中,我们可以采用一次函数分段插值,只要取足够多的点,那么也可以达到很高的拟合程度。理论上也已经证明,当取点数区域无穷时,得到的函数就等于原函数。另外我们还可以考虑Hermite插值,三次样条插值等等其他一系列可以考虑的插值函数。
正在阅读:
数值分析实验二(matlab)插值法08-28
《妈妈再爱我一次》观后感04-26
Words and expressions in Book 1 Unit 104-10
2013-2014学年高二下学期期中考试数学理试题(含答案)10-23
苏科版七年级上《第四章一元一次方程》单元评估检测试题有答案03-09
民法与商法的关系之我见09-25
集团公司标准 - 产品研发管理制度制度10-09
个人现实表现材料02-21
天上掉下个“袜妹妹”作文600字06-26
专题七 教学设计与课堂教学11-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 插值法
- 数值
- 实验
- 分析
- matlab
- 服装画技法
- 餐饮店卫生、食品采购环境卫生餐饮用具操作间卫生管理制度
- 创先争优巾帼建功标兵事迹材料
- 日本政策投资银行开展知识产权质押贷款的做法和启示
- java笔试面试题
- 采菊东篱下,悠然见南山的画面描写
- 食品安全生产工作汇报
- 与XX酒店签订入住协议的会议记录
- 中国泵及真空设备现状动态及前景趋势分析报告2018-2023年(目录)
- 深基坑事故案例分析及总结
- 肉桂酸的制备
- 1章 煤矿安全风险预控管理体系概述
- 扫描电镜(Quanta200FEG)操作规程
- 2019届安徽省蚌埠市高三下学期第二次教学质量检查考试数学(理)试题(解析版)
- 监控系统标准安防报价清单1(自动计算单价与总价)
- C++矩阵的加法转置
- 固定板管式换热器设计说明书
- 电视剧里的那些古风歌
- 微积分答案(上册)(刘迎东版)第四章答案合集
- 高二化学选修1复习提纲