数值计算方法实验jrh.docx
- 文档编号:8993705
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:60.84KB
数值计算方法实验jrh.docx
《数值计算方法实验jrh.docx》由会员分享,可在线阅读,更多相关《数值计算方法实验jrh.docx(13页珍藏版)》请在冰豆网上搜索。
数值计算方法实验jrh
学院:
自动化学院
班级:
自动化085
姓名:
学号:
2011年3月
一、实验的性质、目的和任务
本实验是与本专业基础课《数值计算方法》相配套的,旨在巩固专业课内容和学生编程的能力。
通过实验加强对数值方法的理解和掌握,编制出适用的程序。
同时,在理论教学的基础上,注意方法处理的技巧及其与计算机的结合,;其次要通过例子,学习使用各种数值方法解决实际计算问题。
要求学生应用高级计算机语言Matlab编程完成实验。
二、实验基本要求
要求熟悉高级计算机语言Matlab,以及相关上机操作说明;上机时要遵守实验室的规章制度,爱护实验设备;记录调试过程及结果。
三、实验原理
应用高级计算机语言实现数值计算方法课程中的各种算法。
四、设备及器材配置
主机:
微机
操作系统:
WINDOWS98以上
软件:
高级计算机语言Matlab
五、考核与报告
每个实验完成后交一份实验报告。
本实验作为平时成绩的一部分占学期期末总成绩的20%。
六、适用对象
自动化专业
七、主要参考书
1.王能超编,《数值分析简明教程》,高等教育出版社,2003年,第2版
2.封建湖编,《数值分析原理》,科学出版社,2001年,第1版
3.冯有前编,《数值分析》,清华大学出版社,2005年,第1版
4.周璐等译,JohnH.Mathews等编,《数值方法(MATLAB版)》,电子工业出版社,2007年,第二版
实验一采用拉格朗日方法计算插值
一、实验目的:
1.掌握多项式插值的概念、存在唯一性;
2.能够熟练地应用拉格朗日方法计算插值,并完成插值程序的设计和调试。
二、实验内容:
构造拉格朗日插值多项式
逼近
,要求:
(1)取节点
,
求线性插值多项式
;
(2)取节点
,
,
求抛物插值多项式
;
(3)取节点
,
,
,
求三次插值多项式
;
(4)分别求
、
、
的值,并与精确值相比较。
三、实验程序及结果:
实验程序如下:
Ex1_1.m:
l0=xianxing(1.3,-1,1);
l1=xianxing(1.3,1,-1);
y0=hanshu(-1);
y1=hanshu
(1);
y=l0*y0+l1*y1
det1=abs(y-hanshu(1.3))
Ex1_2.m:
l0=paowu(1.3,-1,0,1);
l1=paowu(1.3,0,-1,1);
l2=paowu(1.3,1,-1,0);
y0=hanshu(-1);
y1=hanshu(0);
y2=hanshu
(1);
y=l0*y0+l1*y1+l2*y2
det2=abs(y-hanshu(1.3))
Ex1_3.m:
l0=sanci(1.3,-1,0,1,2);
l1=sanci(1.3,0,-1,1,2);
l2=sanci(1.3,1,0,-1,2);
l3=sanci(1.3,2,-1,0,1);
y0=hanshu(-1);
y1=hanshu(0);
y2=hanshu
(1);
y3=hanshu
(2);
y=l0*y0+l1*y1+l2*y2+l3*y3
det3=abs(y-hanshu(1.3))
xianxing.m:
functionf=xianxing(x,y,z)
f=(x-z)/(y-z);
paowu.m:
functionf=paowu(x,y,z,w)
f=((x-z)*(x-w))/((y-z)*(y-w));
sanci.m:
functionf=sanci(x,y,z,w,s)
f=((x-z)*(x-w)*(x-s))/((y-z)*(y-w)*(y-s));
hanshu.m:
functionf=hanshu(x)
f=x^3;
实验结果分析:
y=1.3000
det1=0.8970
y=1.3000
det2=0.8970
y=2.1970
det3=4.4409e-016
结果说明三次插值方法得到的结果最接近真实值。
实验二采用埃特金方法计算插值
一、实验目的:
1.进一步掌握多项式插值的概念;
2.能够熟练地应用埃特金方法计算插值,并完成插值程序的设计和调试。
二、实验内容:
设
取节点为
,
,
,
,
,
,
,
,
,用埃特金方法求
的近似值,并与真实结果相比较。
三、实验程序及结果:
实验程序如下:
Ex2.m:
x=[-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1];
fori=2:
9
forj=i:
9
y(j-1,i-1)=atj(0.793,x(i-1),x(j));
end
end
y(8,8)
det=abs(y(8,8)-hs(0.793))
hs.m:
functionf=hs(x)
f=2+sin(pi*x/6);
atj.m:
functionf=atj(x,y,z)
f=((x-z)/(y-z))*hs(y)+((x-y)/(z-y))*hs(z);
实验结果分析:
ans=
2.4029
det=
5.2372e-004
实验结果说明利用埃特金算法得到的结果与真实值很接近,而且利用此迭代算法可以避免拉格朗日插值公式中的重新计算。
实验三采用复化柯特斯公式计算数值积分
一、实验目的:
1.掌握牛顿-柯特斯公式的基本原理及推导,了解复化求积法的计算步骤;
2.能够熟练地应用复化梯形公式、复化新甫生求积公式和复化柯特斯求积公式计算数值积分,并完成积分程序的设计和调试。
二、实验内容:
设
取节点为
,
,
,
,
,
,
,
,
,分别用复化梯形公式、复化新甫生法和复化柯特斯方法求积分
的近似值。
三、实验程序及结果:
实验程序如下:
Ex3.m:
tnf=tx(0,1,8)
snf=xps(0,1,8)
cnf=kts(0,1,8)
hs3.m:
functionf=hs3(x)
f=2+sin(2*pi*sqrt(x)/8);
tx.m:
functionf=tx(x,y,n)
h=(y-x)/n;
sum=0;
fori=1:
n-1
sum=sum+hs3(x+i*h);
end
f=h/2*(hs3(x)+2*sum+hs3(y));
xps.m:
functionf=xps(x,y,n)
h=(y-x)/n;
sum1=0;
sum2=0;
fori=0:
n-1
sum1=sum1+hs3(x+(i+1/2)*h);
end
forj=1:
n-1
sum2=sum2+hs3(x+j*h);
end
f=h/6*(hs3(x)+4*sum1+2*sum2+hs3(y));
kts.m:
functionf=kts(x,y,n)
h=(y-x)/n;
sum1=0;
sum2=0;
sum3=0;
sum4=0;
fori=0:
n-1
sum1=sum1+hs3(x+(i+1/4)*h);
sum2=sum2+hs3(x+(i+1/2)*h);
sum3=sum3+hs3(x+(i+3/4)*h);
end
forj=1:
n-1
sum4=sum4+hs3(x+i*h);
end
f=h/90*(7*hs3(x)+32*sum1+12*sum2+32*sum3+14*sum4+7*hs3(y));
实验结果分析:
tnf=
2.4852
snf=
2.4910
cnf=
2.5143
实验四采用四阶龙格-库塔方法求解常微分方程
一、实验目的:
1.掌握龙格-库塔方法的设计思想;
2.能够熟练地应用龙格-库塔方法求解常微分方程,并完成四阶龙格-库塔方法程序的设计和调试。
二、实验内容:
用四阶龙格-库塔方法计算区间
上初值问题
的解。
其中步长
。
三、实验程序及结果:
实验程序如下:
Ex4.m:
y0=0;
y
(1)=lg_kt(y0,0.1);
fori=2:
14
y(i)=lg_kt(y(i-1),0.1);
end
y
lg_kt.m:
functionf=lg_kt(y,h)
k1=hs4(y);
k2=hs4(y+h/2*k1);
k3=hs4(y+h/2*k2);
k4=hs4(y+h*k3);
f=y+h/6*(k1+2*k2+2*k3+k4);
hs4.m:
functionf=hs4(x)
f=1+x^2;
实验结果分析:
y=
Columns1through9
0.10030.20270.30930.42280.54630.68410.84231.02961.2602
Columns10through14
1.55741.96472.57213.60165.7920
实验五采用迭代法求解非线性方程
四、实验目的:
1.掌握牛顿法、弦截法、快速弦截法的算法思想;
2.能够熟练地应用牛顿法、弦截法、快速弦截法求解非线性方程,并完成程序的设计和调试。
五、实验内容:
分别用牛顿法、弦截法、快速弦截法求方程
的根,要求精度
。
六、实验程序及结果:
实验程序如下:
Ex5_1:
x
(1)=0;
x
(2)=newton(x
(1));
i=2;
while(abs(x(i)-x(i-1))>1e-4)
x(i+1)=newton(x(i));
i=i+1;
end
x
ex5_2:
x0=0;
x
(1)=1;
x
(2)=xjf(x0,x
(1));
i=2;
while(abs(x(i)-x(i-1))>1e-4)
x(i+1)=xjf(x0,x(i));
i=i+1;
end
x
ex5_3:
x0=0;
x
(1)=1;
x
(2)=k_xjf(x0,x
(1));
i=2;
while(abs(x(i)-x(i-1))>1e-4)
x(i+1)=k_xjf(x(i-1),x(i));
i=i+1;
end
x
newton.h:
functionf=newton(x)
f=x-(exp(x)-4*cos(x))/(exp(x)+4*sin(x));
xjf.h:
functionf=xjf(x,y)
f=y-(hs5(y)/(hs5(y)-hs5(x)))*(y-x);
k_xjf.h:
functionf=k_xjf(x,y)
f=y-(hs5(y)*(y-x))/(hs5(y)-hs5(x));
hs5.h
functionf=hs5(x)
f=exp(x)-4*cos(x);
实验结果分析:
牛顿迭代法:
x=
Columns1through9
03.00001.83561.11340.92070.90490.90480.90480.9097
Columns10through18
0.90140.90710.90320.90590.90400.90530.90440.90510.9046
Columns19through23
0.90490.90470.90480.90470.9048
☆实验总结:
通过本次试验,受益匪浅啊!
使得对数值计算的各种方法产生了更为深刻的认知和了解,同时也巩固了过去所学的matlab知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算方法 实验 jrh