在MATLAB中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如下:

X=dsolve(‘eqn1’,’eqn2’,…)

函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。 例1:求解常微分方程

的MATLAB程序为:dsolve('Dy=1/(x+y)','x'),注意,系统缺省的自变量为t,因此这里要把自变量写明。

结果为:-lambertw(-C1*exp(-x-1))-x-1 其中:Y=lambertw(X)表示函数关系Y*exp(Y)=X。

例2:求解常微分方程 的MATLAB程序为:Y2=dsolve('y*D2y-Dy^2=0’,’x’) 结果为: Y2 =[

exp((x+C2)/C1)] [ C2] 我们看到有两个解,其中一个是常数。 例3:求常微分方程组 通解的MATLAB程序为:

[X,Y]=dsolve('Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t)','t') 例4:求常微分方程组

通解的MATLAB程序为:

[X,Y]=dsolve('Dx+2*x-Dy=10*cos(t),Dx+Dy+2*y=4*exp(-2*t)','x(0)=2','y(0)=0')

以上这些都是常微分方程的精确解法,也称为常微分方程的符号解。但是,我们知道,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:

[T,Y]=solver(odefun,tspan,y0)

该函数表示在区间tspan=[t0,tf]上,用初始条件y0求解显式常微分方程 。

solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一,这些命令各有特点。

例5:求解常微分方程 , ,

的MATLAB程序如下:fun=inline('-2*y+2*x*x+2*x');[x,y]=ode23(fun,[0,0.5],1)

结果为: x =

0,0.0400,0.0900,0.1400,0.1900,0.2400,0.2900,0.3400,0.3900,0.4400,0.4900,0.5000

y =

1.0000,0.9247,0.8434,0.7754,0.7199,0.6764,0.6440,0.6222,0.6105,0.6084,0.6154,0.6179

例6:求解常微分方程 的解,并画出解的图形。

分析:这是一个二阶非线性方程,用现成的方法均不能求解,但我们可以通过下面的变换,将二阶方程化为一阶方程组,即可求解。 令: , ,

,则得到:接着,编写vdp.m如下: function fy=vdp(t,x)

fy=[x(2);7*(1-x(1)^2)*x(2)-x(1)]; 再编写m文件sy12_6.m如下: y0=[1;0]

[t,x]=ode45(@vdp,[0,40],y0); y=x(:,1);dy=x(:,2);

plot(t,y,t,dy)

matlab中lambertw,MATLAB解常微分方程相关推荐

  1. matlab中linprog函数解线性规划方程

    线性规划问题,建立线性规划问题模型的基本步骤: 一.明确目标 二.确定问题的决策变量 三.构建目标函数 四.确定约束条件 建立好线性规划方程之后,紧接着而来的就是如何解方程,我们使用 matlab中的 ...

  2. 【Matlab】一、解常微分方程ODE

    文章目录 求解常微分方程 ODE (1)求解解析解 (2)求解数值解 求解常微分方程 ODE ​ 在matlab中,我们可以求解常微分方程的解析解,和数值解,一般使用dsolve来求解常微分方程的解析 ...

  3. matlab中facedetector,Matlab人脸检测方法(Face Parts Detection)详解

    今天同学让我帮忙制作一个人脸表情识别的样本库,其中主要是对人脸进行裁剪,这里用到了一个相对较新的Matlab人脸检测方法Face Parts Detection,网上百度了一下发现关于Matlab人脸 ...

  4. matlab中desolve,MATLAB考试题的.doc

    MATLAB考试题的 一.填空题 1.在MATLAB中,清除所有变量的命令为_clear___________. 2. 在MATLAB中,保存和载入数据分别使用命令___save_________. ...

  5. matlab中dblquad,MATLAB积分.ppt

    MATLAB积分 (2) 用int命令求解: 先将重积分化成累次积分: MATLAB代码为 clear; syms x y z; int(int(int('y*sin(x)+z*cos(x)',z,- ...

  6. matlab中normfit,MATLAB中如何得到一组统计数据的分布特征

    MATLAB中如何得到一组统计数据的分布特征 我想通过MATLAB知道一组统计数据的分布特征,如属于哪种分布,均值方差等,请问如何实现?谢谢! function f=p_judge(A,alpha) ...

  7. matlab中fdyn,Matlab的用法总结

    1. 对序列进行洗牌 randperm() randperm()产生随机的序列 %if filepaths 是一个5*1的结构体,then cshuffle = randperm(length(fil ...

  8. matlab中rsa,matlab - Matlab中的RSA代码 - 堆栈内存溢出

    我想加密一条消息,例如" HELO1234" ,然后解密以获取原始消息.我已经在matlab中编写了无法正常工作的RSA代码. 参数计算 temp=1; range=1:10; k ...

  9. 在matlab中function,Matlab中function函数使用操作方法

    亲们或许不知道Matlab中function函数如何使用,那么今天小编就讲解Matlab中function函数使用操作方法哦,希望能够帮助到大家呢. Matlab中function函数使用操作方法 打 ...

最新文章

  1. 有没有一段代码,让你觉得人类的智慧也可以璀璨无比?
  2. OTA常见方案分析(差分升级 全量升级 AB面升级 Recovery系统升级)
  3. linux输入文件后怎么保存不了怎么办,关于linux:输入数据后为什么不能保存VI文件?...
  4. linux+右键快捷,LINUX 添加右键打开终端快捷方式
  5. NOI2011 阿狸的打字机题解
  6. zepto 事件分析4(事件队列)
  7. 4.3配置自定义情况的Bean实例
  8. PHP连接MySQL 8.0报错的解决办法
  9. 安卓Alarm闹钟唤醒耗电问题的排查
  10. 《零基础入门学习Python》第019讲:函数:我的地盘听我的
  11. 经济寒冬之后,是人工智能的春天
  12. 实习笔记 —— MyBatis III (输入/输出映射)
  13. 不畏将来,不念过往,如此安好
  14. java显示数据库_java查询数据库中的数据并显示
  15. xman的思维导图快捷键_MindMaster 思维导图快捷键
  16. 【转】走火大神说:去年这时候又辞退了一个老油条,不知道他现在是否在开公司了,可以对比一下混工资的水平...
  17. (转)Excel自定义格式详解
  18. (单击)双击直接修改内容的代码
  19. Spring Boot配置定时任务
  20. Docker玩腻了,不妨试试用Vagrant

热门文章

  1. ASP.NET学习笔记1—— MVC
  2. jQuery 的 ajax
  3. 1087 1 10 100 1000
  4. WebRequest中的工厂方法模式
  5. [leetcode]Search in Rotated Sorted Array II
  6. Error: Current license file does not support the EP1C6Q240C8/EP3C10E144C8 device
  7. c++对象模型大总结:第1-4章、对象初探与构造函数
  8. 【笔记】8位流水线乘法器(Verilog)
  9. 弹出浮动页面html怎么写,C# 浮动窗体实现(自定义弹出窗口)
  10. 判断活动窗口_蒙城活动推拉棚定做厂家