任何人都可以告诉我如何解决一个无法与其他变量分离的未知方程式!
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值!
您基本上是在尝试找到此函数的根 . 一般而言,您可以写:
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,应该工作 .
1 回答
您基本上是在尝试找到此函数的根 . 一般而言,您可以写:
f(M) - L_1 = 0
有了这些知识,为您的等式创建一个函数:
然后你可以使用scipy.optimize中的brentq function找到M的根 . 我在这里使用了一些样本值,L_1(= 1.0),D(= 0.5),gamma(= 0.05)和f(= 0.01)分别
尝试使用Python 3,应该工作 .