在Matlab中的n维非线性曲线拟合

时间:2013-11-22 19:34:33

标签: matlab

有没有办法在Matlab中使用n个变量拟合函数?任何例子都非常有用。 到目前为止我使用的是曲线拟合工具箱,它提供了我需要具有2个参数的函数的解决方案。但是现在我需要使用更多变量来拟合函数。 最糟糕的是依赖是非线性的(可能类似于/ x + b / y + c / z + ......,但它只是一个假设)。如果它是线性的,'\'运算符就可以了。

2 个答案:

答案 0 :(得分:3)

lsqnonlin会做,例如

%% generate noisy points for fitting
a = 1; b = 2; c = 3;
x = rand(100,3);
y = a./x(:,1) + b./x(:,2) + c./x(:,3) + 0.1*rand(1,1);

%% fitting
% define residual vector
minRes = @(p) (p(1) ./ x(:,1) + p(2) ./ x(:,2) + p(3) ./ x(:,3) - y);
% start values
par0 = [1,1,1];
% optimize
par = lsqnonlin(minRes, par0);

答案 1 :(得分:-1)

lsqnonlin

功能包含在Matlab中