- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
0123李从文实验四
数学建模课程实验报告
专题实验4
班级 2011级二班 学号 2011040123 姓名 李丛文 实验题目 数值积分与数值微分 实验目的 1利用MATLAB掌握梯形公式、辛普森公式和随机模拟方法计算数值积分;
2通过实例学习用数值积分和数值微分解决实际问题。 实验内容
(包括分析过程、方法、和代码,结果)
2:用梯形、辛普森和蒙特卡罗方法计算积分。改变步长(对梯形),改变精度要求(对辛普森),改变随机点数目(对蒙特卡罗),进行比较、分析。
y=e ,-2x2
解:用三种方法计算积分的源程序如下:
h=4/50;
x=-2:h:2;
y=fun(x);
z1=trapz(y)*h
z2=quad(fun,-2,2)
plot(x,y,g);
n=1000;
x1=rand(1,n);
y1=fun(x1.*2);
z3=sum(y1)*4/n
对梯形公式取h=4/50,4/100,4/10000;对辛普森分别取精度为10,,10;对蒙特卡罗方法分别取n=1000,10000,100000.得到的结果如下:
梯形公式
辛普森公式
蒙特卡罗方法
0.95438456767789
0.95449943824154
0.93999211059586
0.95447094168964
0.95449973610735
0.95794338594866
0.95449973322412
0.95449973610373
0.95427317381756
从得到的结果可以看到对梯形公式,步长越小,计算的积分结果越准确;对于辛普森公式,在一般的10精度下结果已经很准确(小数点后前六位均为准确数字),提高精度后结果更加精确,可见辛普森具有很高的优越性,但它的局限性在于必须要有函数解析式;对于蒙特卡罗方法,虽然结果具有随机性,但随着n增大,得到的结果越来越接近准确值。
5:测得活塞中气体压力P和体积V的一组数据如下:
P
60
80
100
120
140
160
180
V
80.0
69.2
60.0
52.0
45.0
38.6
32.5
求V=60,50处,V改变1时P的改变量;求从70减至40时气体作的功。
解:用中点公式计算导数k.则P=kV。因为V=1,所以P数值上等于k。
取h=0.1,利用三次样条计算P在V-h,V+h处的数值,从而利用中点公式计算导数。
源程序如下:
h=0.1;x=[60-h,60+h];
p=60:20:180;
v=[80.0 69.2 60.0 52.0 45.0 38.6 32.5];
y=spline(v,p,x);
p=(y(1)-y(2))/2/h
结果为 p=2.3341() 同理可以算出V=50时,p=2.7891()
求导的问题也可以用书后补充知识中样条求导的方法解决,计算后可以得到相同结果。
利用三次样条插值计算V在40~70之间时相应的一系列P值,然后用梯形公式计算积分即得气体作功。
源程序如下:
x=40:30/1000:70;
p=60:20:180;
v=[80.0 69.2 60.0 52.0 45.0 38.6 32.5];
y=spline(v,p,x);
w=trapz(x,y)
输出结果为:W= 3414.36(lbf.in)
9..解;
x=[7.0 10.5 13.0 17.5 34.0 40.5 44.5 48.0 56.0 61.0 68.5 76.5 80.5 91.0 96.0 101.0 104.0 106.5 111.5 118.0 123.5 136.5 142.0 146.0 150.0 157.0 158.0];
y1=[44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68];
y2=[44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68];
figure(1)
plot(x,y1,o)
hold on
plot(x,y2,rp)
hold on
xi=10:10:100
yi=interp1(x,y1,xi,spline)
yi=interp1(x,y2,xi,spline)
xx=min(x):0.1:max(x);
yy1=interp1(x,y1,xx,spline);
plot(xx,yy1)
hold on
yy2=interp1(x,y2,xx,spline);
plot(xx,yy2
文档评论(0)