matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45
详见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相关推荐
- matlab:使用4阶龙格库塔方法求微分方程组的值
参考书目:<数值分析(matlab版)> 作者:周璐 翻译 %调用龙格库塔方法求解微分方程组,P399,9.7 微分方程组 function [t,z] = my_rk4b(f, t0, ...
- MATLAB中ode23函数,龙格库塔函数
今天说一说MATLAB中ode23函数的原理,在网上看了好多,但是不知道是怎么计算的,就知道是那么用的,但是最后结果咋回事不知道,今天来讲一讲是怎么计算的. 首先来个程序: function f=eg ...
- matlab:使用4阶龙格库塔方法求解常微分方程组
%书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法,例10.14使用 %四阶龙格库塔方法 function [t,z] = rk4symeq(fun, t0, tf, ...
- matlab:使用四阶龙格库塔方法求解微分方程组
%书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法,例10.14使用 %四阶龙格库塔方法 function [t,z] = rk4symeq(fun, t0, tf, ...
- matlab求二阶电路图,MATLAB实验MATLAB数值计算:二阶电路时域研究
<MATLAB实验MATLAB数值计算:二阶电路时域研究>由会员分享,可在线阅读,更多相关<MATLAB实验MATLAB数值计算:二阶电路时域研究(9页珍藏版)>请在人人文库网 ...
- 【Hydro】龙格-库塔方法的公式推导
一.龙格-库塔方法的公式推导 摘自<数值计算方法(MATLAB版)> 二.龙格-库塔方法在水库调洪演算的应用 一般库水面坡降很小,忽略动库容影响,近似看成静水面,水库蓄水量V只随坝前水位Z ...
- 用四阶龙格-库塔方法求微分方程组
最近一段时间再忙期末考试,小学期课程设计的东西,没怎么更新博客.... 更新一个用四阶龙格库塔方法求解脉冲微分方程,题目来源是一篇论文<Impulsive control of projecti ...
- 一阶欧拉近似matlab,MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.doc
MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程 姓名:樊元君 学号:2012200902 日期:2012.11.06 一.实验目的 掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题 ...
- 计算方法实验(三):四阶龙格-库塔方法
四阶Runge-Kutta数学原理 给定常微分方程初值问题 {dydx=f(x,y),a≤x≤by(a)=αh=b−aN\left\{ \begin{matrix} \frac{\text{dy}}{ ...
最新文章
- 戴尔怎样把计算机放在桌面,戴尔台式机桌面图标不见了怎么办
- 【深夜思考】java百度云资源
- LinCode落单的数
- Modbus协议栈开发笔记之五:Modbus RTU Slave开发
- Dream------scala--开发环境搭建
- 1052. 卖个萌 (20)-PAT乙级真题
- epplus word html,EPPlus简介
- 100%抄袭!ICLR 2022投稿论文剽窃两篇顶会,程序主席放「实锤」严词拒稿!
- Python-UDP编程
- 清华大学操作系统OS学习(十)——处理机调度
- Jmeter-Beanshell
- 手写解析微信Matrix性能监控日志的工具
- 裂变活动的5个关键步骤?
- intel和ATT汇编格式区别
- 小程序运营推广的方法
- Tomcat JDBC Pool使用说明
- andriod——Fresco+Retrofit+GreenDao
- 轻薄游戏本没性能?醒醒 外星人来了
- Servlet 和Session的关系
- 拉勾就业急训营java学习笔记说明