How can I implement lsqcurvefit function on my equations?

2 次查看(过去 30 天)
Hello, I have a nonlinear equation system of 5 variables (complex-valued) and I want to try “lsqcurvefit” function. I want my output to be as close to zero as possible so, should "ydata" must be equal to my expected values or a row vector of 5 zeros? Sorry if it's a dumb question but I am confused. Thanks for the help.
objfcn = @(x,xdata) [...Equations...];
x0 = Initial_Values(1,:)';
xdata = Measurements(1,:)';
ydata = Exp_XValues(1,:)';
[x,fval] = lsqcurvefit(objfcn, x0, xdata, ydata, [], []);
  2 个评论
Matt J
Matt J 2020-10-12
You mean you want the x(i) to be as close to zero as possible? You think the optimal parameters are non-unique?
Ceyhan TURKMEN
Ceyhan TURKMEN 2020-10-12
Actually, I search optimum x(i) values, whose roots of the equation set.

请先登录,再进行评论。

采纳的回答

Jon
Jon 2020-10-12
编辑:Jon 2020-10-12
From your description, it sound like you want to find the solution to a system of 5 equations (in I assume 5 unknowns). In this case I think fsolve would be more appropriate. lsqcurvefit is for the situation where you are trying to find the coefficients of a nonlinear expression to give the best fit to an observed data set. In particular this would be the situation where you have typically many more equations than unknowns, and your unknowns are the parameters of some nonlinear equation. So for example if you were trying to fit an equation y = a*x^b + c and you wanted to find the best values for a,b and c.
  2 个评论
Ceyhan TURKMEN
Ceyhan TURKMEN 2020-10-12
Thank you for your answer. It seems like fsolve is more suitable for this problem as you said. I will applied fsolve to solve the equations.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

标签

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by