龙格库塔方法ppt课件[文字可编辑].pptVIP

  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文档。上传文档
查看更多
Runge-Kuttua 方法和 matlab 原理 1 龙格-库塔法( Runge-Kutta ) 数值分析中,龙格-库塔法( Runge-Kutta )是用于模拟常微分 方程的解的重要 的一类隐式或显式迭代法。这些技术由数学家卡尔 · 龙格和马 丁 · 威尔海姆 · 库塔于 1900 年左右发明。 经典四阶龙格库塔法 龙格库塔法的家族中的一个成员如此常用,以至于经常被称为 “ RK4” 或者就是 “ 龙格库塔法 ” 。 2 四阶 Runge-Kutta 方法 3 4 这样,下一个值 (yn+1) 由现在的值 (yn) 加上时间间隔 (h) 和一个估算的 斜率的乘积 决定。该斜率是以下斜率的加权平均: k1 是时间段开始时的斜率; k2 是时间段中点的斜率,通过欧拉法采用斜率 k1 来决定 y 在点 tn + h/2 的值; k3 也是中点的斜率,但是这次采用斜率 k2 决定 y 值; k4 是时间段终点的斜率,其 y 值用 k3 决定。 当四个斜率取平均时,中点的斜率有更大的权值: 5 误差分析: 注意上述公式对于标量或者向量函数 (y 可 以是向量 ) 都适用。 四阶 R - K 方法 的每一步需要计算四次函数值 f , 可以证明其局部截断误差为 O ( h 5 ) . 6 R-K( 高阶 ) 方法不唯一 , 选择不同的参数能得到 不同的 R-K 公式 注意的问题 R-K 方法的推导是基于 Taylor 展开法,因而要求 解具有较好的光滑性,如果光滑性较差精度可 能不如改进 Euler 方法 , 最好采用 低阶算法 而将 步长 h 取小 。 Runge-Kutta 法的主要运算在于计算 K i 的值,即计算 f 的值。计算量与可达到的最高精度阶数的关系: 7 5 3 可达到的最高精度 6 4 2 每步须算 K i 的个数 ) ( 2 h O ) ( 3 h O ) ( 4 h O ) ( 5 h O ) ( 6 h O ) ( 4 h O ) ( 2 ? n h O 8 ? n 7 四阶 Runge-Kutta 方法的 MATLAB 实现原理: 8 四阶 R-K 方法实现 开始 0 0 , , , x y h N 输入 1 0 1 0 0 2 0 0 1 0 0 2 0 0 3 1 2 3 4 2 2 3 2 2 1 0 2 2 6 ; ( , ), ( , ) ( , ), ( , ) ( ) x x h h h K f x y K f x y K h h K f x y K f x h y hK h y y K K K K ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 输出 x 1 ,y 1 ? n N ? 1 0 1 0 1 ; , n N x x y y ? ? ? ? 结束 Y N 9 function ff=rk(yy ,x0,y0,h,a,b ) %yy 为 y 的导函数 ,x0,y0, 为初值 ,h 为步长 ,a,b 为区间 c=(b-a)/h+1;i1=1; %c 为迭代步数; i1 为迭代步数累加值 y=y0;z=zeros(c,6); %z 生成 c 行, 6 列的零矩阵存放结果; % 每行存放 c 次迭代结果,每列分别存放 k1~k4 及 y 的结果 10 不断迭代运算: for x=a:h:b if i1=c k1=feval(yy,x,y); k2=feval(yy,x+h/2,y+(h*k1)/2); k3=feval(yy,x+h/2,y+(h*k2)/2); k4=feval(yy,x+h,y+h*k3); y=y+(h/6)*(k1+2*k2+2*k3+k4); z(i1,1)=x;z(i1,2)=k1;z(i1,3)=k2;z(i1,4)=k3;z(i1,5)=k4;z( i1,6)=y; i1=i1+1; end end 11 ? ? ? ? ? ? ? ? ? ? ? ? ? 1 ) 0 ( ) 1 0 ( 2 ) 1 . 0 ( ) 4 3 ( y x y x y y h K R 步长 解初值问题 公式 阶 阶、 求 例 4 解 y x y y x f / 2 ) , ( ? ? ? ?

文档评论(0)

jinchenl + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档