代码如下
kp = 4000; vm = 311; w = 314*Pi; k = 1; ki = 1;
DSolve[{y''[x] + (kp*vm*Cos[w*x - y[x]] -2/3 kp*k*vm*Cos[w*x] Cos[y[x]]) y'[x] -ki*vm*Sin[w*x - y[x]] - 2/3 ki*k*vm*Cos[w*x] Sin[y[x]] -kp*vm*w*Cos[w*x-y[x]] == 0, y[0] == 0, y'[0] == 100*Pi}, y[x], x];
MMA计算完了没有给结果
在SE社区得到些改进答案后,为了简化问题,我把表达式改成了:
y''[x] + kp*vm*Cos[w*x - y[x]]* y'[x] - ki*vm*Sin[w*x - y[x]] -
kp*vm*w*Cos[w*x - y[x]] == 0
显然解为y[x]=wx,但是MMA给的结果是:
kp = 2;
vm = 311;
w = 314*Pi;
k = 0;
ki = 100;
nsol = NDSolveValue[{y''[x] + kp*vm*Cos[w*x - y[x]]* y'[x] -
ki*vm*Sin[w*x - y[x]] - kp*vm*w*Cos[w*x - y[x]] == 0,
y[0] == 0, y'[0] == 100*Pi}, y, {x, 0, 0.1},
MaxSteps -> Infinity]; // AbsoluteTiming
Plot[Mod[nsol[x], 2 Pi], {x, 0, 0.1}]

这明显是个错误的答案,为什么?
我发现了我的错误在于设置错了W的值,修改后为 w=100Pi
结果如

现在对了
接下来要解原始方程了、