Salve, uso da poco matlab e sono poco pratica.
Devo risolvere un sistema di equazioni non lineari
Ho visto l'utilizzo della funzione fsolve sull'help ma anche ripentendo lo stesso esempio mi da:
Input argument "x" is undefined.
Error in ==> myfun at 3
F = [2*x(1) - x(2) - exp(-x(1));
Error in ==> run at 57
evalin('caller', [s ';'])
lo script che ho usato, uguale a quello dell'help è:
function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
-x(1) + 2*x(2) - exp(-x(2))];
x0 = [-5; -5]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x] = fsolve(@myfun,x0,options); % Call solver
inoltre il mio sistema da risolvere è:
% calcolo conversione
clc
clear
function F = a(x)
T0=300;
deltaH=-6000;
cpa=15;
V=500;
Fa0=0.2;
ca0=0.1;
A=193017.97;
E=10000;
R=1.987;
k=A*exp(E/R*x(1));
ra=k*(ca0^2)*((1-x(2))^2);
F=[x(1)-T0+((x(2)*deltaH)/(2*cpa));x(2)-((ra*V)/Fa0)];
x0=[300;0];
options=optimset('Display','iter'); % Option to display output
x = fsolve(@a,x0,options); % Call solver
e mi da il seguente errore:
??? Error: File: a.m Line: 6 Column: 1
Function definitions are not permitted in this context.
Error in ==> run at 57
evalin('caller', [s ';']);
perchè non mi fa definire la function???
grazie mille!!!