登录论坛

查看完整版本 : 身在国外,十万火急!


未注册
2008-04-13, 15:23
我们engineering的要求做一个project,在此过程中不需要用到电脑的部分我已经做完,但我根本不知道如何用matlab去解一些微分方程,我给两个题,请大家给予方法或解答,这样我就可以试着解其它的ODE了
用ODE45 求解2个常微分方程。
我已经将两个方程化为systematic forms,请大家帮忙写出相应matlab运算符以求解答。
1>,[变量名称:常量c,Vw分别是风速系数与固定风速,变量x是水平位移,变量t时间,常量v0,A,m分别是初始速度,初始抛射角,质量。我要求x(t),用使用上述字母的式子表达]

原方程为m*(d^2x/dt^2)=-c(Vw+dx/dt)^2,dx/dt(t=0)=v0*cosA
x(0)=0
令x1=x,x2=dx1/dt,则systematic form为:
dx2/dt=-(c/m)*(Vw+x2)^2,x1(0)=0, x2(0)=vocosA


2>,y(t)是位移函数,g是重力加速度,沿用上述常量,二阶方程为:d^y/dt^2=-g, dy/dt(t=0)=v0*sinA ,y(0)=0
令y=y1,y2=dy1/dt,则systematic form为:
dy2/dt=-g,y1(0)=0,y2(0)=vo*sinA
答案要用含字母参数的式子表示

hhwuai007
2008-04-14, 08:44
原方程为m*(d^2x/dt^2)=-c(Vw+dx/dt)^2,dx/dt(t=0)=v0*cosA
x(0)=0
令x1=x,x2=dx1/dt,则systematic form为:
dx2/dt=-(c/m)*(Vw+x2)^2,x1(0)=0, x2(0)=vocosA


2>,y(t)是位移函数,g是重力加速度,沿用上述常量,二阶方程为:d^y/dt^2=-g, dy/dt(t=0)=v0*sinA ,y(0)=0 令y=y1,y2=dy1/dt,则systematic form为:
dy2/dt=-g,y1(0)=0,y2(0)=vo*sinA
------------------------------------------------------
options=optimset('display','off');
[t,x]=ode45('f1',[t0,t1],[0,v0*cosA ],options,c,Vw,v0,A,m) %t0是初始时间,t1是终止时间。
--------------------------------------------
function doty=f1(t,x,flag,c,Vw,v0,A,m)
doty=zeros(2,1);
doty=[x(2);-c.*(Vw+x(2)).^2./m];

第二个方程解法类似,你有什么疑问可以看看help