フィルターのクリア

Failure in initial objective function evaluation. LSQNONLIN cannot continue

23 ビュー (過去 30 日間)
Opariuc Andrei
Opariuc Andrei 2020 年 12 月 6 日
回答済み: Walter Roberson 2020 年 12 月 6 日
so i'm supposed to do nonlinear regression to find the values of a,b and the equation y given the value of x small x=2.6 .i tried using lsqnonlin but i think i'm doing it wrong ,i don't have anything related to nonlinear regression in my course pdf's and this is the first time i'm attempting lsqnonlin . Additionally i have values of x and the result of the equation y , %X=[0.5 1 2 3 4 ]; %Y=[10.4 5.8 3.3 2.4 2 ]; as an example ,don't have to do anything with them ,and the equation is :
and what i attepmpted is :
%%Input
x=2.6;
y=@(a,b,x)((a+sqrt(x))./(b.*sqrt(x))).^2;
%% calculus
[a,b,y]=lsqnonlin(y,x)

採用された回答

Walter Roberson
Walter Roberson 2020 年 12 月 6 日
lsqnonlin() is going to pass the given function a single vector of values that is the same length as the second parameter to lsqnonlin(), which is a scalar in your code.
Thus, your y is going to be invoked as y(2.6) so the 2.6 is going to be positionally matched to a and a will be valid inside the function body. However, your y actively uses its second and third parameters, b and x so the function will fail.
Try
y = @(ab) ((ab(1)+sqrt(x))./(ab(2).*sqrt(x))).^2
and pass in an initial vector of length 2

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLinear and Nonlinear Regression についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by