我想求解变量s,L的不同值t。t是我的第二个方程的一部分,它的值会变化,我试图求解s,L的不同t值,然后将值附加到一个空列表,这样我就可以有不同的s,L值不同的t值。但我得到的只是一个空列表。请帮助我这个
from scipy.optimize import fsolve
import numpy as np
import math as m
q0=0.0011
thetas,thetai,thetar=0.43,0.1,0.05
ks=0.0022#m/hr
psib=-0.15# m
lamda=1
eta=2+3*lamda
ki=8.676*10**(-8)
si=0.13157
t=np.array([3,18,24])
S=0.02/24
delta=-0.1001
b=[]
n=[]
for i in range(3):
def equations(p):
s, L = p
f1=(ks*s**(3+(2/lamda))-(psib/(1-eta))*(((ki*si**(-1/lamda))-(ks*s**(3+(1/lamda))))/L)-q0)
f2=(L*(s*(thetas-thetar))+S*t[i]*0.5*(m.exp(-delta*psib*(-1+s**(-1/lamda))))-(q0-ki)*t[i])
return(f1,f2)
s,L=fsolve(equations,([0.19,0.001]))
b.append(s)
n.append(L)
print(b)
print(n)
1条答案
按热度按时间pcrecxhr1#
有几种方法可以用可调参数来评估这个系统。你可以在求解之前插入每个值,这样如果
fsolve
没有给予你想要的结果,它就可以兼容其他的求解器,或者你可以在fsolve
中使用args
参数。如果我设置了一个虚拟系统,试图找到x,y,z
来进行一些初始猜测,并单步执行一个参数,我可以将结果追加到一个预分配的解决方案数组中其给出了