解耦合微分方程的方法,出错。求大神指导。
mathematica吧
全部回复
仅看楼主
level 2
w = 200
c1 = 1.5*10^-6
c2 = 0.5*10^-6
va = 40
L = 0.002
g[x_] = I*w*c1[1 - va/Absv[x]*exp[I*l[x]]]
a[x_] = ArcTan[Imv[x]/Rev[x]]
l[x_] = ArcTan[Img[x]/Reg[x]]
s = DSolve[{i'[x] = -I*w*c1*v[x] + I*w*c2*va*exp[I*(a[x] + l[x])],
v'[x] = -I*w*L*i[x], v[0] == 0, v'[0] == 0}, {v[x], i[x]}, {x, 0,
3}]
plot[v[x] , {x, 0, 3}]
2021年11月17日 08点11分 1
吧务
level 10
DSolve所要求的方程列表中,第一个方程中的=应为==
2021年11月17日 13点11分 2
麻烦大神看看楼下!
2021年11月18日 06点11分
level 2
还是有错误报告。DSolve::bvnul: For some branches of the general solution, the given boundary conditions lead to an empty solution.
但是边界条件,给定的只有这些,请问还缺少哪些边界条件。。。
2021年11月18日 06点11分 4
吧务
level 10
你先把别的改了我们再谈。
比如Rev[t]应为Re[v[t]]
比如exp应为Exp
2021年11月18日 08点11分 5
又修改了一下,提示下面的错误。。。麻烦可以指导一下吗!谢谢!!!
2021年11月18日 09点11分
level 2
2021年11月18日 09点11分 6
g和l循环定义,计算将无限递归
2021年11月18日 11点11分
@asdasd1dsadsa 最近修改了一下代码,在最新的一楼。提示错误还是出现无限递归,这样的错误在函数中应该如何避免或者修正。
2021年11月23日 07点11分
level 2
ClearAll["Global`*"]
w = 200
c1 = 1.5*10^-6
c2 = 0.5*10^-6
va = 40
L = 0.002
g[t_] = I*w*c1 (1 - va/Abs[v[t]]*Exp[I*l[t]])
a[t_] = ArcTan[Im[v[t]]/Re[v[t]]]
l[t_] = ArcTan[Im[g[t]]/Re[g[t]]]
eqns = {i'[t] + I*w*c1*v[t] - I*w*c2*va*Exp[I*(a[t] + l[t])] == 0,
v'[t] + I*w*L*i[t] == 0, v[0] == 0, v[3] == 6.5}
NDSolve[eqns, {v[t], i[t]}, {t, 0, 3}]
Plot[v[t], {t, 0, 3}]
2021年11月18日 09点11分 7
level 2
ClearAll["Global`*"]
w = 200
c1 = 1.5*10^-6
c2 = 0.5*10^-6
va = 40
L = 0.002
g[t_] = I*w*c1 (1 - va/Abs[v[t]]*Exp[I*l[t]])
a[t_] = ArcTan[Im[v[t]]/Re[v[t]]]
l[t_] = ArcTan[Im[g[t]]/Re[g[t]]]
solution =
NDSolve[{i'[t] == -I*w*c1*v[t] + I*w*c2*va*Exp[I*(a[t] + l[t])],
v'[t] == -I*w*L*i[t], v[0] == 0, v[3] == 6.5}, {v, t}, {t, 0, 3}]
Plot[v[t], {t, 0, 3}]
2021年11月23日 07点11分 8
吧务
level 15
1. 把你中有我我中有你的两个式子拿去定义函数当然会无限递归。你应该解方程。
2. 然而问题本身就不对,使用Solve或FindRoot立刻可以发现根本不存在满足v[t]==6.5的g[t]。
3. Arg是内置的,不需要用这么扭曲的方法算辐角。
4. 就算要用ArcTan算辐角,你这个方法也是错的;你需要双参数的ArcTan语法,具体请仔细看ArcTan的帮助。
总之先把上面的问题解决了再说。
2021年12月04日 03点12分 9
1