微分方程matlab求解

解析解

注意:
Dy' >Dy,y' D2y默认变量名“t’。自变量名可以省略

输入:

y=dsolve(Dy=l+y^2)yl=dsolve('Dy=1+y^2,y(0)=1',x'

输出:

y= tan(t+C1)( 解 )
( 特解 )yl= tan(x+1/4*pi)

输入:

y=dsolve('D2y-2*Dy-3*y=0',x'y=dsolve('D2y-2*Dy-3*y=0',(0)=1,Dy(0)=0','x'
结果
y = C1*exp(-x)+C2*exp(3*x)y =3/4*exp(-x)+1/4*exp(3*x)

x=dsolve('D2x-(1-X^2)*Dx+x=0'X(0)=3,Dx(0)=0'
x =[ empty sym ]
无解析表达式!

x=dsolve('(Dx)^2+x2=1,'x(0)=0'
-sin(t)X二
sin(t)

输入
x,y]=dsolve(Dx=3*x+4*y,Dy=-4*x+3*y',x(0)=0,y(0)=1
输出:

exp(3*t)*sin(4*t)¥Nexp(3*t)*cos(4*t)V=

数值解

[t,y] = ode23(' Fun', [t0, tfl, y)
其中( 1) Fun表示由微分方程(组)写成的m文件名( 2)y0表示为函数的初值

例1
y'= - y+x+1,y(0) = 1标准形式:y'=fx ,y)1) 首先建立M-文件( weif.m function f = weif(x,yf-y+x+1;
2) 求解: [x,y]=ode23(“weif’,[0,1],1)3) 作图形: plot(x,y,r);4) 与精确解进行比较
hold on
ezplot(x+exp(-x)’,[0,1])

我的总结


使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组。yo) = f(t,y,y,y(0), V(0),...,
选择一组状态变量
x=Vx=j...,x =y(-D)
x=x;
t=X
xn = f(t,X,x,....xn

1、建立M文件函数
function xdot = fun(tx)
xdot = x;(t); x;(t); ...; ft,x,(t),x(t),....x,(t))];

2、数值计算 (执行以下命令[t, x]=ode23(“fun', [to, tr][x;(0), x,(0), ..., x,(0)])

多数微分方程是没有解析解的,即使一些看上去形式非常简单的微分方程,如,这个微分方程不能用初等函数及其积分来表达它的解!从实际问题中抽象出来的微分方程,通常主要依靠数值解法来解决!求数值解的方法有欧拉法、龙格-库塔法等。基于龙格-库塔法,matlab求微分方程数值解函数:[x, y]=ode23(‘函数’,‘求解区间’,‘初始值’)x: 自变量值,y: 函数值,(采用2,3阶龙格-库塔法)其它求解命令:ode45,ode15s,ode23s等

dsolve(‘方程1’,‘方程2’,…,‘方程n’,‘初始条件’,‘自变量’)

初始条件省缺时,是求微分方程的通解。

Dy代表y的导数,D2y代表y的二阶导数, D3y代表y的三阶导数……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值