第二部分-常用算法课件_第1页
第二部分-常用算法课件_第2页
第二部分-常用算法课件_第3页
第二部分-常用算法课件_第4页
第二部分-常用算法课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二部分常用算法与MATLAB语言编程1.算法的概念2.方程求根3.矩阵求逆4.数字积分(欧拉,梯形,龙格库塔)5.数字积分的精度及稳定性常用算法

方程求根矩阵求逆数值积分欧拉法t0t1ty(t)hyy(t0)y(t1)图2-5-1t0t1tf(t)ff(t0)图2-5-2h设一阶微分方程

如果t1离t0很近,即h很小,曲线y(t1)可用切线来近似,其切线方程重复上述近似过程,当t=t2时,则有一般近似公式

如果令,称为计算步矩,则

(1)这就是欧拉法数字积分的递推计算公式。如果hn是固定不便的,称定步长积分;如果hn是变化的,称变步长积分。由欧拉法数字积分的递推计算公式可看出,只要给出方程的初值(t0,y0)以及相应的步距,逐步进行递推就可获得微分方程的近似数字解。欧拉法的计算是十分简单的,其计算的截断误差正比于h2

,由此,要获得高精度解,必须减小步距,但这使得计算次数增加,又由于计算机的字长有限,h减小得过小,将引起由于舍入误差累计而产生的累积误差过大,所以此方法的精度提高有限,实际应用中较少采用。%%%%欧拉法积分程序x0=0;y0=0;h=0.0001;xm=5;xx=[];x=x0;y=y0;whilex<=xmx=x+h;y=y+fx(x)*h;

%x=x+h;xx=[xx;x,y];endplot(xx(:,1),xx(:,2))holdonx=0:0.1:xm;plot(x,(x.^2)./4,'--r')functiony=fx(x)y=x/2;梯形法(预报——校正法)四阶龙格-库塔(Runge-Kutta)法1、Runge-Kutta法推导实际上,可以由对dy/dx=求导得到高阶微商就更复杂了。为了提高精度,用r阶展开计算公式:一般常用是计算4阶函数值,得到每步截断误差为的四阶Runge-Kutta法其递推公式为:2、根据四阶龙格-库塔法的递推公式:已知系统的状态方程为 采用四阶龙格-库塔法进行求解和仿真,其求解步骤和方法如下::1、由,可知;2、仿真算法3、由时刻的状态为,得到

取不断递推,便可得到所需时刻各点的状态变量和输出量。functiony=runk(x1,a,b,c,d)globalts

ymvspttsh=.5*ts;h=[0tsh

tsh

ts];k0=zeros(size(a(:,1)));u1=(ymv(sp)+x1)/2;v=[ymv(sp)u1u1x1];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;MATLAB中的ode45()函数可实现四阶/五阶龙格-库塔算法,其调用格式为:[t,y]=ode45('f',tspa,x0)其中:f为定义的常微分方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论