在求解复杂方程时得到奇怪的结果
Maple strange results while solving for complex equation
我试图让 Maple 求解一个复杂的方程,但它产生了一个不正确的结果。
以下图片说明了一切:
在 (3) 处,我希望得到接近 1 的值(如 (2) 所示),但它给了我一些没有任何意义的值。是不是|| (表示复数模)运算符在solve()函数中还有另外一个意义?
这里比较合适的函数是fsolve
。
示例 1
restart:
G:=(w,L)->(5+I*L*2*Pi*w)/(150+I*L*2*Pi*w);
evalf(5*abs(G(10,1)));
fsolve(5*abs(G(10,L))=%,L=0..10)
示例 2
如上,您需要指定解可能所在的区间L=0..1
。
G:=(f,L)->(256.4+I*L*2*Pi*f)/(256.4+9845+I*L*2*Pi*f);
evalf(5*abs(G(20000,0.03602197444)));
fsolve(5*abs(G(20000,L))=%,L=0..1);
如果您在指定区间时遇到困难,那么您应该先绘制它,它会给您一个想法?
plot(5*abs(G(20000,L)),L=0..1)
用assuming
命令限制solve
命令中L
的值。
示例 1:
G:= (w,L) -> (50+I*L*2*Pi*w)/(150+I*L*2*Pi*w);
result := evalf(5*abs(G(10,1)));
solve({5*abs(G(10,L)) = result},L) assuming L::real;
{L = 1.000000000}, {L = -1.000000000}
示例 2:
G:=(f,L) -> (256.4+I*2*Pi*L*f)/(256.4+9845+I*2*Pi*L*f);
result := 5*abs(G(20000,0.03602197444));
solve({5*abs(G(20000,L)) = result},L) assuming L::real;
{L = 0.03602197445}, {L = -0.03602197445}
我试图让 Maple 求解一个复杂的方程,但它产生了一个不正确的结果。
以下图片说明了一切:
这里比较合适的函数是fsolve
。
示例 1
restart:
G:=(w,L)->(5+I*L*2*Pi*w)/(150+I*L*2*Pi*w);
evalf(5*abs(G(10,1)));
fsolve(5*abs(G(10,L))=%,L=0..10)
示例 2
如上,您需要指定解可能所在的区间L=0..1
。
G:=(f,L)->(256.4+I*L*2*Pi*f)/(256.4+9845+I*L*2*Pi*f);
evalf(5*abs(G(20000,0.03602197444)));
fsolve(5*abs(G(20000,L))=%,L=0..1);
如果您在指定区间时遇到困难,那么您应该先绘制它,它会给您一个想法?
plot(5*abs(G(20000,L)),L=0..1)
用assuming
命令限制solve
命令中L
的值。
示例 1:
G:= (w,L) -> (50+I*L*2*Pi*w)/(150+I*L*2*Pi*w);
result := evalf(5*abs(G(10,1)));
solve({5*abs(G(10,L)) = result},L) assuming L::real;
{L = 1.000000000}, {L = -1.000000000}
示例 2:
G:=(f,L) -> (256.4+I*2*Pi*L*f)/(256.4+9845+I*2*Pi*L*f);
result := 5*abs(G(20000,0.03602197444));
solve({5*abs(G(20000,L)) = result},L) assuming L::real;
{L = 0.03602197445}, {L = -0.03602197445}