绘图网站:
www.desmos.com
时间:
t<1 min 极度相似
1<t<5 min 较高相似
5<t<10 min 中等相似
t>10 min 基本不相似
完全没感觉的时候,先用绘图网站,画一下得到各比较满意的:a=4,b=0.6,c=5
y(0)=0.01
y(1)=0.02
y(2)=0.04
y(4)=0.12
y(5)=0.2
y(10)=0.83
y(15)=0.99
函数f(x) = 1 / (1 + ae^(-b(x - c))),逼近三个点,(1,0.02),(5,0.2),(10,0.83),求解参数a,b,c分别为多少
向量距离
dis< 0.059 极度相似
0.059<dis<0.073 较高相似
0.073<dis<0.09 中等相似
dis>0.09 不相似
函数f(x) = 1 / (1 + ae^(-b(x - c))),逼近三个点,(0.059,0.02),(0.07,0.2),(0.09,0.83),求解参数a,b,c分别为多少
import numpy as np
from scipy.optimize import curve_fit
# 定义逻辑斯蒂函数
def logistic(x, a, b, c):
return 1 / (1 + a * np.exp(-b * (x - c)))
# 已知数据点
x_data = np.array([0.059, 0.073, 0.09])
y_data = np.array([0.02, 0.2, 0.83])
# 初始猜测值(根据数据趋势设置)
initial_guess = [1, -10, 0.1] # a>0, b为负数(因函数递减), c在x数据范围内
# 拟合参数
params, _ = curve_fit(logistic, x_data, y_data, p0=initial_guess, maxfev=10000)
a, b, c = params
# 输出结果
print(f"拟合参数:")
print(f"a = {a:.4f}")
print(f"b = {b:.4f}")
print(f"c = {c:.4f}")
# 验证拟合效果
print("\n验证拟合值:")
for x, y in zip(x_data, y_data):
y_pred = logistic(x, a, b, c)
print(f"x={x}, 实际y={y}, 预测y={y_pred:.4f}")
拟合参数:
a = 0.4231
b = 174.9687
c = 0.0858
验证拟合值:
x=0.059, 实际y=0.02, 预测y=0.0211
x=0.073, 实际y=0.2, 预测y=0.1997
x=0.09, 实际y=0.83, 预测y=0.8301
第2个点要根据业务适当的调整一点,才能得到更好的拟合.比如第二个点本来是(0.7,0.2)调整到(0.73,0.2)
1万+

被折叠的 条评论
为什么被折叠?



