I cannot figure out how to fix this error "Objective function is returning undefined values at initial point. fsolve cannot continue."

5 ビュー (過去 30 日間)
Dominic Riepenhoff 2021 年 11 月 28 日

function dummyhw8
clc
x0=[1,1,1,0.02,0,02,0.02];
x=fsolve(@fcn,x0);
disp ('Velocities are the first three values. Whereas friction is last 3.');
disp(x);
function z=fcn(x)
z(1)=x(1)-(0.64*x(2))-(0.64*x(3)); % where x1=v1 x2=v2 and x3=v3
z(2)=40-(102*x(4)*x(1)^2)-(127*x(5)*x(2)^2); % where x4=f1 x5=f2 x6=f3
z(3)=60-(102*x(4)*x(1)^2)-(127*x(6)*x(3)^2);
z(4)=1/sqrt(x(4))+2.0*log10((4.5e-4/3.7)+2.81e-5/x(1)/sqrt(x(4)));
z(5)=1/sqrt(x(5))+2.0*log10((5.625e-4/3.7)+3.52e-5/x(2)/sqrt(x(5)));
z(6)=1/sqrt(x(6))+2.0*log10((5.625e-4/3.7)+3.52e-5/x(3)/sqrt(x(6)));
5 件のコメント表示非表示 4 件の古いコメント
Dominic Riepenhoff 2021 年 11 月 28 日
Are there any ways (besides changing those values) to avoid this fsolve error, so that I could still use my initial guess values that are close to zero?

サインインしてコメントする。

回答 (1 件)

Matt J 2021 年 11 月 28 日

I suspect you meant to have 6 values in x0 rather than 7.
x0=[1,1,1,0.02,0.02,0.02];

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!