求解复杂方程时,Maple奇怪的结果

时间:2017-02-03 04:14:27

标签: maple

我试图让Maple解决一个复杂的等式,但它会产生不正确的结果。

以下图片说明了一切: enter image description here

enter image description here 在(3)我希望得到接近1的东西(如(2)所示),但它给了我一些没有任何意义的东西。这是|| (表示复数模数)运算符在solve()函数中有另一个意义吗?

2 个答案:

答案 0 :(得分:1)

这里更合适的功能是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)

答案 1 :(得分:0)

使用L命令限制solve命令中assuming的值。

示例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}