Ciao. Ti ringrazio. Però ancora on riesco a risolvere il problema. Allora la funzione è questa:
function [XF, F, I] = myfun(x0, x1, y, N, tolx) %--INPUT--> x0, x1, y=funzione, N, tolx=valore confronto --%
%--OUTPUT---> XF=zero della funzione F= valore della funzione nel punto X I=numero di iterazioni--%
X=1:N;
X(1)=x0;
X(2)=x1;
for i=2:1:N
X(i+1)= X(i)-y(X(i))*((X(i)-X(i-1))/y(x==X(i))-y(x==X(i-1)));
if abs(X(i+1)-X(i))<= tolx
XF=X(i+1)
F=y(XF)
I=i
plot(y,'r');
hold on;
plot(X, 'b');
return;
end;
if y(X(i))*y(X(i+1))==0
XF=X(i+1)
F=y(XF)
I=i
plot(y,'r');
hold on;
plot(X, 'b');
return;
end;
if y(X(i))*y(X(i+1))>0
X(i)=X(i-1)
end;
end;
Io ho scritto come dicevi tu x== però mi da errore perchè dice che la variabile x non è definita. Ed effettivamente non è definita nella funzione. Ma infatti io definisco la x e la y e passo alla funzione la y. Allora ho provato a passargli entrambe:
function [XF, F, I] = myfun(x0, x1, x, y, N, tolx) %--INPUT--> x0, x1, y=funzione, N, tolx=valore confronto --%
%--OUTPUT---> XF=zero della funzione F= valore della funzione nel punto X I=numero di iterazioni--%
X=1:N;
X(1)=x0;
X(2)=x1;
for i=2:1:N
X(i+1)= X(i)-y(x==X(i)).*((X(i)-X(i-1))./y(x==X(i))-y(x==X(i-1)));
if abs(X(i+1)-X(i))<= tolx
XF=X(i+1)
F=y(XF)
I=i
plot(y,'r');
hold on;
plot(X, 'b');
return;
end;
if y(x==X(i))*y(x==X(i+1))==0
XF=X(i+1)
F=y(XF)
I=i
plot(y,'r');
hold on;
plot(X, 'b');
return;
end;
if y(x==X(i))*y(x==X(i+1))>0
X(i)=X(i-1)
end;
end;
ma mi da ancora un errore che non capisco:
??? Improper assignment with rectangular empty matrix.
Error in ==> myfun at 12
X(i+1)= X(i)-y(x==X(i)).*((X(i)-X(i-1))./y(x==X(i))-y(x==X(i-1)));
AIUTO!!! Voglio java!!!!!