我有一种数据,想要找到给定数据的方程(poly coeff)。例如,给定样本数据的等式很简单a^2*b+10
a\b 5 10 15
________________________
3| 55 100 145
4| 90 170 250
5| 135 260 385
6| 190 370 550
我检查了polfit
,但它仅适用于一个变量。
答案 0 :(得分:0)
答案 1 :(得分:0)
您似乎需要fit
中的Curve Fitting Toolbox功能。或者也许polyfitn
由另一个Matlab用户创建和共享。
答案 2 :(得分:0)
正如Dusty Campbell所指出,您可以使用fit
功能。为此,您必须使用数据构建网格
a = [3 4 5 6];
b = [5 10 15];
[A, B] = meshgrid(a, b);
C = (A.^2).*B + 10;
然后使用自定义等式调用fit
ft = fittype('p1*a^2*b + p2', 'independent',{'a','b'}, 'dependent','c');
opts = fitoptions('Method','NonlinearLeastSquares', 'StartPoint',[0.5,1]);
[fitresult, gof] = fit([A(:), B(:)], C(:), ft, opts);
您将看到解算器收敛到正确的解p1 = 1
,p2 = 10
。