首页 文章

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

提问于
浏览
1

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

以下图片说明了所有内容:
enter image description here

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

2 回答

  • 0

    使用 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;
    

    例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;
    

  • 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)
    

相关问题