如何解决fsolve 数组 Python 的问题
我的代码有问题。我想用 fsolve 解决一个数组,但我不知道该怎么做。我可以只为一维数组解决迭代。有人知道怎么做吗?
我的代码是:
import CoolProp.CoolProp as CP
import math
import numpy
import matplotlib.pyplot as plt
from scipy.optimize import fsolve
fluid='R134A'
d=0.77
m=9.22E-4
Ti=33.16
Ts=-26.8
dT=0.01
Vmono=1.685
dT=0.01
Ti=33.16
Ts=-26.8
A=(d/1000)**2*math.pi/4
T = []
for i in numpy.arange(Ti,Ts,-dT):
T.append(float(i))
hent=CP.PropsSI('H','T',((Ti)+273.15),'Q',(fluid))
hL=CP.PropsSI("H","T",numpy.array(T)+273.15,"Q",(fluid))
hG=CP.PropsSI("H",1,(fluid))
rhoL=CP.PropsSI("D",(fluid))
rhoG=CP.PropsSI("D",(fluid))
viscL=CP.PropsSI("V",(fluid))
viscG=CP.PropsSI("V",(fluid))
volL=1/rhoL
volG=1/rhoG
def f(x):
term1=((1-x)*hL+x*hG)
term2=(0.5*(m/A)**2)*((x*volG/((1+((1-x)/x)**0.74*(rhoG/rhoL)**0.65*(viscL/viscG)**0.13)**-1))**2+((1-x)*volL/(1-((1+((1-x)/x)**0.74*(rhoG/rhoL)**0.65*(viscL/viscG)**0.13)**-1)))**2)
term3=(hent+0.5*Vmono**2)
return (term1+term2-term3)
xT= fsolve(f,0.00001)
我的输出是:
File "C:\Users\jmmpc\anaconda3\lib\site-packages\scipy\optimize\minpack.py",line 237,in _root_hybr
retval = _minpack._hybrd(func,x0,args,xtol,maxfev,ValueError: The array returned by a function changed size between calls
我没有遇到这种问题,所以请看一下。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。