lsqcurvefit of a summation function where the parameter to evaluate is the last index of the summation (so an integer)
2 ビュー (過去 30 日間)
古いコメントを表示
Hi, I'm doing the fit of a function substantially similar to this one: f(x)= sum ( exp(1i * x * jz * c) ) , where: - sum represent the summation over the index jz - x is the variable, - jz = 1,2,...,nz where nz is a parameter to find using the fit, - c is another parameter. The complete function is the product of several series of this type.
In the curve fitting tool I can't enter a summation neither using symsum nor using an iteration. Moreover I can't use nz as a parameter.
Any idea?
Many thanks, Gianluca
0 件のコメント
採用された回答
Oleg Komarov
2011 年 5 月 30 日
lsqcurvefit is already MIN oof the SUM of euclidean distances of x from y. So, you don't have to use inlcude a sum in your handle and 1:x(2) but:
fh = @(x,xdata) exp(1i.*x(1).*xdata.*x(2)) .* conj(exp(1i.*x(1).*xdata.*x(2)));
4 件のコメント
Oleg Komarov
2011 年 5 月 31 日
I am not sure that you are supplying your problem in the required form, i.e. in lsqcurvefit you can supply a zero ydata and you'll end up with the min wrt nz of SUM{f(.)^2} where the fcn handle is cast in the form I supplied in the body.
その他の回答 (4 件)
Arnaud Miege
2011 年 5 月 27 日
I'm not sure this is something that can be done with the Curve Fitting Toolbox. I think a better approach would be to use the Optimization Toolbox with one of the Least Squares (Curve Fitting) functions, such as lsqcurvefit.
HTH,
Arnaud
gianluca messina
2011 年 5 月 30 日
1 件のコメント
Oleg Komarov
2011 年 5 月 30 日
Please post the code snippet you're using (preferably editing this question) and the whole error message. Additional info about the size of your inputs would be beneficial.
参考
カテゴリ
Help Center および File Exchange で Get Started with Curve Fitting Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!