jcst.net
当前位置:首页 >> 在mAtlAB中用隐式梯形积分法对二阶微分方程(例如... >>

在mAtlAB中用隐式梯形积分法对二阶微分方程(例如...

>> clear >> syms a b c d e; >> y=dsolve('a*D2y+b*Dy+c*y=0','y(0)=d','Dy(0)=e') y = (2*a*e + b*d + d*(b^2 - 4*a*c)^(1/2))/(2*exp((t*(b - (b^2 - 4*a*c)^(1/2)))/(2*a))*(b^2 - 4*a*c)^(1/2)) - (2*a*e + b*d - d*(b^2 - 4*a*c)^(1/2))/(...

这个我也不是很懂,仍然是在学习中。 如果是用前时间状态推导后一个时间步长的状态,可以找一下显示欧拉法和隐式欧拉法,我目前学的就是这些,只学懂一些皮毛,仍然在头疼中。

1.新建一个m文件,编写隐式Euler法的程序: function [x,y]=Implicit_Euler(odefun,xspan,y0,h,varargin) % 隐式Euler公式求解常微分方程 % 输入参数: % ---odefun:微分方程的函数描述 % ---xspan:求解区间[x0,xn] % ---y0:初始条件 % ---h...

这种复杂的微分方程用dsolve能求出来的可能性微乎其微。其实这个应该也不能算隐式微分方程吧?稍加整理,完全可以写成普通的二阶常微分方程的形式。 可以考虑用数值法求解,但需要提供所有的常数以及初值。

1、对于比较简单的二阶微分方程组,可以用dsolve()函数求得其特解,例如: syms y(t) z(t)%定义变量 Dy=diff(y);Dz=diff(z);%对y、z求一阶导数 s=dsolve(Dy==3*y+2*z-(2*t^2+1)*exp(2*t),Dz==4*y+z+(t^2+2*t-4)*exp(2*t),y(0)==1,z(0)==1) %求...

你没给初值,我假设一个[1 -3] clc f=inline('[y(2);(1-x)/x*y(2)+3/x*y(1)]','x','y');[x y]=ode45(f,[eps 10],[1 -3]);z=x.^2.*y(:,1).^2;plot(x,y(:,1),x,z)xlabel('x')legend('y','{x^2}{y^2}') i无穷大; iii无穷大

相关常数都没给,这里随便设置一些数值: m=1;c=2;k=3;y0=4;yp0=5;tf=10;dy=@(t,y)[y(2);-(c*y(2)+k*y(1))/m];[t,y]=ode45(dy,[0 tf],[y0 yp0]);plot(t,y(:,1))

1、对于解析值,你可以用dsolve()函数求解。如求微分方程x*y''+x﹡(y')^2-y'=0的解析解 >> syms y(x) >>Dy = diff(y);D2y = diff(y, 2); >>dsolve(x*D2y+x*(Dy)^2-Dy==0,'x') 运行结果 2、对于数值解,你可以查看二阶常微分方程这个例子,http...

在matlab的书中讲四阶龙格库塔法的地方有例子程序,只要稍微改改就好了

dsolve('D2y=x','x') ans = x^3/6 + C2*x + C3 D2y的意思就是y的二阶微分项 不明白你的问题什么意思,要输入的话直接定义符号变量输入... syms D2x x D2x=x; 如果是矩阵,那就用矩阵表示...

网站首页 | 网站地图
All rights reserved Powered by www.jcst.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com