求解微分方程

  • desolve函数
    • 实例1
    • 实例2
    • 实例3
    • 实例4
  • 求解有条件的微分方程
  • 微分方程显示隐式解
  • 未找到显式解决方案时查找隐式解决方案
  • 求微分方程级数解
  • 为具有不同单边限制的函数指定初始条件(特解)
  • 练习题

desolve函数

S = dsolve(eqn)求解微分方程eqn,其中eqn是符号方程。使用diff和==来表示微分方程。例如,diff(y,x) == y表示方程dy / dx  =  y。通过指定 eqn为这些方程的向量来求解微分方程组。S = dsolve(eqn,cond)eqn用初始或边界条件求解cond。S = dsolve(___,Name,Value) 使用由一个或多个Name,Value对参数指定的附加选项。[y1,...,yN] = dsolve(___)将解分配给变量y1,...,yN。

求解y关于什么的函数就要声明为y (x) ,必须使用syms来声变量, 否则会被警告

实例1

ddxy⁡(t)=−3y⁡(t)\frac{d}{{dx}}\operatorname{y} \left( t \right) = - 3\operatorname{y} \left( t \right)dxd​y(t)=−3y(t)

%案例一
clear all
clc
syms y(t);
eqn=diff(y,t) == -3*y
F=dsolve(eqn)
latex(F)


C1e−3tC_{1}\,{\mathrm{e}}^{-3\,t}C1​e−3t

实例2

%案例二
clear all
clc
syms y(t) a
eqn = diff(y,t) == a*y
S = dsolve(eqn)

结果和上面相似

实例3

ddxy⁡(t)=3x2\frac{d}{{dx}}\operatorname{y} \left( t \right) = 3{x^2}dxd​y(t)=3x2

%案例三
clear all
clc
syms y(t) x
eqn=diff(y,t)==3*x^2
F=dsolve(eqn)
latex(F)


3tx2+C13\,t\,x^2+C_{1}3tx2+C1​

实例4

d2dx2y⁡(t)=ay⁡(t)\frac{{{d^2}}}{{d{x^2}}}\operatorname{y} \left( t \right) = a\operatorname{y} \left( t \right)dx2d2​y(t)=ay(t)

%二阶案例一
clear all
clc
syms y(t) a
eqn = diff(y,t,2) == a*y
ySol(t) = dsolve(eqn)
latex(ySol(t))


C1e−at+C2eatC_{1}\,{\mathrm{e}}^{-\sqrt{a}\,t}+C_{2}\,{\mathrm{e}}^{\sqrt{a}\,t}C1​e−a​t+C2​ea​t

求解有条件的微分方程

dydt=zdzdt=−y\begin{gathered} \frac{{dy}}{{dt}} = z \\ \frac{{dz}}{{dt}} = - y \\ \end{gathered} dtdy​=zdtdz​=−y​

%有条件的微分方程
clear all
clc
syms y(t) z(t)
eqns = [diff(y,t) == z, diff(z,t) == -y]
S = dsolve(eqns)

dsolve返回一个包含解的结构

%有条件的微分方程案例1
clear all
clc
syms y(t) z(t)
eqns = [diff(y,t) == z, diff(z,t) == -y]
S = dsolve(eqns)
ySol(t) = S.y
zSol(t) = S.z


C1cos⁡(t)+C2sin⁡(t)C_{1}\,\cos\left(t\right)+C_{2}\,\sin\left(t\right)C1​cos(t)+C2​sin(t)
C2cos⁡(t)−C1sin⁡(t)C_{2}\,\cos\left(t\right)-C_{1}\,\sin\left(t\right)C2​cos(t)−C1​sin(t)
(∂∂ty⁡(t)=4z⁡(t)∂∂tz⁡(t)=−3y⁡(t))\left( {\frac{\partial }{{\partial t}}\operatorname{y} \left( t \right) = 4\operatorname{z} \left( t \right)\,\frac{\partial }{{\partial t}}\operatorname{z} \left( t \right) = -3\operatorname{y} \left( t \right)} \right)(∂t∂​y(t)=4z(t)∂t∂​z(t)=−3y(t))

%有条件的微分方程案例2
clear all
clc
syms y(t) z(t)
eqns = [diff(y,t) == 4*z, diff(z,t) == -3*y]
S = dsolve(eqns)
ySol(t) = S.y
zSol(t) = S.z


其实也可以直接用

%输出分配
[ySol(t),zSol(t)] = dsolve(eqns)

微分方程显示隐式解

∂∂xy⁡(x)=e−y⁡(x)+y⁡(x)\frac{\partial }{{\partial x}}\operatorname{y} \left( x \right) = {e^{ - \operatorname{y} \left( x \right)}} + \operatorname{y} \left( x \right)∂x∂​y(x)=e−y(x)+y(x)

%这里我们设置"Inplicit"为True
sol = dsolve(eqn,'Implicit',true)
%求微分方程的显式和隐式解
clear all
clc
syms y(x)
eqn = diff(y) == y+exp(-y)
sol = dsolve(eqn)
sol = dsolve(eqn,'Implicit',true)

未找到显式解决方案时查找隐式解决方案

∂∂ty⁡(x)=y⁡(x)+ay⁡(x)\frac{\partial }{{\partial t}}\operatorname{y} \left( x \right) = \operatorname{y} \left( x \right) + \frac{a}{{\sqrt {\operatorname{y} \left( x \right)} }}∂t∂​y(x)=y(x)+y(x)​a​
同时我们已知y(a)=1y(a)=1y(a)=1

%当未找到显式解决方案时查找隐式解决方案
clear all
clc
syms a y(t)
eqn = diff(y,t) == a/sqrt(y) + y
cond = y(a) == 1;
ySimplified = dsolve(eqn, cond)

若要返回包含参数a的所有可能值的解决方案,请通过将"lgnoreAnalyticConstraints"设置为false来关闭简化。

yNotSimplified = dsolve(eqn,cond,'IgnoreAnalyticConstraints',false)
%当未找到显式解决方案时查找隐式解决方案
clear all
clc
syms a y(x)
eqn = diff(y,x) == a/sqrt(y) + y
cond = y(a) == 1;
ySimplified = dsolve(eqn, cond)
yNotSimplified = dsolve(eqn,cond,'IgnoreAnalyticConstraints',false)

求微分方程级数解

dsolve返回包含未计算积分项的解
(x+1)∂∂xy⁡(x)−y⁡(x)+∂2∂x2y⁡(x)=0\left( {x + 1} \right)\frac{\partial }{{\partial x}}\operatorname{y} \left( x \right) - \operatorname{y} \left( x \right) + \frac{{{\partial ^2}}}{{\partial {x^2}}}\operatorname{y} \left( x \right) = 0(x+1)∂x∂​y(x)−y(x)+∂x2∂2​y(x)=0

%级数1
clear all
clc
syms y(x)
eqn = (x^2-1)^2*diff(y,2) + (x+1)*diff(y) - y == 0
S = dsolve(eqn)


但是若要返回x=-1附近微分方程的级数解,请将“ExpansionPoint"设置为 -1。dsolve 根据Puiseux级数展开返回两1个线性无关的解。


通过将‘ExpansionPoint’设置为InfInfInf,找到围绕扩展点∞\infty∞的其他级数解

为具有不同单边限制的函数指定初始条件(特解)

∂∂xy⁡(x)=e−1xx2\frac{\partial }{{\partial x}}\operatorname{y} \left( x \right) = \frac{{{e^{ - \frac{1}{x}}}}}{{{x^2}}}∂x∂​y(x)=x2e−x1​​

%添加条件
clear all
clc
syms y(x)
eqn = diff(y) == exp(-1/x)/x^2
ySol(x) = dsolve(eqn)


设初始条件y(0)=2y(0)=2y(0)=2,则须添加下列代码:

cond = y(0) == 2;
S = dsolve(eqn,cond)

练习题

可以直接敲代码试试
dydt+4y⁡(t)=e−t,y(0)=1\frac{{dy}}{{dt}} + 4\operatorname{y} \left( t \right) = {e^{ - t}},y(0)=1dtdy​+4y(t)=e−t,y(0)=1

2x2d2ydx2+3xdydx−y=02{x^2}\frac{{{d^2}y}}{{d{x^2}}} + 3x\frac{{dy}}{{dx}} - y = 02x2dx2d2y​+3xdxdy​−y=0

The Airy equation.
d2ydx2=xy⁡(x)\frac{{{d^2}y}}{{d{x^2}}} = x\operatorname{y} \left( x \right)dx2d2y​=xy(x)

【Matlab】求解微分方程{上}(通解和特解)相关推荐

  1. matlab求解微分方程6,牛津大学出版社数学应用软件作业6 用Matlab求解微分方程(组)的解析解和数值解:经典爱情语录大全...

    漳州理工职业学院-酒会礼仪 注:上机作业文件夹以自己的班级姓名学号命名,文件夹包括如下上机报告和Matlab程序. 上机报告模板如下: 佛山科学技术学院 上 机 报 告 课程名称 数学应用软件 上机项 ...

  2. matlab求解全微分函数,利用MATLAB求解微分方程的方法探索

    引言 科学问题和工程问题经常需要求取微分方程的解,MATLAB 的强大数值运算和符号运算能力,能够方便地进行各种解析运算,是方便实用.功能强大的数学软件之一. 1线性微分方程求解 1.1线性常微分方程 ...

  3. matlab解无解析解微分方程组,数学应用软件作业6 用Matlab求解微分方程(组)的解析解和数值解...

    <数学应用软件作业6 用Matlab求解微分方程(组)的解析解和数值解>由会员分享,可在线阅读,更多相关<数学应用软件作业6 用Matlab求解微分方程(组)的解析解和数值解(12页 ...

  4. matlab求解微分方程的解析解

    简 介:本文将研究微分方程的解析解算法,介绍在MATLAB 环境中如何用微分方程求解函数直接得出线性微分方程组的解析解,并对一阶简单的非线性微分方程的解析解求解进行探讨,从而得出结论,一般非线性微分方 ...

  5. Matlab求解微分方程数值解

    有三种方法求解微分方程数值解: 欧拉法 改进欧拉法 龙格库塔法 接下来用一个练习来对比这三种求解方法. 问题描述:用改进的Euler方法.MATLAB的ode45命令分别求下列初值问题的数值解,并画图 ...

  6. matlab求解微分方程解析解

    解析解 1求解微分方程方程组用函数"dsolve" dsolve('方程1','方程2'-'方程n','初始条件','自变量') clc,clear %% %求解du/dt=i+u ...

  7. 数学建模学习(28):又一夜没睡,爆肝整理所有类型matlab求解微分方程+案例实战,学不会来砍我

    文章目录 前言 dsolve语法 参数详解 求解一阶微分方程 求解二阶微分方程 求解有条件的微分方程 将输出分配给函数或变量 求微分方程的显式和隐式解 当未找到显式解决方案时查找隐式解决方案 求微分方 ...

  8. 用matlab求解微分方程

    1.dsolve 函数 dsolve函数用于求常微分方程组的精确解,也称为常微分方程的符号解.如果没有初始条件或边界条件,则求出通解:如果有,则求出特解. 1)函数格式 Y = dsolve('eq1 ...

  9. matlab偏导数方程,[转载]Matlab求解微分方程(2)——偏微分方程的求解

    从写完上一篇常微分方程的求解到现在已经很长时间了,这周也一直忙于报到的各种事宜,无暇坐下来写些东西,趁着这个周末,终于完成了这个姊妹篇. 对于偏微分方程的求解,Matlab提供了两种工具.第一种是pd ...

最新文章

  1. 百田公司:与神策数据携手,筑就爆款游戏背后的 4 个数据砝码
  2. [Leetcode][JAVA] Reorder List
  3. Python在信号与系统(1)——Hilbert兑换,Hilbert在国家统计局的包络检测应用,FIR_LPF滤波器设计,格鲁吉亚也迫使高FM(PM)调制...
  4. 一个简单的Makefile模板
  5. 【java】java原生序列化和Kryo序列化性能实例对比分析
  6. MySQL:浅析 Impossible WHERE noticed after reading const tables
  7. 【Go 框架开发】Zinx 框架开发笔记
  8. 《JavaScript设计模式》读书笔记模板方法模式
  9. java程序编写需注意的问题
  10. 网络蜘蛛Spider简介
  11. android系统存储空间不足怎么办,手机内存不足怎么办?手机内存不足如何清理?...
  12. 计算机windows7桌面是指什么,在windows7中,桌面指的是什么
  13. Mathorcup数学建模竞赛第五届-【妈妈杯】A题:城市相邻两交叉口信号配时优化(附一等奖获奖论文和matlab代码实现)
  14. 《自控力》读后感——意志力与认识自己
  15. Android之WebView的使用与简单浏览器
  16. 请说明数据库系统如何实现数据和程序之间的独立性。
  17. 苹果M1Operation not permitted解决办法
  18. C/C++定义全局变量/常量几种方法的区别
  19. SpringBoot——【thymeleaf】——为什么要使用thymeleaf
  20. 如何通过看美剧提高英语

热门文章

  1. Linux/UNIX系统编程手册gg
  2. python写的2048游戏,源代码,pygame
  3. android商品销售系统,化工产品销售管理系统
  4. 百度数据可视化Sugar BI 数据自动补全
  5. 分布式IO模块在工厂中的应用
  6. 股票实时行情接口编程难度大吗?
  7. 图像处理与机器视觉网络资源收罗——倾心大放送(转载)
  8. 蚂蚁算法python_Python编程实现蚁群算法详解
  9. element-ui 表格总计有多行的情况
  10. 电脑硬盘不小心格式化了文件怎么恢复,手把手教你变恢复高手