gpt4 book ai didi

math - 可能的正弦波最小二乘曲线拟合(使用 GSL)?

转载 作者:行者123 更新时间:2023-12-02 01:52:52 26 4
gpt4 key购买 nike

是否可以使用 GSL 或类似库来拟合 A*sin(B*t+C) 函数?

我想获得 4096 个样本(8 位)中存在的正弦波的 A 和 C 参数,并且可以提供 B 的良好近似值。

我认为 GSL 非线性多重拟合应该是可能的,但我不了解所有雅可比矩阵的数学背景......

最佳答案

是的,

你可能已经读过这个:http://www.gnu.org/software/gsl/manual/html_node/Overview-of-Nonlinear-Least_002dSquares-Fitting.html#Overview-of-Nonlinear-Least_002dSquares-Fitting

你需要的是提供两个功能

目标:

`

int sine_f (const gsl_vector * x, void *data, 
gsl_vector * f){
...
for(...){
...
double Yi = A * sin(B*t +C);
gsl_vector_set (f, i, (Yi - y[i])/sigma[i]);
}
...
}

然后是目标关于参数的导数
int
sine_df (const gsl_vector * x, void *data,
gsl_matrix * J)
//the derivatives of Asin(Bt +C) wrt A,B,C for each t

这是直接从
http://www.gnu.org/software/gsl/manual/html_node/Example-programs-for-Nonlinear-Least_002dSquares-Fitting.html#Example-programs-for-Nonlinear-Least_002dSquares-Fitting

所以雅可比只是一个 3xN 矩阵,其中 N 是数据点的数量
例如 J(0,3) = sin(B*t_3 + C)

如果 A,B,C 对应于 x[0],x[1],x[2]

而 J(1,5) = A*t_5*cos(B*t_5 + C)
这是导数wrt。乙

关于math - 可能的正弦波最小二乘曲线拟合(使用 GSL)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com