matlab求解微分方程
来源:互联网 发布:罗开元淘宝店 编辑:程序博客网 时间:2024/05/17 02:17
如何用matlab来求解简单的微分方程?举例来说明吧。
- 求解三阶常微分方程。我们知道,求解高阶常微分方程可以化为求解一阶常微分方程组。编写函数eq3.m:
%解常微分方程 3*y'''+5*y''+6*sin(t)*y=costfunction ydot = eq3(t,y) ydot=[y(2);y(3);(cos(t)-5*y(3)-6*sin(t)*y(1))/3];
其中,ydot为一个列向量,值分别表示y‘(1)、y‘(2)、y‘(3)的取值,t自因变量,y为因变量,一个y就可以表示因变量组了。事实上,说白了,这个函数就是申明一下变量使t和y,以及y一阶导的右端项为那三个。
接着,编写主函数如下:
%解常微分方程 3*y'''+5*y''+6*sin(t)*y=cost[t23,y23]=ode23(@eq3,[0,5],[0,1,3])
[0,5]表示自变量(这里是t)取值范围,[0,1,3]表示初始条件,也就是
- 二阶常微分方程
编写函数eq2.m
function ydot= eq2(t,y)ydot=[y(2);-3-cos(2*t) + 2*sin(t)+t-3.8];
主函数
clcclear[t,y]=ode23('eq2',[0,20],[0,1]); plot(t,y(:,1),'-',t,y(:,2),'-.')
- 求解微分方程,以上matlab内部用的是欧拉折现法,或者是单步法的改进,得不到一个解析解。那么如何求带初值问题的解析解呢?如下:
y=dsolve('D3y-D2y=x','y(1)=8,Dy(1)=7,D2y(1)=4','x')
一目了然,就不多解释了。
- 方程组解析解,以及带初始条件的解析解。
clc,clearequ1='D2f+3*g=sin(x)'; equ2='Dg+Df=cos(x)'; [general_f,general_g]=dsolve(equ1,equ2,'x') [f,g]=dsolve(equ1,equ2,'Df(2)=0,f(3)=3,g(5)=1','x')
- 非其次线性方程组:
编写vdp1.m
function dy=vdp1(t,y); dy=[y(2);(1-y(1)^2)*y(2)-y(1)];
主函数:
[T,Y]=ode45('vdp1',[0 20],[2;0]); %观察结果。利用plot输出解的结果:plot(T,Y(:,1),'-',T,Y(:,2),'--') title('Solution of van der Pol Equation,mu=1');xlabel('time t'); ylabel('solution y'); legend('y1','y2');
绘图:
- 求解高阶微分方程
1、编写F.m函数,并保存
function dy=F(t,y);dy=[y(2);y(3);3*y(3)+y(2)*y(1)];
2、主函数
[T,Y]=ode45('F',[0 1],[0;1;-1]) %求解y'''-3y'-yy'=0 y(0)=0 y'(0)=1 y''(0)=-1
- 求无初始条件的微分方程的解析通解各项
clcclearsyms x y diff_equ='x^2+y+(x-2*y)*Dy=0'; dsolve(diff_equ,'x') %求无初始条件的微分方程的解析通解各项
好吧,就说这么多了。这里介绍的是matlab内置的算法,知道原理自己动手编也是很快的啦。
0 0
- matlab求解微分方程
- 用MATLAB求解非线性微分方程
- matlab-高数 微分方程求解
- matlab-自控原理 微分方程求解
- Matlab求解微分方程数值解
- matlab 龙格-库塔 法求解常微分方程
- MATLAB数学建模(8)-常微分方程求解
- matlab求解常微分方程数值解
- Matlab基础学习-----------Matlab求解常微分方程边值问题的方法
- 求解微分方程
- 四阶龙格-库塔法求解常微分方程的初值问题-matlab通用程序
- MATLAB求解常微分方程:ode45函数与dsolve函数
- 应用Matlab求解二阶偏微分方程的基…
- 微分方程求解思考
- Matlab中求解双曲椭圆一维初边值偏微分方程(组)的pdepe
- 【数模学习】Matlab 符号微积分 计算微分、雅可比矩阵、不定积分与定积分、求解微分方程
- Matlab求解中性类型的时滞微分方程组-中性类型的时滞微分方程
- Matlab ode45 解微分方程
- C++指向成员运算符重载
- HDU 5676 ztr loves lucky numbers
- Poj 2230 Watchcow【欧拉回路】
- java消息机制 ActiveMQ入门实例
- windows exploer 电脑不停刷新闪屏
- matlab求解微分方程
- 【一点一滴Bootstrap】导航栏
- 第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密 java.lang.ClassNotFoundException 踩坑解决问题详细内幕版本
- 大一时候写的C控制台操作记事本
- script标签位置的放置
- FullPage.js全屏滚动插件
- Qt学习笔记之文本编辑器实现加粗、倾斜、下划线、字体、居中对齐、左对齐、右对齐
- map的基础知识
- ubuntu or debian下安装php mysql apache phpmyadmin