拟合已知公式的函数求参数的代码
时间: 2023-08-30 19:06:22 浏览: 110
函数拟合的matlab代码
4星 · 用户满意度95%
以下是一个使用最小二乘法拟合二次函数 y = ax^2 + bx + c 的Python代码示例:
```python
import numpy as np
from scipy.optimize import leastsq
# 定义二次函数模型
def quadratic_func(params, x):
a, b, c = params
return a * x ** 2 + b * x + c
# 定义误差函数,即拟合数据点与模型之间的误差平方和
def residual(params, x, y):
return y - quadratic_func(params, x)
# 生成模拟数据
x = np.linspace(-10, 10, 21)
y = 2 * x ** 2 + 3 * x + 1 + np.random.normal(0, 1, x.shape)
# 初始参数值
params0 = [1, 1, 1]
# 使用最小二乘法拟合二次函数模型
result = leastsq(residual, params0, args=(x, y))
# 输出拟合结果
print("拟合参数:", result[0])
```
在这个示例中,我们首先定义了二次函数模型 quadratic_func,它接受一个长度为3的参数列表和一个自变量x,返回模型的函数值。然后我们定义了误差函数 residual,它接受一个长度为3的参数列表、自变量x和因变量y,返回拟合数据点与模型之间的误差。接着我们生成了21个模拟数据点,带有一定的高斯噪声。最后,我们使用最小二乘法函数 leastsq 来拟合二次函数模型,得到拟合参数。
需要注意的是,这个示例仅仅是为了演示如何使用最小二乘法拟合二次函数模型,实际应用中可能需要根据具体情况进行调整。
阅读全文