龙格库塔方法课件.ppt

上传人(卖家):三亚风情 文档编号:2957417 上传时间:2022-06-15 格式:PPT 页数:19 大小:1.10MB
下载 相关 举报
龙格库塔方法课件.ppt_第1页
第1页 / 共19页
龙格库塔方法课件.ppt_第2页
第2页 / 共19页
龙格库塔方法课件.ppt_第3页
第3页 / 共19页
龙格库塔方法课件.ppt_第4页
第4页 / 共19页
龙格库塔方法课件.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、Runge-Kuttua方法和matlab原理龙格库塔法(Runge-Kutta)数值分析中,龙格库塔法(Runge-Kutta)是用于模拟常微分方程的解的重要的一类隐式或显式迭代法。这些技术由数学家卡尔龙格和马丁威尔海姆库塔于1900年左右发明。经典四阶龙格库塔法龙格库塔法的家族中的一个成员如此常用,以至于经常被称为“RK4”或者就是“龙格库塔法”。四阶Runge-Kutta方法112341211231224130022622/( ,.,.初始条件:对于问题方程如下:),nnnnnnnnnndydxf t yy tyhyyKKKKKfxyhKfxyKhKfRuxyKKfxyhngeKKutt

2、a这样,下一个值(yn+1)由现在的值(yn)加上时间间隔(h)和一个估算的斜率的乘积决定。该斜率是以下斜率的加权平均:k1是时间段开始时的斜率;k2是时间段中点的斜率,通过欧拉法采用斜率 k1 来决定 y在点 tn + h/2的值;k3也是中点的斜率,但是这次采用斜率 k2决定 y值;k4是时间段终点的斜率,其 y值用 k3 决定。当四个斜率取平均时,中点的斜率有更大的权值:误差分析:误差分析:注意上述公式对于标量或者向量函数(y可以是向量)都适用。 四阶R-K方法的每一步需要计算四次函数值f,可以证明其局部截断误差为O(h5).R-K(R-K(高阶高阶) )方法不唯一方法不唯一, ,选择不

3、同的选择不同的参数能得到参数能得到不同的不同的R-KR-K公式公式注意的问题注意的问题R-KR-K方法的推导是基于方法的推导是基于TaylorTaylor展开展开法,因而要求法,因而要求解具有较好的光滑性,如果光滑性解具有较好的光滑性,如果光滑性较差精度可较差精度可能不如改进能不如改进EulerEuler方法方法, ,最好采用最好采用低低阶算法阶算法而将步长而将步长h 取小取小。Runge-Kutta法的主要运算在于计算法的主要运算在于计算 Ki 的值,即计算的值,即计算 f 的值。计算量与可达到的最高精度阶数的关系:的值。计算量与可达到的最高精度阶数的关系:753可达到的最高可达到的最高精度

4、精度642每步须算每步须算Ki 的的个数个数)(2hO)(3hO)(4hO)(5hO)(6hO)(4hO)(2nhO8n四阶四阶Runge-KuttaRunge-Kutta方法的方法的MATLABMATLAB实现原理:实现原理:四阶R-K方法实现开始开始0 0, ,x y hN 输输 入入10100200100200312342232210226;( , ),(,)(,), (,)()xxhhhKf x y Kf xyKhhKf xyKf xh yhKhyyKKKK输出输出x1,y1?n N10101 ;,n Nx x y y 结束结束YNfunction ff=rk(yy,x0,y0,h,a

5、,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次迭代结果,每列分别存放k1k4及y的结果不断迭代运算: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,

6、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; endend 1) 0 () 10 (2) 1 . 0()43 (yxyxyyhKR步长步长解初值问题解初值问题公式公式阶阶阶、阶、求求例例4解解yxyyxf/2),( .2,2,2,462131213211hKhKyhxfKKhyhxfKyxfKKKKhyynnnnnnnn例例 题题 4xnYn|yn-y(xn)|R-K3误差误差y(xn)0.11.0959 0.00051.095440.45e-41.09540.21.1841 0.0009 1.1832

7、20.17e-41.18320.31.2662 0.0013 1.264910.15e-41.26490.41.3434 0.0018 1.341650.48e-41.34160.51.4164 0.0022 1.414220.25e-41.41420.61.4860 0.0028 1.483260.55e-41.48320.71.5525 0.0033 1.549210.14e-41.5492改进改进EulerEuler法一步需要计算两个函数值法一步需要计算两个函数值(h=0.1)(h=0.1)四阶四阶Runge-KuttaRunge-Kutta方法一步需要计算四方法一步需要计算四个函数值(

8、个函数值(h=0.2h=0.2)总计算量大致相当,但四阶总计算量大致相当,但四阶Runge-Runge-KuttaKutta方法精度更高方法精度更高五、变步长Runge-Kutta方法 从每一步看,步长越小,截断误差从每一步看,步长越小,截断误差越小;但随着步长的缩小,在一定越小;但随着步长的缩小,在一定求解范围内所要完成的步数就会增求解范围内所要完成的步数就会增加,步数的增加不但引起计算量的加,步数的增加不但引起计算量的增大,而且可能导致舍入误差的严增大,而且可能导致舍入误差的严重积累,因此需要选择步长重积累,因此需要选择步长如何衡量和检验计算结果的精度如何衡量和检验计算结果的精度如何依据所

9、判定的精度来处理步长如何依据所判定的精度来处理步长实施方案 以经典四阶以经典四阶Runge-KuttaRunge-Kutta方法为例方法为例155151( )( )( )( ) ,hnnhnnnxhyC hC y xx xn n+ +1 1设设 从从 节节 点点出出 发发 , 先先 以以为为 步步 长长 求求 出出 一一 个个 近近 似似 值值 , 记记 为为因因 为为 经经 典典 格格 式式 的的 局局 部部 截截 断断 误误 差差 为为 O O( (h h) ), ,因因 此此 有有y y( (x x ) )- -y y其其 中中与与在在内内 的的 值值 有有 关关2112( )+hnnn

10、hxxy将将 步步 长长 折折 半半 , 即即 取取 为为 步步 长长 从从跨跨 两两 步步 到到 , 求求 得得 一一 个个 近近 似似 值值5521222( )( ),( )hnhhCCn n+ +1 1每每 跨跨 一一 步步 截截 断断 误误 差差 是是有有 y y( (x x ) )- -y y21111116116( )( )()()hnnhnny xyy xy步步 长长 折折 半半 后后 , 误误 差差 大大 约约 减减 少少 为为 原原 来来 的的 , 即即 有有221111115( )( )( )()hhhnnnny xyyy事事 后后 估估 计计 式式 为为 可以通过检查步长

11、折半前后两次计可以通过检查步长折半前后两次计算结果的偏差算结果的偏差211( )( )=hhnnyy 来判断所选取的步长是否合适来判断所选取的步长是否合适, ( 1 1) 对对 于于 给给 定定 的的 精精 度度, 如如 果果则则 反反 复复 将将 步步 长长 折折 半半进进 行行 计计 算算 直直 至至为为 止止 , 这这 时时 取取 折折 半半 以以 后后 的的 “ 新新 值值 ”作作 为为 结结 果果 ;( 2 2) 如如 果果, 则则 反反 复复 将将 步步 长长 加加 倍倍 , 直直 至至为为 止止 ,这这 时时 取取 步步 长长 加加 倍倍 前前 的的 “ 老老 值值 ” 作作 为为 结结 果果变步长方变步长方法法Thanks!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(龙格库塔方法课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|