
seleccionar una iteracion especifica de for
Publicado por david (1 intervención) el 24/03/2018 17:45:51
Buen dia, necesito hacer que mi ecuacion no lineal me arroje el error relarivo, ya tengo la ecuacion por biseccion pero no logro meter el calculo de error relativo debido a que no se como seleccionar una iteracion especifica, necesito que es resultado de Pn se reste asi Pn-pn-1(o sea el pn anterior)/pn, y tambien hacer de ello un bucle para que se vayan calculando los errores relativos de cada iteracion, muchas gracias de antemano
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
% donde se piden datos
function y = fun(x)
y = x^2-2;
endfunction
a = input('Introduzca el valor de a:');
b = input('Introduzca el valor de b:');
tol = input('Introduzca el número de tolerancia:');
% iniciacion de variables
maxIter = ceil((log(b-a)-log(tol))/log(2))-1;
n = 0;
c = (a+b)/2;
yc = fun(c);
fprintf('n a b Pn f(Pn) \n')
fprintf('%i %f %f %f %f \n', n, a, b, c, yc)
ya = fun(a);
yb = fun(b);
% Bucle para n>=1
for n = 1:maxIter
if yc == 0
a = c;
b = c;
fprintf('%i %f %f %f %f \n', n, a, b, c, yc)
break
elseif yb*yc>0
b = c;
yb = yc;
else
a = c;
ya = yc;
endif
c = (a+b)/2;
yc = fun(c);
fprintf('%i %f %f %f %f \n', n, a, b, c, yc)
endfor
Valora esta pregunta


0