现在有3个自变量(x1 x2 x3),5个待拟合参数(a1 a2 a3 a4 a5), 1个因变量(y) 怎样实现拟合呢?

2025-01-07 05:04:04
推荐回答(3个)
回答1:

x1 y x2
5.54 4.81 5.845714286
4.81 6.73 5.734285714
6.73 7.78 5.862857143
7.78 8.39 6.078571429
8.39 6.59 6.405714286
6.59 5.67 6.454285714
5.67 5.61 6.501428571
5.61 4.97 6.511428571
4.97 5.35 6.534285714
5.35 6.4 6.337142857
6.4 5.77 6.14
5.77 4.31 5.765714286
4.31 4.68 5.44
4.68 4.48 5.298571429
4.48 5.24 5.137142857
5.24 6.06 5.175714286
6.06 5.03 5.277142857
5.03 4.8 5.081428571
4.8 4.37 4.942857143
4.37 4.54 4.951428571
4.54 5.06 4.931428571
5.06 5.44 5.014285714
5.44 6.04 5.042857143
6.04 5.63 5.04
5.63 5.546 5.125714286
5.546 5.53 5.232285714
5.53 5.306 5.398
5.306 5.304 5.507428571
5.304 4.687 5.542285714
4.687 4.598 5.434714286
4.598 4.647 5.228714286
4.647 4.38 5.088285714
4.38 4.456 4.921714286
4.456 3.899 4.768285714
3.899 3.37 4.567285714
3.37 3.739 4.291
3.739 3.702 4.155571429
3.702 3.405 4.027571429
3.405 3.165 3.850142857
3.165 2.997 3.676571429
2.997 2.847 3.468142857
2.847 3.227 3.317857143
3.227 4.764 3.297428571
4.764 4.301 3.443857143
4.301 3.79 3.529428571
3.79 3.64 3.584428571
3.64 3.62 3.652285714
3.62 3.57 3.741285714
3.57 3.52 3.844571429

回答2:

看来你没有明白为什么你这个函数的拟合需要一个初始值。

因为你的函数不是多项式之类的线性方程,所以不能使用最少二乘法来拟合。

matlab的lsqcurvefit用的是迭代的方法来拟合非线性方程,所以要一个初始值。

回答3:

0.99+565