Matlab - seleccionar una iteracion especifica de for

   
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Revisar política de publicidad