单个高阶微分方程处理方法

一个高阶微分方程的一般形式为:

输出变量的各阶导数的初始值:

选择一组状态向量:

这样,我们就将其从一个一般的方程变换为matlab可以求解的标准形式。

例题:
Van der Pol方程:

代码:

f=@(t,x,mu)[x(2);-mu*(x(1)^2-1)*x(2)-x(1)];
x0=[-0.2;-0.7];t_final=20;
mu=1;
[t1,y1]=ode45(f,[0,t_final],x0,[],mu);
mu=2;
[t2,y2]=ode45(f,[0,t_final],x0,[],mu);
plot(t1,y1,t2,y2,':')
figure;
plot(y1(:,1),y1(:,2),y2(:,1),y2(:,2),':')



这个封闭的曲线也称作极限环。

高阶常微分方程组的变换方法


先针对x选择m个状态变量,再针对y选择n个状态变量。

由此,我们可以的到新的状态方程:

例题2:
Apollo卫星轨迹:

其中有一些中间变量(常数mu,mu,r1和r2),因此不可使用匿名函数描述。*

M文件:

function dx=apolloeq(t,x)
mu=1/82.45;mu1=1-mu;
r1=sqrt((x(1)+mu)^2+x(3)^2);
r2=sqrt((x(1)-mu1)^2+x(3)^2);
dx=[x(2);2*x(4)+x(1)-mu1*(x(1)+mu)/r1^3-mu*(x(1)-mu1)/r2^3;x(4);-2*x(2)+x(3)-mu1*x(3)/r1^3-mu*x(3)/r2^3];

调用以下命令:

x0=[1.2;0;0;-1.04935751];tic,
[t,y]=ode45(@apolloeq,[0,20],x0);toc
length(t),plot(y(:,1),y(:,3))

返回的量:
t:时间向量
y:由4列构成的矩阵,其中第一列对应状态变量x1,第四列对应x4。

将y的第一列和第三列提取出来,他们对应的恰好是原来的x和y。所以我们得到的就是Apollo卫星的轨迹。

例题3:
另一个方程组:

微分方程组中,两个式子都同时含有x和y的最高阶导数,所以不能用刚才的方法,直接获得显示微分方程。
这时我们应该设置p1和p2,作为未知数,就可以把他们求解出来。

syms x1 x2 x3 x4
[p1,p2]=solve('p1+2*x4*x1=2*p2',...'p1*p4+3*x2*p2+x1*x4-x3=5','p1,p2')

运行结果:

微分方程的标准型转换相关推荐

  1. 几类常微分方程的matlab求解方法 | 刚性微分方程、隐式微分方程、微分代数方程

    目录 微分方程的转换 一.单个高阶常微分方程 二.高阶常微分方程组 刚性微分方程求解 隐式微分方程求解 微分代数方程求解 微分方程的转换 根据微分方程求解的标准型,要得到微分方程的数值解,应该先将该方 ...

  2. MATLAB:三阶矩阵约当阵,能控,能观标准型转化

    主函数: clear; %三阶矩阵 A=[0,1,-1;-6,-11,6;-6,-11,5]; B=[0;0;1]; C=[1,0,0]; n=size(A,1); Q1=zeros(n); Q2=z ...

  3. [渝粤教育] 东北大学 现代科学运算—MATLAB语言与应用 参考 资料

    教育 -现代科学运算-MATLAB语言与应用-章节资料考试资料-东北大学[] 01-01 本课程的主要内容 1.[判断题] A.正确 B.错误 参考资料[ ] 2.[判断题] A.正确 B.错误 参考 ...

  4. matlab expma,现代科学运算—MATLAB语言与应用-中国大学mooc-题库零氪

    第1章 绪论 01-01 本课程的主要内容随堂测验 1. 2. 01-02 为什么学习计算机数学语言随堂测验 1. 2. 01-03 解析解与数值解随堂测验 1. A. B. C. D. 2. 01- ...

  5. 用matlab求上三角矩阵的逆,现代科学运算—MATLAB语言与应用-中国大学mooc-题库零氪...

    第1章 绪论 01-01 本课程的主要内容随堂测验 1. 2. 01-02 为什么学习计算机数学语言随堂测验 1. 2. 01-03 解析解与数值解随堂测验 1. A. B. C. D. 2. 01- ...

  6. 第三讲 一阶线性ODE

    一,一阶线性ODE的一般形式: 二,标准形式: 如果或,则方程为齐次方程 三,"温度-浓度"模型: 假设用半透膜(只能渗透盐的膜)包裹着淡水放进已加热的盐水里,淡水的温度是,盐水的 ...

  7. 第一讲 ODE几何方法

    一,OED是常微分方程的英文缩写,一般形式是: 二,表示向量场(斜率场),它的解(原函数)表示积分曲线: 三,什么是向量场和积分曲线(见视频6:45~9:10): 四,如何做向量场: 电脑方法:等距取 ...

  8. 现代控制—状态反馈极点配置函数(计算反馈增益k)

    状态反馈极点配置要求系统是可控的,所以首先用ctrb函数计算得到可控判断矩阵Lc,对可控性进行判断,接着计算可控标准型转换矩阵Tinv,计算得到可控标准型对应的A阵(Astf),计算k_hat,最后计 ...

  9. matlab求解微分方程的数值解

    简 介:前面介绍了微分方程的解析解方法,同时也指出很多非线性微分方程是不存在解析解法的,需要使用数值解法对之进行研究.本文着重讨论基于 MATLAB/Simulink语言的各类微分方程的数值解方法. ...

最新文章

  1. Dot Net设计模式—外观模式
  2. python之父去面试-Python面试题之Python的Super方法
  3. lodsb、stosb(和lodsw、stosw和lodsd、stosd指令)
  4. 【基础】华为设备默认路由和静态路由配置实战
  5. mysql cannot connect_【IT专家】mysql远程访问cannot connect(10038) 问题解决的过程
  6. SonarQube+Jenkins,搭建持续交付平台
  7. Android开源git40个App源码
  8. Android开发(22)--seekBar采用handler消息处理操作
  9. 玩转Win7语音识别功能 让Win7“听话”
  10. ROS的学习(二十)rosserial中的Publisher和Subscriber中的编程步骤
  11. 【Python读csv文件】'gbk' codec can't decode byte 0xb3 in position 73: illegal multibyte sequence
  12. Fiddler使用教程
  13. 怎么做一个企业级的BI项目?三步教你迅速搭建
  14. LiveGBS接入LiveQing流媒体服务实现云端录像和大屏展示
  15. 百度apollo planning代码学习-Apollo\modules\planning\math\piecewise_jerk\PiecewiseJerkPathProblem类代码详解
  16. 计算机专业座谈会问题,我院计算机专业开展专业抽检主题座谈会
  17. 到底什么是服务器托管
  18. 毕业设计-基于DGA 恶意域名的检测算法
  19. 【 微信小程序请求封装】【进阶版】处理401请求token过期--重新登录--重新发起刚才过期的请求
  20. font-size: 0的作用和用途

热门文章

  1. 传统USB和USB C型数据线的分别介绍!
  2. lua java 效率_lua 优化
  3. zblog php 自适应,简约zblog php自适应博客主题plain
  4. 如何优化项目人工工时的成本?
  5. Reverse a singly linked list python
  6. 傻白探索Chiplet,Chiplet Heterogeneous IntegrationTechnology—Status and Challenges(十四)
  7. 【会声会影素材】倒计时素材下载第二弹
  8. Oracle ERP 技术探讨
  9. 【毕设狗】【单片机毕业设计】基于单片机的室内空气质量检测系统的设计
  10. 360 php 防护代码,360发布通用php防护代码