Unrecognized function or variable 'X0'.
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Bismark
am 26 Mai 2023
Kommentiert: Bismark
am 29 Mai 2023
when i run the command it says "Unrecognized function or variable 'X0'." I need help. Thank you
[X, FVAL]= FSOLVE(@mintafun,X0,options),
4 Kommentare
Akzeptierte Antwort
Cris LaPierre
am 26 Mai 2023
Bearbeitet: Cris LaPierre
am 26 Mai 2023
There are actually a lot of errors with your code. It might be worth taking a step back and thinking through your approach.
First, MATLAB is case-sensitive, which means FSOLVE and fsolve, X and x, etc are not equivalent statements.
Second, you have created a function that appears to be written upside down. It also appears to contain at the very bottom the inputs you are using to call the function in fsolve.
Third, you must be explicit in your use of mathematical operators to use. MATLAB does not assume anything. For example, sigma(X(14) should probably be sigma*(X(14)
Finally, check for typos. For example ((X13) should probably be (X(13)
As for the error you are seeing right now, it is likely because you are trying to call your function without defining the inputs. Here, for example, I haven't defined the variable X0 yet.
[X, FVAL]= FSOLVE(@mintafun,X0,options),
The correct syntax might look like this, at which point, you will start getting new errors due to the other issues I describe above.
x0 = [10; 6; 4; 3; 4; 3; 2; 3; 18; 7; 25; 10; 5; 5; 4; 11; 8; 20; 6; 3; 8; 1; 30; 7; 2; 6; 14; 30;];
options=optimset('Display','iter');
[X, FVAL]= fsolve(@mintafun,x0,options),
4 Kommentare
Cris LaPierre
am 27 Mai 2023
Bearbeitet: Cris LaPierre
am 27 Mai 2023
I refering to your defining equations that use variables that have not yet been defined. You can't use a variable (or array element, if that is your intent) if it hasn't yet been created.
Here's a shortened example
x0 = [10; 6; 4; 3; 4; 3; 2; 3; 18; 7; 25; 10; 5; 5; 4; 11; 8; 20; 6; 3; 8; 1; 30; 7; 2; 6; 14; 30];
F1 = mintafun(x0)
% The very first calculation uses phi, tau_c, theta, and tau_w, none of which exist yet.
function F = mintafun(X)
F =X(5)/X(12) - phi*(1 - tau_c)*X(1) / theta*(1 - tau_w)*(1-X(4));
tau_c = 0.17;
tau_w = 0.2;
theta = 0.349;
phi = 5;
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Windows finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!