第二部分常用算法

上传人:ni****g 文档编号:569936495 上传时间:2024-07-31 格式:PPT 页数:38 大小:636.50KB
返回 下载 相关 举报
第二部分常用算法_第1页
第1页 / 共38页
第二部分常用算法_第2页
第2页 / 共38页
第二部分常用算法_第3页
第3页 / 共38页
第二部分常用算法_第4页
第4页 / 共38页
第二部分常用算法_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第二部分常用算法》由会员分享,可在线阅读,更多相关《第二部分常用算法(38页珍藏版)》请在金锄头文库上搜索。

1、第二部分常用算法与MATLAB语言编程 1算法的概念2. 方程求根3矩阵求逆4数字积分(欧拉,梯形,龙格库塔)5数字积分的精度及稳定性 常用算法http:/ 如果 t1离 t0 很近,即 h很小,曲线 y(t1)可用切线来近似,其切线方程重复上述近似过程,当t=t2时,则有一般近似公式 如果令 ,称为计算步矩,则 (1)这就是欧拉法数字积分的递推计算公式。如果hn是固定不便的,称定步长积分定步长积分;如果hn是变化的,称变步长积分变步长积分。由欧拉法数字积分的递推计算公式可看出,只要给出方程的初值(t0, y0)以及相应的步距,逐步进行递推就可获得微分方程的近似数字解。欧拉法的计算是十分简单的

2、,其计算的截断误差正比于h2 ,由此,要获得高精度解,必须减小步距,但这使得计算次数增加,又由于计算机的字长有限,h减小得过小,将引起由于舍入误差累计而产生的累积误差过大,所以此方法的精度提高有限,实际应用中较少采用。%欧拉法积分程序x0=0;y0=0;h=0.0001; xm=5; xx=;x=x0;y=y0;while x=xm x=x+h; y=y+fx(x)*h; % x=x+h; xx=xx; x,y;endplot(xx(:,1),xx(:,2)hold on x=0:0.1:xm;plot(x,(x.2)./4,-r)function y=fx(x)y=x/2;梯形法梯形法(预报

3、校正法)四阶龙格四阶龙格-库塔(库塔(Runge-Kutta)法)法1 1、Runge-KuttaRunge-Kutta法推导法推导 实际上,可以由对 dy/dxdy/dx= =求导得到 高阶微商就更复杂了。高阶微商就更复杂了。为了提高精度,用r阶展开计算公式:一般常用是计算4阶函数值,得到每步截断误差为的四阶Runge-Kutta法 其递推公式为其递推公式为: :2、根据四阶龙格-库塔法的递推公式:已知系统的状态方程为 采用四阶龙格-库塔法进行求解和仿真,其求解步骤和方法如下::1、由 ,可知 ;2 2、仿真算法、仿真算法3、由 时刻的状态为 ,得到 取 不断递推,便可得到所需时刻各点的状态

4、变量 和输出量 。 function y=runk(x1,a,b,c,d)global ts ymv sp ttsh=.5*ts; h=0 tsh tsh ts;k0=zeros(size(a(:,1);u1=(ymv(sp)+x1)/2; v=ymv(sp) u1 u1 x1;ymv(sp)=x1;sp=sp+1;n=length(k0);y0=ymv(sp:(sp+n-1);k1=a*(y0+h(1)*k0)+b*v(1); k2=a*(y0+h(2)*k1)+b*v(2);k3=a*(y0+h(3)*k2)+b*v(3); k4=a*(y0+h(4)*k3)+b*v(4);y1=y0+ k1,k2,k3,k4 *(1;2;2;1*ts/6);y=c*y1+d*x1; ymv(sp:(sp+n-1)=y1;sp=sp+n;MATLABMATLAB中的ode45ode45()()函数可实现四阶/五阶龙格-库塔算法,其调用格式为:t,y=ode45(f,tspa,x0)其中:f为定义的常微分方程函数名, tspa为起止时间向量, x0为初始状态向量,例关于数值积分法的几点讨论一、单步法和多步法二、显式和隐式三、数值稳定性与仿真误差

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号