《微分方程的数值解法matlab(四阶龙格—库塔法)》由会员分享,可在线阅读,更多相关《微分方程的数值解法matlab(四阶龙格—库塔法)(36页珍藏版)》请在人人文库网上搜索。

1、微分方程的数值解法,四阶龙格库塔法 (The Fourth-Order RungeKutta Method),常微分方程(Ordinary differential equations, ODE),初值问题-给出初始值 边值问题-给出边界条件,与初值常微分方程解算有关的指令 ode23 ode45 ode113 ode23t ode15s ode23s ode23tb,一.解ODE的基本机理:,2. 把高阶方程转换成一阶微分方程组,1. 列出微分方程,初始条件,令,(2.1),(2.2),(2.3),例:著名的Van der Pol方程,令,降为一阶,初始条件,3. 根据式(2.2)编写计算导。

2、数的M函数文件-ODE文件,把t,Y作为输入宗量,把 作为输出宗量,%M function file name: dYdt.m function Yd = f (t, Y) Yd = f (t,Y) 的展开式,例Van der Pol方程,%M function file name: dYdt.m function Yd = f (t, Y) Yd=zeros(size(Y);,4. 使编写好的ODE函数文件和初值 供微分方程解算指令(solver)调用,Solver解算指令的使用格式,输出宗量形式,说明: t0:初始时刻;tN:终点时刻Y0:初值; tol:计算精度,例题1:著名的Van d。

3、er Pol方程,% 主程序 (程序名:VanderPol _ex1.m) t0 = 0; tN = 20; tol = 1e-6; Y0 = 0.25; 0.0; t, Y=ode45 (dYdt, t0, tN, Y0, tol); subplot (121), plot (t, Y) subplot (122), plot (Y( :, 1), Y( :, 2),解法1:采用ODE命令,Van der Pol方程,% 子程序 (程序名: dYdt.m ) function Ydot = dYdt (t, Y),Ydot=Y(2);-Y(2)*(Y(1)2-1)-Y(1);,或写为,fun。

4、ction Ydot = dYdt (t, Y) Ydot=zeros(size(Y); Ydot(1)=Y(2); Ydot(2)=-Y(2)*(Y(1).2-1)-Y(1);,各种solver 解算指令的特点,二. 四 阶 Runge-Kutta 法,对 I=a,b作分割,步长,单步法-Runge-Kutta 方法 多步法-Admas方法,计算 的近似值 时只用到 ,是自开始方法,Runge-Kutta法是常微分方程的一种经典解法 MATLAB 对应命令:ode45,四阶Runge-Kutta公式,四 阶 Runge-Kutta 法计算流程图,开始,Plot,初始条件: ; 积分步长: 迭。

5、代次数:,输出结果,子程序计算,End,三. Runge-Kutta 法解Van der Pol 方程的Matlab 程序结构主程序:RK_vanderpol.m 子程序:RK_sub.m(函数文件),解法2:采用Runge_Kutta法编程计算,主程序:RK_vanderpol.m t0=0; tN=20; y0=0.25; 0; h=0.001; t = t0 : h : tN; N = length (t); j = 1; for i = 1 : N t1 = t0 + h; K1 = RK_sub(t0, y0); K2 = RK_sub(t0 + h/2, y0 + h*K1/2);。

6、 K3 = RK_sub(t0 + h/2, y0 + h*K2/2); K4 = RK_sub(t0 + h, y0 + h*K3); y1 = y0 + (h/6)*(K1 + 2*K2 + 2*K3 + K4); yy1(j)=y1(1); yy2(j)=y1(2); t0=t1; y0=y1; j=j+1; end subplot (121), plot (t, yy1, t, yy2); grid subplot (122), plot (yy2, yy1); grid,子程序:RK_sub.m function ydot = vdpol (t, y) ydot=zeros(size。

7、(y); ydot(1) = y(2); ydot(2) = -y(2)*(y(1)2-1)-y(1); 或写为: ydot = y(1) ;-y(2)*(y(1)2-1)-y(1);,四. Matlab对应命令:ode23,ode45,调用格式: t, y=ode23 (函数文件名, t0, tN, y0, tol) t, y=ode45 (函数文件名, t0, tN, y0, tol),默认精度: ode231e-3 ode451e-6,说明: t0:初始时刻;tN:终点时刻 y0:初值; tol:计算精度,3月15日作业: 1.Van der Pol 方程的两种解法:1)采用ode45命。

8、令 2)Runge-Kutta方法 2.Duffing 方程的求解(Runge-Kutta方法,计算步长h=0.005,计算时间t0=0.0,tN=100) 要求:写出程序体,打印所绘图形,图形标题用个人的名字。,Duffing 方程,.,五. 动力学系统的求解,1. 动力学方程,2. 二阶方程转成一阶方程,(1),令:,(2),其中:,即:,(2),3. Matlab 程序(主程序:ZCX),t0;Y0;h;N;P0,w; %输入初始值、步长、迭代次数、初始激励力; for i = 1 : N t1 = t0 + h P=P0*sin(w*t0);0.0;0.0 %输入t0时刻的外部激励力 。

9、K1 = ZCX_sub (t0, Y0, P ) P= %输入 (t0+h/2) 时刻的外部激励力 K2 = ZCX_sub (t0 + h/2, Y0 + hK1/2, P ) K3 = ZCX_sub (t0 + h/2, Y0 + hK2/2, P ) P= %输入 (t0+h) 时刻的外部激励力 K4 = ZCX_sub (t0 + h, y0 + hK3, P) Y1 = y0 + (h/6) (K1 + 2K2 + 2K3 + K4) t1, Y1 (输出 t1, y1) next i 输出数据或图形,Matlab 程序(子程序:ZCX_sub.m),function ydot 。

10、= f (t, Y,P) M=, K=, C= %输入结构参数 P1=zeros(3,1);inv(M)*P; A=zeros(0,0), eye(n,n) ; -M-1K, -M-1C ydot =AY+P1,例题2:三自由度质量弹簧系统,矩阵表示,其中:,动力学方程:,解析解:,已知参数:m1=m2=m3=1, k1=2, k2=2, K3=1, K4=2, P0=1, 要求:采用四阶龙格库塔法编程计算三个质量的响应时程.计算时间 0 50,例如:,4阶龙格库塔法的结果,ode45 的结果,第一个质量的位移响应时程,结果完全一致,MATLAB程序 (1)4阶RK方法: (2)采用ode45。

11、: m_chap2_ex2_1.m,m_chap2_ex2_1_sub.m,例题3: 蹦极跳系统的动态仿真,蹦极者系着一根弹性绳从高处的桥梁(或山崖等)向下跳。在下落的过程中,蹦极者几乎处于失重状态。按照牛顿运动规律,自由下落的物体由下式确定:,其中,m 为人体的质量,g 为重力加速度,x 为物体的位置,第二项和第三项表示空气的阻力。其中位置 x 的基准为桥梁的基准面(即选择桥梁作为位置的起点 x0),低于桥梁的位置为正值,高于桥梁的位置为负值。如果人体系在一个弹性常数为 k 的弹性绳索上,定义绳索下端的初始位置为 0,则其对落体位置的影响为:,空气的阻力,整个蹦极系统的数学模型为:,设桥梁距。

12、离地面为 50 m,即 h2=50,蹦极者的起始位置为绳索的长度 30 m,即 h1=30,蹦极者起始速度为 0,其余的参数分别为 k20, a2a11;m70 kg,g10 m/s2。,初始条件:,已知参数:,初始条件变为:,y0=-30; 0; % 初始位移和初始速度 t,y=ode45(bengji_sub, 0:0.01:100, y0); x1=50. - y(:,1); % x1代表蹦极者与地面之间的距离 plot(t,x1); grid plot(t,y(:,1); grid % y(:,1)代表位移,主程序 (程序名:bengji.m),Matlab程序,function yd。

13、ot=f(t,y) m=70; k=20; a1=1; a2=1; g=10; x=y(1); % x代表蹦极者的位移 x_dot=y(2); % x_dot 代表 x 的速度 if x0 ydot=0,1;-k/m,-a1/m-(a2/m)*abs(x_dot)*y+0;g; else ydot=0,1;0,-a1/m-(a2/m)*abs(x_dot)*y+0;g; end,子程序 (程序名:bengji_sub.m ),y(:,1),x1,结果分析: 右上图为蹦极者与地面之间的距离。从结果可看出,对于体重为 70 kg 的蹦极者,此系统是不安全的,因为蹦极者与地面之间的距离出现了负值 。因此,必须使用弹性系数较大的弹性绳索,才能保证蹦极者的安全。,作业(书面作业,写出程序体): (1)三自由度模型仿真 (自编Runge-Kutta 法) (2)蹦极跳模型仿真 (解算指令ode45。

四阶龙格库塔法 matlab ode45,微分方程的数值解法matlab(四阶龙格—库塔法)相关推荐

  1. 有确定项微分方程的matlab程序,微分方程的数值解法matlab四阶龙格—库塔法课件...

    <微分方程的数值解法matlab四阶龙格-库塔法课件>由会员分享,可在线阅读,更多相关<微分方程的数值解法matlab四阶龙格-库塔法课件(36页珍藏版)>请在人人文库网上搜索 ...

  2. 四阶龙格库塔法的基本思想_数值常微分方程-欧拉法与龙格-库塔法

    大三时候在跳蚤市场闲逛,从一位数学院的学长那里买了一些闲书,最近翻出来刚好有李荣华.刘播老师的<微分方程数值解法>和王仁宏老师的<数值逼近>,结合周善贵老师的<计算物理& ...

  3. [常微分方程的数值解法系列五] 龙格-库塔(RK4)法

    龙格-库塔法 简介 基本思想 具体方法 一阶 二阶 求解参数 特殊二阶 三阶 高阶 步长选择 例子 在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其 ...

  4. 二阶龙格库塔公式推导_[常微分方程的数值解法系列五] 龙格-库塔(RK4)法

    在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程.但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于 ...

  5. 微分方程的数值解法——常微分方程——差分法(1)

    微分方程的数值解法--常微分方程--差分法 差分法思想: 差分就是讲解析解中的差分方程中的微分项用差分来代替,当取得变量步长足够小时可以无限逼近. 两大步骤: 1.建立差分格式 1.对解得存在区域划分 ...

  6. python解决微分方程(数值解法)

    Python求解微分方程(数值解法) 对于一些微分方程来说,数值解法对于求解具有很好的帮助,因为难以求得其原方程. 比如方程: 但是我们知道了它的初始条件,这对于我们叠代求解很有帮助,也是必须的. 那 ...

  7. 抛物型微分方程的数值解法——向前及向后欧拉法

    声明 本部分是一个学习笔记,主要内容来自于华冬英老师编写的<微分方程的数值解法与程序实践>.如果觉得内容不错,可自行购买价格良心的官方正版教材.http://www.hxedu.com.c ...

  8. 常微分方程的数值解法 Matlab

    一.原理 1.常微分方程的离散化 下面主要讨论一阶常微分方程的初值问题,其一般形式为 由常微分方程理论,初值问题(1)的解必定存在唯一 所谓数值解法,就是球(1)的解y(x)在若干点 a = x0 & ...

  9. 微分方程的数值解法与符号解法

    文章目录 数值解 符号解 数值解 问题 Matlab实现 main.m 主函数 clear,clc x0 = 0; % xmin x1 = 1; % xmax h = 0.1; % 步长 y0 = 1 ...

  10. 微分方程的数值解法与程序实现 pdf_【MATLB数值】—数值计算

    1.多项式 (1)多项式表示方法 多项式 可以用向量表示为:y=[1 13 0 5 12]; 对于缺少幂次项系数为0: (2)多项式的运算 多项式乘除运算 计算代码: clear clc%多项式相乘c ...

最新文章

  1. 浅析刚刚起步的创业公司应该如何选择适合自己的网站类型呢?
  2. MVC5管道处理模型
  3. 易语言html规则分析,易语言算法原理浅析【一】(示例代码)
  4. java 获取当前classpath的绝对路径
  5. 高帮足球鞋_高帮运动鞋和晕车症可以教给我们有关VR设计的知识
  6. windows 内部预览版与迅雷极速版不配合
  7. Pocket英语语法---三、英语动词的特点是什么
  8. shareplex三点同步配置
  9. 备忘录模式-Memento
  10. 教之初在线计算机考题,教之初计算机考试系统
  11. TA技术美术学习路线
  12. Minecraft mod制作简易教程(五)——本地化和国际化
  13. 【泛融顾问分享】互联网金融未来走向预测
  14. Wallpaper Engine使用视频壁纸黑屏解决方法(window10)
  15. Request Headers 和Response Headers——请求头和响应头
  16. VC6 SP6下载地址
  17. 解决mysql 服务无法启动问题:Can't find messagefile 'D:\ ools\mysql-5.6.25-winx64\share\errmsg.sys'...
  18. CenterPoint 学习笔记
  19. 用python读取txt文件中的数据并画各类图形展示_Python实现读取txt文件中的数据并绘制出图形操作示例...
  20. 基于MATLAB的农业病虫害识别系统

热门文章

  1. 网易云计算机系统有限公司,网易云音乐
  2. GIS实验之房价数据可视化分析
  3. PG修改表字段长度报错 cached plan must not change result type Hint: Please restore the result type
  4. 已知圆上两点坐标和半径求圆心
  5. VS2015卸载不完全与安装问题
  6. sql怎么实现2个表连接_多表上SQL连接:概述和实现
  7. win10系统怎么改奇摩输入法_Yahoo! 奇摩输入法
  8. 科目3|软考高项论文写作技巧
  9. 训练集与测试集数据分布不一致
  10. ISO/IEC 27000 信息安全管理体系认证培训及所有标准资料