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...

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) %求...

相关常数都没给,这里随便设置一些数值: 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))

参考代码: m=10600; k=31986497; c=8.9E4;dy = @(t,y)[y(2); (k*y(1)-c*y(2)/abs(y(2))*y(2)^2)/m];ode45(dy,[0 5],[0 3.66]) 其中,蓝线为x,绿线为x'。

例 y’= - y+x+1,y(0) = 1 首先建立M-文件 (weif.m) function f = weif(x,y) f=-y+x+1; 求解:[x,y]=ode45('weif',[0,1],1) 再如: 建立文件: function dy = rigid(t,y) dy = zeros(3,1); % a column vector dy(1) = y(2) * y(3); dy(2) = -...

用matlab的dsolve函数计算该二阶微分方程的解析值是有一定的难度。只能用数值分析的方法来求解其数值解。当然求其数值解,必须还得已知a、θ的具体数值。该问题可以用matlab的ode45函数求得。求解方法如下: 1、建立微分方程的自定义函数,odefun...

令x1 = x, x2 = x', x3=y, x4=y' 得 x1' = x2; x2' = -x2*sqrt(x2^2+x4^2); x3' = x4; x4' = -x4*sqrt(x2^2+x4^2) - 9.8; 程序为 f = @(t, x)[x(2); -x(2)*sqrt(x(2).^2+x(4).^2); x(4); -x(4)*sqrt(x(2).^2+x(4).^2)-9.8];[t, y ]= ode45(f, [0...

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