jueves, 20 de febrero de 2014

fprintf('                                    ------------------\n')
fprintf('                                    MÉTODO DE BISECIÓN\n')
fprintf('                                    ------------------\n')
fprintf('\n');
syms x
h=input('- Defina la función                   : ');
a=input('- Introduzca el valor de a            : ');
b=input('- Introduzca el valor de b            : ');
error=input('- Introduzca el valor de precisión    : ');
g=h;
fa=subs(g,a);
fb=subs(g,b);
if fa*fb < 0
   c=a+(b-a)/2;
   fc=subs(g,c);
   m=a;
   n=b;
   cont=1;
   fprintf('\n\n');
   fprintf(' |------------------------------------------------------------------------------------------|\n');
   fprintf(' | n= %3.0f  |  a= %0.9f  |  b= %0.9f  |  P= %0.9f  |  Error= %e |\n', cont,m,n,c,abs(fc))
   while abs(fc) > error
      cont=cont+1;
      if fa*fc > 0
         a=c;
      else
         b=c;
      end
      c=a+(b-a)/2;
      fc=subs(g,c);
      m=a;
      n=b;
      fprintf(' | n= %3.0f  |  a= %0.9f  |  b= %0.9f  |  P= %0.9f  |  Error= %e |\n', cont,m,n,c,abs(fc))
   end
end
   fprintf(' |------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es                    : %10.9f\n',c);
fprintf('\n\n');




fprintf('                                   -----------------\n')
fprintf('                                   MÉTODO DE NEVILLE\n')
fprintf('                                   -----------------\n')
fprintf('\n');
syms x
res=input('- La Funcion le fue dada(Si=1,No=0)?     : ');
if res==1
   fun=input('- Introduzca la Funcion F(x)             : ','s');
end
Xi=input('- Introduzca la cantidad para aproximar  : ');
n=input('- Introduzca la cantidad de puntos dados : ');
fprintf('\n\n');
for i=0:(n-1),
   fprintf('- Introduzca X%1.0f ',i);
   X(i+1)=input    ('    =   ');
   if res==0
    fprintf('- Introduzca F(X%1.0f) ',i);
    FX(i+1)=input(' =   ');
    else
      FX(i+1)=funcion(X(i+1),fun);
   end
end

for i=1:n,
    Q(i,1)=FX(i);
end

for i=2:n,
   for j=i:n,
      Q(j,i)=(((Xi-X(j-i+1))*Q(j,i-1))-((Xi-X(j))*Q(j-1,i-1)))/(X(j)-X(j-i+1));
    end
end
fprintf('\n\n');
for i=2:n,
   for j=i:n,
      fprintf('- Q (%1.0f,%1.0f)  =  %3.8f\n ',j-1,i-1,Q(j,i));
      fprintf('\n');
   end
 
end




fprintf('                                 ------------------------\n')
fprintf('                                 MÉTODO DE NEWTON RAPHSON\n')
fprintf('                                 ------------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función                 : ');
Po=input('- Introduzca el valor de Xo         : ');
error=input('- Introduzca el valor de precisión  : ');
g=h;
i=subs(g,Po);
j=diff(g,x);
k=subs(j,Po);
P=Po-(i/k);
E=P-Po;
cont=1; 
fprintf('\n\n');
fprintf(' |--------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f  |  Xo= %0.9f  |  X= %0.9f  |  Error= %e |\n', cont,Po,P,abs(E))
while abs(E) > error
   cont=cont+1;
   Po=P;
   i=subs(g,Po);
   j=diff(g,x);
   k=subs(j,Po);
   P=Po-(i/k);
   E=P-Po;
   fprintf(' | n= %3.0f  |  Xo= %0.9f  |  X= %0.9f  |  Error= %e |\n', cont,Po,P,abs(E))
end
fprintf(' |--------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es                  : %10.9f\n',P);
fprintf('\n\n');
fprintf('- El Error absoluto es              : %e\n',abs(E));
fprintf('\n\n');




fprintf('                                   --------------------\n')
fprintf('                                   MÉTODO DE PUNTO FIJO\n')
fprintf('                                   --------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función                 : ');
Po=input('- Introduzca el valor de Po         : ');
error=input('- Introduzca el valor de precisión  : ');
g=h;
P=subs(g,Po);
E=P-Po;
cont=1; 
fprintf('\n\n');
fprintf(' |-------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f  |  Po= %0.9f  |  P= %0.9f  |  Error= %e  |\n', cont,Po,P,abs(E))
while abs(E) > error
   cont=cont+1;
   Po=P;
   P=subs(g,Po);
   E=P-Po;
   fprintf(' | n= %3.0f  |  Po= %0.9f  |  P= %0.9f  |  Error= %e  |\n', cont,Po,P,abs(E))
end
fprintf(' |-------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es                  : %10.9f\n',P);
fprintf('\n\n');





fprintf('                                ---------------------------\n')
fprintf('                                MÉTODO DE LA POSICIÓN FALSA\n')
fprintf('                                ---------------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función                 : ');
Po=input('- Introduzca el valor de Po         : ');
P1=input('- Introduzca el valor de P1         : ');
error=input('- Introduzca el valor de precisión  : ');
g=h;
i=subs(g,P1);
j=subs(g,Po);
P2=P1-[(i*(P1-Po))/(i-j)];
E=P2-P1;
cont=1; 
fprintf('\n\n');
fprintf(' |----------------------------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f  |  Po= %0.9f  |  P1= %0.9f  |   P2= %0.9f  |  Error= %e |\n', cont,Po,P1,P2,abs(E))
while abs(E) > error
   cont=cont+1;
   i=subs(g,P1);
   k=subs(g,P2);
   if i*k < 0
      Po=P1;
      P1=P2;
   else
      Po=Po;
      P1=P2;
   end
   i=subs(g,P1);
   j=subs(g,Po);
   P2=P1-[(i*(P1-Po))/(i-j)];
   E=P2-P1;
   fprintf(' | n= %3.0f  |  Po= %0.9f  |  P1= %0.9f  |   P2= %0.9f  |  Error= %e |\n', cont,Po,P1,P2,abs(E))
end
fprintf(' |----------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es                  : %10.9f\n',P2);
fprintf('\n\n');






fprintf('                                   --------------------\n')
fprintf('                                   MÉTODO DE LA SECANTE\n')
fprintf('                                   --------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función                 : ');
Po=input('- Introduzca el valor de Po         : ');
P1=input('- Introduzca el valor de P1         : ');
error=input('- Introduzca el valor de precisión  : ');
g=h;
i=subs(g,P1);
j=subs(g,Po);
P2=P1-[(i*(P1-Po))/(i-j)];
E=P2-P1;
cont=1; 
fprintf('\n\n');
fprintf(' |----------------------------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f  |  Po= %0.9f  |  P1= %0.9f  |   P2= %0.9f  |  Error= %e |\n', cont,Po,P1,P2,abs(E))
while abs(E) > error
   cont=cont+1;
   Po=P1;
   P1=P2;
   i=subs(g,P1);
   j=subs(g,Po);
   P2=P1-[(i*(P1-Po))/(i-j)];
   E=P2-P1;
   fprintf(' | n= %3.0f  |  Po= %0.9f  |  P1= %0.9f  |   P2= %0.9f  |  Error= %e |\n', cont,Po,P1,P2,abs(E))
end
fprintf(' |----------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es                  : %10.9f\n',P2);
fprintf('\n\n');






fprintf('                                   ---------------------\n')
fprintf('                                   MÉTODO DE STEFFENSSEN\n')
fprintf('                                   ---------------------\n')
fprintf('\n');
syms x
Po=input('- Introduzca el valor de Po         : ');
error=input('- Valor de precisión             : ');
g=h;
P1=subs(g,Po);
P2=subs(g,P1);
P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
E=P3-Po;
cont=1; 
fprintf('\n\n');
fprintf(' |-------------------------------------------------------------------------------------------|\n');
fprintf(' |n= %3.0f|Po= %0.9f|P1= %0.9f|P2= %0.9f|P3= %0.9f|Error= %e|\n', cont,Po,P1,P2,P3,abs(E))
while abs(E) > error
   cont=cont+1;
   Po=P3;
   P1=subs(g,Po);
    P2=subs(g,P1);
    P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
   E=P3-Po;
   fprintf(' |n= %3.0f|Po= %0.9f|P1= %0.9f|P2= %0.9f|P3= %0.9f|Error= %e|\n', cont,Po,P1,P2,P3,abs(E))
end
fprintf(' |-------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es                  : %10.9f\n',P3);
fprintf('\n\n');





EJERCICIO DE APLICACIÓN
fprintf('                                   ---------------------\n')
fprintf('                                   MÉTODO DE STEFFENSSEN\n')
fprintf('                                   ---------------------\n')
fprintf('\n');
syms x
a=input('- Valor del diámetro             : ');
b=input('- Constante de Stefan Boltzman   : ');
c=input('- Emisividad de la superficie    : ');
d=input('- Coeficiente de transferencia   : ');
e=input('- Temperatura ambiente           : ');
f=input('- Potencia eléctrica             : ');
h= input('- Función                        : ');
Po=input('- Valor de To                    : ');
error=input('- Valor de precisión             : ');
g=h;
P1=subs(g,Po);
P2=subs(g,P1);
P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
E=P3-Po;
cont=1; 
fprintf('\n\n');
fprintf(' |--------------------------------------------------------------------------------------------------|\n');
fprintf(' |n= %3.0f|To= %1.9f|T1= %1.9f|T2= %1.9f|T= %1.9f|Error= %e|\n', cont,Po,P1,P2,P3,abs(E))
while abs(E) > error
   cont=cont+1;
   Po=P3;
   P1=subs(g,Po);
    P2=subs(g,P1);
    P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
   E=P3-Po;
   fprintf(' |n= %3.0f|To= %1.9f|T1= %1.9f|T2= %1.9f|T= %1.9f|Error= %e|\n', cont,Po,P1,P2,P3,abs(E))
end
fprintf(' |--------------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- La temperatura es                 : %10.9f\n',P3);
fprintf('\n\n');
fprintf('- El Error Absoluto es              : %e\n',P3);
fprintf('\n\n');



6 comentarios:

  1. BISECCION
    fprintf('* Bisección *\n')
    syms x % cambiar segun sea la variable de la funcion
    a = input('Ingrese a: ');
    b = input('Ingrese b: ');
    f = input('Ingrese la función de trabajo: ');
    e = input('Ingrese la presición: ');
    fa = subs(f,a); % evalua a en la funcíon
    fb = subs(f,b); % evalua b en la función
    if fa*fb<0
    n=1;
    p = (a+b)/2;
    error = abs(subs(f,p));
    fprintf('\nn=%2.0f a=%.15f b=%.15f p=%.15f error=%.2e\n',n,a,b,p,error)
    while e<error
    n=n+1;
    fa = subs(f,a);
    fb = subs(f,b);
    fp = subs(f,p);
    if fa*fp<0
    a = a;
    b = p;
    p = (a+b)/2;
    error = abs(p - b);
    else
    a = p;
    b = b;
    p = (a+b)/2;
    error = abs(p - a);
    end
    fprintf('n=%2.0f a=%.15f b=%.15f p=%.15f error=%.2e\n',n,a,b,p,error)
    end
    fprintf('\nLa raíz aproximada es: %.15f\n\n',p)
    else
    fprintf('\nEn el intervalo [a,b] no existe una raiz\n\n')
    end



    VALORES BISECCION

    fprintf('* Bisección *\n')
    syms h % cambiar segun sea la variable de la funcion
    ho = input('Ingrese ho: ');
    h1 = input('Ingrese h1: ');
    V = input('Ingrese V: ');
    R=input('Ingrese R: ');
    L=input('Ingrese L: ');
    f = input('Ingrese la función de trabajo: ');
    e = input('Ingrese la presición: ');
    fho = subs(f,ho); % evalua a en la funcíon
    fh1 = subs(f,h1); % evalua b en la función
    if fho*fh1<0
    n=1;
    h = (ho+h1)/2;
    error = abs(subs(f,h));
    fprintf('\nn=%2.0f ho=%.15f h1=%.15f h=%.15f error=%.2e\n',n,ho,h1,h,error)
    while e<error
    n=n+1;
    fho = subs(f,ho);
    fh1 = subs(f,h1);
    fh = subs(f,h);
    if fho*fh1<0
    ho = ho;
    h1 = h;
    h = (ho+h1)/2;
    error = abs(h - h1);
    else
    ho = h;
    h1 = h1;
    h = (ho+h1)/2;
    error = abs(h - ho);
    end
    fprintf('n=%2.0f ho=%.15f h1=%.15f h=%.15f error=%.2e\n',n,ho,h1,h,error)
    end
    fprintf('\nLa raíz aproximada es: %.15f\n\n',h)
    else
    fprintf('\nEn el intervalo [ho,h1] no existe una raiz\n\n')
    end

    ResponderEliminar
  2. PUNTO FIJO

    fprintf('* Punto fijo *\n')
    syms x % cambiar segun la variable de la ecuación.
    p0 = input('Ingrese un valor inicial P0: ');
    g = input('Ingrese la función despejada : ');
    e = input('Ingrese la precisión: ');
    n = 1;
    p = subs(g,p0);
    error = abs(p - p0);
    fprintf('\nn=%2.0f p0=%.15f p=%.15f error=%.2e\n',n,p0,p,error)
    while e<error
    n=n+1;
    p0 = p;
    p = subs(g,p0);
    error = abs(p - p0);
    fprintf('n=%2.0f p0=%.15f p=%.15f error=%.2e\n',n,p0,p,error)
    end
    fprintf('\nLa raiz aproximada es: %.15f\n\n',p)



    VALORES PUNTO FIJO

    fprintf('* Punto fijo *\n')
    syms h % cambiar segun la variable de la ecuación.
    ho = input('Ingrese un valor inicial ho: ');
    g = input('Ingrese la función despejada : ');
    e = input('Ingrese la precisión: ');
    n = 1;
    h = subs(g,p0);
    error = abs(p - ho);
    fprintf('\nn=%2.0f ho=%.15f h=%.15f error=%.2e\n',n,ho,h,error)
    while e<error
    n=n+1;
    ho = h;
    h = subs(g,ho);
    error = abs(h - ho);
    fprintf('n=%2.0f ho=%.15f h=%.15f error=%.2e\n',n,ho,h,error)
    end
    fprintf('\nLa raiz aproximada es: %.15f\n\n',h)

    ResponderEliminar
  3. NEWTON

    fprintf('* Newton Raphson *\n')
    syms x
    p0 = input('Ingrese P0(sacado de solve): ');
    fx = input('Ingrese la funcion de ejer(el prog. hace la diff): ');
    e = input('Ingrese la precisión: ');
    dfx = diff(fx);
    fp0 = subs(fx,p0);
    dfp0 = subs(dfx,p0);
    n = 1;
    p = p0 - (fp0/dfp0);
    error = abs(p - p0);
    fprintf('\nn=%2.0f P0=%.15f P=%0.15f Error=%.2e\n',n,p0,p,error)
    while error>e
    n = n+1;
    p0=p;
    fp0 = subs(fx,p0);
    dfp0 = subs(dfx,p0);
    p = p0 - (fp0/dfp0);
    error = abs(p - p0);
    fprintf('n=%2.0f P0=%.15f P=%.15f Error=%.2e\n',n,p0,p,error)
    end
    fprintf('\nLa raiz de aproximación es: %0.15f\n\n',p)




    VALORES NEWTON
    fprintf('* Newton Raphson *\n')
    syms h
    V=input('Ingrese V: ');
    R=input('Ingrese R: ');
    L=input('Ingrese L: ');
    fx = input('Ingrese la funcion de ejer(el prog. hace la diff): ');
    ho = input('Ingrese ho(sacado de solve): ');
    e = input('Ingrese la precisión: ');
    dfx = diff(fx);
    fho = subs(fx,ho);
    dfho = subs(dfx,ho);
    n = 1;
    h = ho - (fho/dfho);
    error = abs(h - ho);
    fprintf('\nn=%2.0f ho=%.15f h=%0.15f Error=%.2e\n',n,ho,h,error)
    while error>e
    n = n+1;
    ho=h;
    fho = subs(fx,ho);
    dfho = subs(dfx,ho);
    h = ho - (fho/dfho);
    error = abs(h - ho);
    fprintf('n=%2.0f ho=%.15f h=%.15f Error=%.2e\n',n,ho,h,error)
    end
    fprintf('\nLa raiz de aproximación es: %0.15f\n\n',h)

    ResponderEliminar
  4. SECANTE
    fprintf('* Secante *\n')
    syms x
    p0 = input('Introduzca el valor P0: ');
    p1 = input('Introduzca el valor P1: ');
    fx = input('Introduzca la función del enunciado solo igualada a 0): ');
    precision = input('Introduzca la precisión: ');
    fp0 = subs(fx,p0);
    fp1 = subs(fx,p1);
    p2 = p1 - ((fp1*(p1-p0))/(fp1 - fp0));
    error = abs(p2 - p1);
    n = 1;
    fprintf('\nn=%2.0f p0=%2.9f p1=%2.9f p2=%2.9f error=%1.2e\n',n,p0,p1,p2,error)
    while error>precision
    n=n+1;
    p0=p1;
    p1=p2;
    fp0 = subs(fx,p0);
    fp1 = subs(fx,p1);
    p2 = p1 - ((fp1*(p1-p0))/(fp1 - fp0));
    error = abs(p2 - p1);
    fprintf('n=%2.0f p0=%2.9f p1=%2.9f p2=%2.9f error=%1.2e\n',n,p0,p1,p2,error)
    end
    fprintf('\n-->El valor de aproximación P2 es: %2.9f\n\n',p2)



    VALORES SECANTE
    fprintf('* Secante *\n')
    syms h
    ho = input('Introduzca el valor ho: ');
    h1 = input('Introduzca el valor h1: ');
    V=input('Introduzca el valor de V: ');
    R=input('Introduzca el valor de R: ');
    L=input('Introduzca el valor de L: ');
    fx = input('Introduzca la función del enunciado solo igualada a 0): ');
    precision = input('Introduzca la precisión: ');
    fho = subs(fx,ho);
    fh1 = subs(fx,h1);
    h2 = h1 - ((fh1*(h1-ho))/(fh1 - fho));
    error = abs(h2 - h1);
    n = 1;
    fprintf('\nn=%2.0f ho=%2.9f h1=%2.9f h2=%2.9f error=%1.2e\n',n,ho,h1,h2,error)
    while error>precision
    n=n+1;
    ho=h1;
    h1=h2;
    fho = subs(fx,ho);
    fh1 = subs(fx,h1);
    h2 = h1 - ((fh1*(h1-ho))/(fh1 - fho));
    error = abs(h2 - h1);
    fprintf('n=%2.0f ho=%2.9f h1=%2.9f h2=%2.9f error=%1.2e\n',n,ho,h1,h2,error)
    end
    fprintf('\n-->El valor de aproximación es: %2.9f\n\n',h2)

    ResponderEliminar
  5. POSICION FALSA
    fprintf('Método de Posición Falsa.\n')
    syms x
    p0 = input('P0: ');
    p1 = input('P1: ');
    fx = input('Fx(funcion igualada a 0): ');
    precision = input('Precision: ');
    fp0 = subs(fx,p0);
    fp1 = subs(fx,p1);
    if fp0*fp1 < 0
    p2 = p1 - ((fp1*(p1-p0))/(fp1 - fp0));
    error = abs(p2-p1);
    n = 1;
    fprintf('\nn=%2.0f P0=%3.15f P1=%3.15f P2=%3.15f Error=%1.2e\n',n,p0,p1,p2,error)
    fp2 = subs(fx,p2);
    while error>precision
    n = n+1;
    if fp1*fp2 < 0
    p0 = p1;
    p1 = p2;
    else
    p1 = p2;
    end
    fp0 = subs(fx,p0);
    fp1 = subs(fx,p1);
    p2 = p1 - ((fp1*(p1-p0))/(fp1 - fp0));
    error = abs(p2 - p1);
    fprintf('n=%2.0f P0=%3.15f P1=%3.15f P2=%3.15f Error=%1.2e\n',n,p0,p1,p2,error)
    fp2 = subs(fx,p2);
    end
    fprintf('\n--> El valor de aproximación P2 es: %3.15f\n\n',p2)
    else
    fprintf('Entre P0 y P1 no existe raiz.')
    end







    VALORES POSICION FALSA
    fprintf('Método de Posición Falsa.\n')
    syms h
    ho=input('Ingrese ho: ');
    h1=input('Ingrese h1: ');
    V=input('Ingrese V: ');
    R=input('Ingrese R: ');
    L=input('Ingrese L: ');
    fx = input('Fx(funcion igualada a 0): ');
    precision = input('Precision: ');
    fho = subs(fx,ho);
    fh1 = subs(fx,h1);
    if fho*fh1 < 0
    h2 = h1 - ((fh1*(h1-ho))/(fh1 - fho));
    error = abs(h2-h1);
    n = 1;
    fprintf('\nn=%2.0f ho=%3.15f h1=%3.15f h2=%3.15f Error=%1.2e\n',n,ho,h1,h2,error)
    fh2 = subs(fx,h2);
    while error>precision
    n = n+1;
    if fh1*fh2 < 0
    ho = h1;
    h1 = h2;
    else
    h1 = h2;
    end
    fho = subs(fx,ho);
    fh1 = subs(fx,h1);
    h2 = h1 - ((fh1*(h1-ho))/(fh1 - fho));
    error = abs(h2 - h1);
    fprintf('n=%2.0f ho=%3.15f h1=%3.15f h2=%3.15f Error=%1.2e\n',n,ho,h1,h2,error)
    fh2 = subs(fx,h2);
    end
    fprintf('\n--> El valor de aproximación es: %3.15f\n\n',h2)
    else
    fprintf('Entre ho y h1 no existe raiz.')
    end

    ResponderEliminar
  6. STEFFENSEN
    fprintf('Método de Steffensen.\n')
    syms x
    p0 = input('P0: ');
    fx = input('Fx(despejar x de la funcion y insertar la ec. de x): ');
    precision = input('Precisión: ');
    p1 = subs(fx,p0);
    p2 = subs(fx,p1);
    p = p0 - (((p1 - p0)^2)/(p2 - 2*p1 + p0));
    error = abs(p - p0);
    n = 1;
    fprintf('\nn=%2.0f P0=%3.15f P1=%3.15f P2=%3.15f P=%3.15f Error=%1.2e\n',n,p0,p1,p2,p,error)
    while error>precision
    n=n+1;
    p0 = p;
    p1 = subs(fx,p0);
    p2 = subs(fx,p1);
    p = p0 - (((p1 - p0)^2)/(p2 - 2*p1 + p0));
    error = abs(p - p0);
    fprintf('n=%2.0f P0=%3.15f P1=%3.15f P2=%3.15f P=%3.15f Error=%1.2e\n',n,p0,p1,p2,p,error)
    end
    fprintf('\n--> El valor de aproximación P es: %3.15f\n\n',p)



    VALORES STEFFENSEN
    fprintf('Método de Steffensen.\n')
    syms V
    P=input('Ingrese P(kPa): ');
    T=input('Ingrese T(°K): ');
    Pc=input('Ingrese Pc(Kpa): ');
    Tc=input('Ingrese Tc(°K): ');
    R=input('Ingrese R(kJ/kg°K): ');
    a=(27*((R*Tc)^(2)))/(64*Pc);
    b=(R*Tc)/(8*Pc);
    Vo = input('Ingrese Vo: ');
    f = input('Ingrese la Funcion de trabajo(despejar x de la funcion y insertar la ec. de x): ');
    precision = input('Precisión: ');
    V1 = subs(f,Vo);
    V2 = subs(f,V1);
    V = Vo - (((V1 - Vo)^2)/(V2 - 2*V1 + Vo));
    error = abs(V - Vo);
    n = 1;
    fprintf('\nn=%2.0f Vo=%3.15f V1=%3.15f V2=%3.15f V=%3.15f Error=%1.2e\n',n,Vo,V1,V2,V,error)
    while error>precision
    n=n+1;
    Vo = V;
    V1 = subs(f,Vo);
    V2 = subs(f,V1);
    V = Vo - (((V1 - Vo)^2)/(V2 - 2*V1 + Vo));
    error = abs(V - Vo);
    fprintf('n=%2.0f Vo=%3.15f V1=%3.15f V2=%3.15f V=%3.15f Error=%1.2e\n',n,Vo,V1,V2,V,error)
    end
    fprintf('\n--> El valor de aproximación V es: %3.15f\n\n',V)


    ResponderEliminar