|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
方程是这样的:dx/dt=cosa dy/dt=sina da/dt=m dm/dt=-10sina
边界条件是: t=0时,x=0,y=0,m=0
t=1时,y=0,m=0
本人运行的程序如下:
Clear[pi,gm,m,c]
pi = N[\[Pi]];
pe=10;
gm = 0.53 ;
de[y3_,y4_]:={y1'[t]\[Equal]Cos[y3[t]],y2'[t]\[Equal]Sin[y3[t]],
y3'[t]\[Equal]y4[t],y4'[t]\[Equal]-pe*Sin[y3[t]]}
leftBC[m_]:={y1[0]\[Equal]0,y2[0]\[Equal]0,y3[0]\[Equal]m,y4[0]\[Equal]0}
soln:=NDSolve[Flatten[Append[de[y3,y4],leftBC[m]]],{y1,y2,y3,y4},{t,0,1},
MaxSteps\[Rule]2000]
endpt[m_]:={y1[t],y2[t],y3[t],y4[t]}/.First[
NDSolve[Flatten[Append[de[y3,y4],leftBC[m]]],{y1[t],y2[t],y3[t],
y4[t]},{t,0,1},MaxSteps\[Rule]2000]]/.t\[Rule]1;
Clear[m]
rts:=FindRoot[{endpt[m][[2]]\[Equal]0},{m,{gm,0.99gm}},AccuracyGoal\[Rule]6,
MaxIterations\[Rule]1000]
endpt[m/.rts]
m=m/.rts
{yy1[t_],yy2[t_],yy3[t_],yy4[t_]}={y1[t],y2[t],y3[t],y4[t]}/.First[soln];
ParametricPlot[Evaluate[{yy1[t],yy2[t]}/.soln/.rts],{t,0,1},
PlotRange\[Rule]All,AspectRatio\[Rule]Automatic,PlotPoints\[Rule]100]
但是老是弹出错误提示:NDSolve::ndinnt: Initial condition m is not a number or a rectangular array of numbers
实在不清楚哪里有问题,所以来求助各位高手,希望不吝赐教
谢谢了
|
|