我有一些来自风洞的实验数据,我试图用这些数据拟合一条曲线,并从中确定x轴截距,但似乎无法正确拟合。
我的实验数据图:
的数据
理想的情节:
的
我的x和y的数组如下:
x = [0.05068111 0.04818916 0.04882654 0.05214874 0.05944521 0.07145887 0.0815519 0.09417571 0.11834393]
y = [0.0963202 0.22971568 0.36601308 0.50110841 0.63746987 0.77172614 0.85511004 0.90326404 0.94890827]
x = CD[3:12]
y = CL[3:12]
print(x)
print(y)
def fit_func(x, Cdmin, k1, Clmind):
return ((x-Cdmin)/k1)**0.5 + Clmind
params = curve_fit(fit_func, x, y)
[Cdmin, k1, Clmind] = params[0]
print([Cdmin, k1, Clmind])
字符串
1条答案
按热度按时间u7up0aaq1#
主要问题是你试图拟合一个非函数,因为这里的一个x值有两个y值。但是如果你颠倒关系并将
Cd
计算为Cl
的函数,它就可以工作。此外,当包含所有数据点时,拟合不是很好。我怀疑最后的一些非理想条件。当省略最后两个点时,你会得到更好的拟合。
字符串
结果图:
的数据
但是我得到的是
k1=0.1
,而不是你想要的0.7
到0.85
,那么曲率就会比你的数据点强得多。