详见mathworks

龙格库塔方法


写成矩阵(状态方程)的形式更简洁一点(其实这两种方法结果是一样的,如果C是[1,0,0]的话,就很明显了)

例如:求系统在0-5s内的单位阶跃相应,已知传递函数:

状态方程:

clear
%状态方程
A=[0,1-100,-10];
B=[0;1];
C=[100,0];
%初值
x=[0;0];y=0;t0=0;tf=5;
h=0.05;%步长
t=t0;%从t0开始迭代,储存时间
N=round((tf-t0)/h);     %迭代步数
r=1;%单位阶跃输入
for i=1:N   k1=A * x+B*r;k2=A * (x+h*k1/2)+B*r;k3=A * (x+h*k2/2)+B*r;k4=A * (x+h*k3)+B*r;x=x+h*(k1+2*k2+2*k3+k4)/6;                    %采用四阶龙格库塔法y=[y,C*x];                                    %输出值t=[t,t(i)+h];
end
plot(t,y);

结果:

  • matlab中传函转化状态空间方程的函数

构造传函:

M=100;%分子
N=[1,10,100];%分母
G=tf(M,N);%传函

转换:

    g=ss(G);%状态方程A=g.A;%各个系数矩阵B=g.B;C=g.C;

ODE45

  • 函数句柄的创建

1、 直接@

A=@sin(x);
A(pi)

2、创建匿名函数

%定义函数f(x)=x^2
f = @(x) x^2;
f(2)
  • ODE45使用
    [t,y] = ode45(odefun,tspan,y0)
    t:自变量
    y(t):因变量
    odefun:函数句柄(自动y’=)
    tspan:t的范围,如[0,10]
    y0:初值

1、一阶方程

a=@(t,y) 2*t;
[t,y] = ode45(a, [0 5], 0);
plot(t,y)

2、二阶方程

先转化为两个一阶微分:

创建m文件:

function dydt = vdp1(t,y)
dydt = [y(2); (1-y(1)^2)*y(2)-y(1)];%括号不可省,不是变量,y是2x1列向量

调用ode45

[t,y] = ode45(@vdp1,[0 20],[2; 0]);
plot(t,y)

输出y两列,分别为y(1)和y(2)

matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45相关推荐

  1. matlab:使用4阶龙格库塔方法求微分方程组的值

    参考书目:<数值分析(matlab版)>  作者:周璐 翻译 %调用龙格库塔方法求解微分方程组,P399,9.7 微分方程组 function [t,z] = my_rk4b(f, t0, ...

  2. MATLAB中ode23函数,龙格库塔函数

    今天说一说MATLAB中ode23函数的原理,在网上看了好多,但是不知道是怎么计算的,就知道是那么用的,但是最后结果咋回事不知道,今天来讲一讲是怎么计算的. 首先来个程序: function f=eg ...

  3. matlab:使用4阶龙格库塔方法求解常微分方程组

    %书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法,例10.14使用 %四阶龙格库塔方法 function [t,z] = rk4symeq(fun, t0, tf, ...

  4. matlab:使用四阶龙格库塔方法求解微分方程组

    %书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法,例10.14使用 %四阶龙格库塔方法 function [t,z] = rk4symeq(fun, t0, tf, ...

  5. matlab求二阶电路图,MATLAB实验MATLAB数值计算:二阶电路时域研究

    <MATLAB实验MATLAB数值计算:二阶电路时域研究>由会员分享,可在线阅读,更多相关<MATLAB实验MATLAB数值计算:二阶电路时域研究(9页珍藏版)>请在人人文库网 ...

  6. 【Hydro】龙格-库塔方法的公式推导

    一.龙格-库塔方法的公式推导 摘自<数值计算方法(MATLAB版)> 二.龙格-库塔方法在水库调洪演算的应用 一般库水面坡降很小,忽略动库容影响,近似看成静水面,水库蓄水量V只随坝前水位Z ...

  7. 用四阶龙格-库塔方法求微分方程组

    最近一段时间再忙期末考试,小学期课程设计的东西,没怎么更新博客.... 更新一个用四阶龙格库塔方法求解脉冲微分方程,题目来源是一篇论文<Impulsive control of projecti ...

  8. 一阶欧拉近似matlab,MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.doc

    MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程 姓名:樊元君 学号:2012200902 日期:2012.11.06 一.实验目的 掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题 ...

  9. 计算方法实验(三):四阶龙格-库塔方法

    四阶Runge-Kutta数学原理 给定常微分方程初值问题 {dydx=f(x,y),a≤x≤by(a)=αh=b−aN\left\{ \begin{matrix} \frac{\text{dy}}{ ...

最新文章

  1. 戴尔怎样把计算机放在桌面,戴尔台式机桌面图标不见了怎么办
  2. 【深夜思考】java百度云资源
  3. LinCode落单的数
  4. Modbus协议栈开发笔记之五:Modbus RTU Slave开发
  5. Dream------scala--开发环境搭建
  6. 1052. 卖个萌 (20)-PAT乙级真题
  7. epplus word html,EPPlus简介
  8. 100%抄袭!ICLR 2022投稿论文剽窃两篇顶会,程序主席放「实锤」严词拒稿!
  9. Python-UDP编程
  10. 清华大学操作系统OS学习(十)——处理机调度
  11. Jmeter-Beanshell
  12. 手写解析微信Matrix性能监控日志的工具
  13. 裂变活动的5个关键步骤?
  14. intel和ATT汇编格式区别
  15. 小程序运营推广的方法
  16. Tomcat JDBC Pool使用说明
  17. andriod——Fresco+Retrofit+GreenDao
  18. 轻薄游戏本没性能?醒醒 外星人来了
  19. Servlet 和Session的关系
  20. 拉勾就业急训营java学习笔记说明

热门文章

  1. 电脑快捷键你知道多少个?QQ截图快捷键ctrl加什么
  2. 检测到u盘但是计算机没有反应,u盘插上电脑没反应,教您修复无法识别u盘问题...
  3. Vue Echarts世界地图
  4. 记录使用gensim进行词向量增量训练(遇到的几个问题)
  5. android系统目录和作用是什么意思,安卓Android手机系统内文件夹目录解释
  6. 如何用Ps用高斯模糊
  7. ACP——ECS题库
  8. windows terminal ssh连接
  9. Java实现窗口框架,转换金额的大小写
  10. Python爬虫-安某某客新房和二手房