欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 数模·微分方程

数模·微分方程

2024/10/24 19:19:18 来源:https://blog.csdn.net/2301_80132162/article/details/140589132  浏览:    关键词:数模·微分方程

微分方程

核心概念

含导数的方程或方程组
通解和特解的区别:有初值条件的通解称作特解
解析解和数值解的:解析解是通过代数或解析方法得到的精确解。它通常以闭式表达式或公式的形式存在;数值解是通过数值方法(如迭代算法)得到的近似解

matlab中求解析解

定义syms y(x) 符号变量,
注意符号变量顾名思义就是一个符号,不代表任何一个变量或者向量
使用eq表示微分方程,注意等号==
选择性提供初值

定义

一阶微分方程

%% 微分方程1
clear;clc;
syms y(x)%定义符号常量
%y-y'=2x
eq=y-diff(y,x)==2*x;%等号
dsolve(eq)
dsolve(eq,y(0)==3)

二阶微分方程

等价的写法diff(dy,x)==diff(diff(y,x))
不支持diff(y,x)(0)的初值形式

%% 微分方程2 二阶处理
clear;clc;
syms y(x)
%y''+4y'+29y=0
dy=diff(y,x);
eq=diff(dy,x)+4*diff(y,x)+29*y==0;
dsolve(eq)
dsolve(eq,[y(0)==0 dy(0)==1])%不支持diff(y,x)(0)

微分方程组–参数方程

使用列表作为参数

%% 微分方程3 多个微分方程组x(t),y(t)
clear;clc;
syms x(t) y(t)%不能有逗号
%x'(t)=y;y'(t)=-x;
eq1=diff(x,t)==y;
eq2=diff(y,t)==-x;
[xSol(t) ySol(t)]=dsolve([eq1,eq2],[x(0)==1 y(0)==1])

matlab数值解

一般使用ode45或ode15这个函数求解
注意传入参数不再是符号变量而是函数
在这里插入图片描述

matlab匿名函数

ode45函数

不支持高阶微分方程
利用线代解微分方程组的方法,换元构造新的微分方程组降低阶数

将换元想象为列向量(分块矩阵)

ode45的返回值是自变量x和多个因变量组成的解矩阵

clear;clc;
odefun3=@(t,Y)[-2*Y(1)-5*(Y(2))+sin(t);Y(1)];
[x,y]=ode45(odefun3,[-2,2],[1;1]);%列向量形式
plot(x,y);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com