matlab怎么对微分方程求解
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/26 12:42:45
matlab怎么对微分方程求解
知道是用ode45,方程是my ̈+cy ̇+ky=f
知道是用ode45,方程是my ̈+cy ̇+ky=f
![matlab怎么对微分方程求解](/uploads/image/z/19542878-62-8.jpg?t=matlab%E6%80%8E%E4%B9%88%E5%AF%B9%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E6%B1%82%E8%A7%A3)
这个不用,
如果f是数,直接
dsolve('m*D2y+c*Dy+k*y=f') 就可以了
如果f是f(t)
需要编写程序用ode45
首先编写m-file
%%%%%%%%%%%%%function dotx=myfun(t,y)
dotx=[y(2);1/m*(-c*y(2)-k*y(1)+f(t))];%f(t)要写出具体形式
%%%%%%%%%%%%%%%M-file 以上要单存一个文件在工作路径下%%%%%%%%%%%%%
在command 窗口
[t,y]=ode45('myfun',[t_0,t_final],[y_0,y'_0])%[t_0,t_final]和[y_0,y'_0]分别问求解区间和初值
再用plot画图
如果f是数,直接
dsolve('m*D2y+c*Dy+k*y=f') 就可以了
如果f是f(t)
需要编写程序用ode45
首先编写m-file
%%%%%%%%%%%%%function dotx=myfun(t,y)
dotx=[y(2);1/m*(-c*y(2)-k*y(1)+f(t))];%f(t)要写出具体形式
%%%%%%%%%%%%%%%M-file 以上要单存一个文件在工作路径下%%%%%%%%%%%%%
在command 窗口
[t,y]=ode45('myfun',[t_0,t_final],[y_0,y'_0])%[t_0,t_final]和[y_0,y'_0]分别问求解区间和初值
再用plot画图