首页 文章

当未知数不能单独放置时,如何求解方程

提问于
浏览
0

任何人都可以告诉我如何解决一个无法与其他变量分离的未知方程式!

L_1=(D/f)*(((1- M**2)/(gamma*M**2))+((1+gamma)/(2*gamma))*math.log(((1+gamma)*M**2)/(2+(M**2*(gamma-1)))))

当我知道所有其他值时,我想找到M值!

1 回答

  • 0

    您基本上是在尝试找到此函数的根 . 一般而言,您可以写:

    f(M) - L_1 = 0

    有了这些知识,为您的等式创建一个函数:

    import numpy as np
    def myfunc(M, L_1, D, gamma, f):
        return (D/f)*(((1- M**2)/(gamma*M**2))+((1+gamma)/(2*gamma))*np.log(((1+gamma)*M**2)/(2+(M**2*(gamma-1))))) - L_1
    

    然后你可以使用scipy.optimize中的brentq function找到M的根 . 我在这里使用了一些样本值,L_1(= 1.0),D(= 0.5),gamma(= 0.05)和f(= 0.01)分别

    from scipy.optimization import brentq
    root = brentq(myfunc, a=0.01, b=1.0, args=(1.0, 0.5, 0.05, 0.01))
    print(root)
    

    尝试使用Python 3,应该工作 .

相关问题