lsqcurvefit is undefined in MathLab version R2007b
2 次查看(过去 30 天)
显示 更早的评论
Hello MathLab community,
I have copied follwong code from MathWorks example:
xdata = ...
[0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3];
ydata = ...
[455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5];
fun = @(x,xdata)x(1)*exp(x(2)*xdata);
x0 = [100,-1];
x = lsqcurvefit(fun,x0,xdata,ydata)
Running this code gives following error:
??? Undefined function or method 'lsqcurvefit' for input arguments of type 'function_handle'.
Error in ==> Fitt_2 at 11
x = lsqcurvefit(fun,x0,xdata,ydata)
What is the problem in the code?
Can anybody help to solve?
I'm working with MathLab version R2007b.
Thank you.
3 个评论
Matt J
2022-1-16
Max Heimann
2022-1-16
编辑:Max Heimann
2022-1-16
It seems to be part of the optimization toolbox.
https://mathworks.com/help/optim/ug/lsqcurvefit.html
采纳的回答
Mathieu NOE
2022-1-17
hello
FYI, you can do basic curve fitting with fminsearch - without the optimization toolbox

clc
clearvars
x = [0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3];
y = [455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5];
f = @(a,b,x) a.*exp(b.*x);
obj_fun = @(params) norm(f(params(1), params(2),x)-y);
sol = fminsearch(obj_fun, [0,0]);
a = sol(1);
b = sol(2);
xfit = linspace(min(x),max(x),100);
yfit = f(a, b, xfit);
figure;
plot(x, y, '+', 'MarkerSize', 10, 'LineWidth', 2)
hold on
plot(xfit, yfit, '-');
TE = sprintf('C = %0.2fe^{%0.3ft}',a, b);
text(x(3), y(3)*1.5, TE);
2 个评论
Rik
2022-1-17
You do need to be aware that fminsearch is more sensitive to local minima than many other fitters in Matlab, or so I've heard.
Mathieu NOE
2022-1-17
For those who want to go beyond fminsearch but still lack the optimization toolbox :
更多回答(2 个)
Lieu-Kim Dang
2022-1-17
1 个评论
Rik
2022-1-17
You posted this comment as an answer. Please use the comment section for comments, as the order of answers can change.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Systems of Nonlinear Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!