数值分析报告常微分方程的数值解法.docVIP

数值分析报告常微分方程的数值解法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值分析报告常微分方程的数值解法.doc

wilyes11收集 博客(与学习无关): HYPERLINK /u/1810231802 /u/1810231802 常微分方程的数值解法 实验目的: 目的与要求:通过实验,熟悉常微分方程的数值解法的基本原理。掌握向前欧拉法、向后欧拉法、梯形法、改进欧拉法及三阶、四阶龙格-库塔法等基本算法。 实验内容: 在下列方法中:向前欧拉法、向后欧拉法、梯形法、改进欧拉法及三阶、四阶龙格-库塔法 选择不同的三种算法求下面方程的数值解,并与准确解比较。 以上步长取0.1. 实验要求: 1.编程实现。2.可以自拟实验题,要求同上。 实验程序及结果: 求原函数 DSolve[{y[x]==x^2+x-y[x],y[0]==0},y[x],x] 求得: y=e-x-1+ex-exx+exx2 向前欧拉法 x[0]=0;y[0]=0;h=0.1; f[x_]:=e-x-1+ex-exx+exx2; x[n_]:=n*h; f[u_,v_]:=u2+u-v; K1[n_]:=f[x[n-1],y[n-1]]; y[n_]:=y[n-1]+h*K1[n]; Table[{n,x[n],y[n],f[x[n]],f[x[n]]-y[n]},{n,0,10}]//N; Print[\nn,x[n],y[n],f[x[n]],f[x[n]]-y[n]\n, ,MatrixForm[Table[{n,x[n],y[n],f[x[n]],f[x[n]]-y[n]},{n,0,10}]//N]] Data1=Table[{x[n],f[x[n]]},{n,0,10}]//N; Data2=Table[{x[n],y[n]},{n,0,10}]//N; A0=Plot[f[x],{x,0,1},PlotStyle?{Red,Thick}]; A1=Graphics[{PointSize[0.02],Red,Point[Data1]}]; A2=ListLinePlot[Data2,PlotStyle?{Red,Dashed}]; A3=Graphics[{PointSize[0.02],Blue,Point[Data2]}]; Show[A0,A1,A2,A3,PlotRange?All] 改进欧拉法 f[x_,y_]:=x2+x-y; f[x_]:=e-x-1+ex-exx+exx2; xy:={{0,1}}; h=0.1; Do[xn=xy[[n]][[1]];yn=xy[[n]][[2]]; k1=f[xn,yn];k2=f[xn+h,yn+h*k1]; d=(k1+k2)*h/2 ; Print[n, ,x,n,=,xn+h, ,y,n,=,yn+d, ,f(x,n,)=,f[xn+h], ,f(x,n,)-y(x,n,)=,f[xn+h]-(yn+d)]; xy=Append[xy,{xn+h,yn+d}],{n,1,10}]; A1=Graphics[{PointSize[0.02],Red,Point[xy]}]; A2=ListLinePlot[xy,PlotStyle?Dashed]; A3=Plot[f[x],{x,0,1},PlotStyle?{Red,Thick}]; Show[A3,A2,A1] 四阶龙格-库塔法 f[x_,y_]:=x2+x-y; f[x_]:=e-x-1+ex-exx+exx2;; y0=1;a=0;b=1;n=10; h=(b-a)/n; xx=Table[a+(i-1)h,{i,1,n+1}]//N; y=Table[0,{i,1,n+1}]; y[[1]]=y0//N; For[i=2,i?n+1,i++, a1=h f[xx[[i-1]],y[[i-1]]]; a2=h f[xx[[i-1]]+h/2,y[[i-1]]+a1/2]; a3=h f[xx[[i-1]]+h/2,y[[i-1]]+a2/2]; a4=h f[xx[[i-1]]+h,y[[i-1]]+a3]; y[[i]]=y[[i-1]]+1/6 (a1+2a2+2a3+a4); Print[i-1, ,x,i-1,=,xx[[i]], ,y,i-1,=,y[[i]], ,f(x,i-1,)=,f[xx[[i]]], ,f(x,n,)-y(x,n,)=,f[xx[[i]]]-y[[i]]];] data=Table[{xx[[i]],y[[i]]},{i,1,n+1}]; A1=Graphics[{PointSize[0.02],Blue,Point[data]}]; A2=ListLinePlot[data]; A3=Plot[f[x],{x,0,1},PlotStyle?{Red,Thick}]; Sh

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档