Vous êtes sur la page 1sur 15

ALGORITMO : MTODO DE CARDANO

ENTRADA: a3, a2, a1, a0 {Coeficientes de la ecuacin}

INICIO:
i 1 {Redifinir unidad imaginaria}
si a3 1, entonces
a0 a0 / a3, a1 a1 / a3 {Hacer la unidad el trmino a3}
a2 a2 / a3, a3 1
fin_si

t a1 / 3 a2 ^ 2 / 9 {Variable temporal}
u (a1 * a2 3 * a0) / 6 a2 ^ 3 / 27 {Variable temporal}
d t^3+u^2 {Obtener discriminante}
s1 (u + d ^ 0.5) ^ (1/3) {Variable temporal}
s2 (u - d ^ 0.5) ^ (1/3) {Variable temporal}

x1 (s1 + s2) a2 / 3 {Primera Raz}


x2 - (s1 + s2) / 2 - a2 / 3 + 3 ^ 0.5 * (s1 s2) / 2 * i {Segunda Raz}
x3 - (s1 + s2) / 2 - a2 / 3 - 3 ^ 0.5 * (s1 s2) / 2 * i {Tercera Raz}

si d > 0, entonces
escribir (Una raz real y dos complejas conjugadas)
sino
si d > 0, entonces
escribir (Todas las races son reales y diferentes)
sino
escribir (Races reales y al menos dos son iguales)
fin_si
fin_si

FIN

SALIDA: x1, x2, x3 {Races Localizadas}


PSEUDOCODIGO MTODO DE CARDANO

1. INICIO
2. LEER (a3, a2, a1, a0)
3. HACER i 1
4. Si a3 1, entonces
5. HACER a0 a0 / a3
a1 a1 / a3
a2 a2 / a3
a3 1
t a1 / 3 a2 ^ 2 / 9
u (a1 * a2 3 * a0) / 6 a2 ^ 3 / 27
d t^3+u^2
s1 (u + d ^ 0.5) ^ (1/3)
s2 (u - d ^ 0.5) ^ (1/3)
x1 (s1 + s2) a2 / 3
x2 - (s1 + s2) / 2 - a2 / 3 + 3 ^ 0.5 * (s1 s2) / 2 * i
x3 - (s1 + s2) / 2 - a2 / 3 - 3 ^ 0.5 * (s1 s2) / 2 * i
6. LEER d
7. si d > 0, entonces
8. escribir (Una raz real y dos complejas conjugadas, x1 x2 x3)
9. sino
10. si d > 0, entonces
11. escribir (Todas las races son reales y diferentes, x1 x2
x3))
12. sino
13. escribir (Races reales y al menos dos son iguales, x1 x2
x3))
14. fin_si
15. fin_si
16. fin_si
17. FIN
ALGORITMO MTODO DE SUBSTITUCIONES SUCESIVAS
(Utilizado en el Problema No.2)

ENTRADA: xsup {Aproximacin inicial}

DEFINIR: g (x) {Funcin a evaluar}

INICIO
Tol 0.001 {Tolerancia de convergencia}
Nmax 50 {Nmero mximo de iteracione}
iter 0 {Inicializador contador de iteraciones}
x1 xsup {Copiar primer valor inicial}

convergi falso
mientras (iter <= Nmax) y (no convergi), hacer
iter iter + 1 {Incrementar contador de iteraciones}
x2 g (x1)
si abs((x2 x1) / x1) <= Tol, entonces hacer
convergi verdadero {Cambiar valor lgico}
sino
x1 x2
fin_si
fin_mientras

si convergi = verdadero, entonces hacer


raz x2 {Valor solucin , raz localizada}
sino
raz (valor no determinado)
escribir (El mtodo no convergi despus de, Nmax, iteraciones)
fin_si
FIN

SALIDA: raz {Raz localizada}


PSEUDOCODIGO MTODO DE SUBSTITUCIONES SUCESIVAS

1. INICIO
2. LEER xsup
g (x)
3. HACER Tol 0.001
Nmax 50
iter 0
x1 xsup
convergi falso
4. MIENTRAS (iter <= Nmax) y (no convergi), hacer
5. HACER iter iter + 1
x2 g (x1)
6. si abs((x2 x1) / x1) <= Tol, entonces hacer
7. convergi verdadero
8. sino
9. x1 x2
10. fin_si
11. fin_mientras
12. si convergi = verdadero, entonces hacer
13. raz x2
14. sino
15. raz (valor no determinado)
16. escribir (El mtodo no convergi despus de, Nmax, iteraciones)
17. fin_si
18. FIN
ALGORITMO MTODO DE BISECCION

ENTRADA: xizq, xder {Extremos de bqueda}

DEFINIR: f(x) {Funcin a evaluar}

INICIO
Tol 1e^5 {Tol de convergencia}
Nmax 50 {No mximo de iteraciones}
yizq f(xizq) {Obtener el valor de la funcin de extremo izq}
yder f(xder) {Obtener el valor de la funcin extremo der}
iter 1 {Inicializador contador de iteraciones}
convregi falso
mientras (iter <= Nmax) y (no convregi) hacer
xmed (xizq + xder) / 2 {Obtener punto intermedio y calcular}
ymed f(xmed)

si abs (ymed) <= Tol o (xder - xizq) / 2 <= Tol, entonces hacer
convregi verdadero
si ymed * yizq > 0, entonces hacer {Extremo tienen mismo
signo,entnes}
xizq xmed
yizq ymed
sino
xder xmed
yder ymed
fin_si
iter iter + 1 {Incrementar contador de iteraciones}
fin_si
fin_mientras
si convergi = verdadero, entonces hacer
raz xmed {Valor solucin, raz localizada}
sino
raz (valor no determinado)
fin_si
FIN

SALIDA: raz {Raz localizada}


PSEUDOCODIGO MTODO DE BISECCION

1. INICIO
2. LEER xizq, xder
f(x)
3. HACER Tol1e^5
Nmax50
yizq f(xizq)
yder f(xder)
iter 1
convregi falso
4. MIENTRAS (iter <= Nmax) y (no convregi)
5. HACER xmed (xizq + xder) / 2
ymed f(xmed)
6. si abs (ymed) <= Tol o (xder - xizq) / 2 <= Tol
7. HACER convregi verdadero
8. sino
9. HACER iter iter + 1
10. si ymed * yizq > 0
11. HACER xizq xmed
yizq ymed
12. sino
13. HACER xder xmed
yder ymed
14. fin_si
15. fin_si
16. fin_MIENTRAS
17. si convergi = verdadero
18. HACER raz xmed
19. sino
20. HACER raz (valor no determinado)
21. fin_si
22. FIN
ALGORITMO MTODO DE NEWTON RAPHSON

ENTRADA: xsup {Aproximacin inicial}


Deltax {Valor delta para calcular derivada nmerica}

DEFINIR: f(x) {Funcin a evaluar}

INICIO
epsilon 1e-5{Tol de convergencia}
Nmax 50 {No mximo de iteraciones}
iter 1 {Inicializador contador de iteraciones}
convergi falso
mientras (iter <= Nmax) y (no convergi) hacer

deriv (f(xsup + deltax) f(xsup)) / deltax {Evaluar derivada nmerica}


xcalc xsup f(xsup) / deriv {Obtener nuevo valor, Met N-R}

si abs((xcalc xsup) / xsup) <= Tol, entonces hacer


convergi verdadero
sino
iter iter + 1 {Incrementar contador de iteraciones}
xsup xcalc {No convergi calcular nuevo valor supuesto}
fin_si
fin_mientras

si convergi = verdadero, entonces hacer


raz xcalc
sino
raz (valor no determinado)
escribir (El mtodo no convergi despus de, Nmax, iteraciones)
fin_si
FIN

SALIDA: raz {Raz localizada}


PSEUDOCODIGO METODO DE NEWTON RAPHSON

1. INICIO
2. LEER xsup
deltax
f(x)
3. HACER epsilon 1e-5
Nmax 50
iter 1
convergi falso
4. MIENTRAS (iter <= Nmax) y (no convergi)
5. HACER deriv (f(xsup + deltax) f(xsup)) / deltax
xcalc xsup f(xsup) / deriv
6. si abs((xcalc xsup) / xsup) <= Tol
7. HACER convergi verdadero
8. sino
9. HACER iter iter + 1
xsup xcalc
10. fin_si
11. fin_MIENTRAS
12. si convergi = verdadero
13. HACER raz xcalc
14. sino
15. HACER raz (valor no determinado)
16. fin_si
17. FIN
ALGORITMO METODO DE LA SECANTE

ENTRADA: xizq, xder {Extremos de bqueda}

DEFINIR: f(x) {Funcin a evaluar}

INICIO
epsilon 1e-5 {Tol de convergencia}
Nmax 50 {No mximo de iteraciones}
iter 1 {Inicializador contador de iteraciones}
x1 xizq {Copiar valor extremo izquierdo}
y1 f(x1) {Obtener valor de la funcin}
x2 xder {Copiar valor extremo derecho}
y2 f(x2) {Obtener valor de la funcin}

convergi falso
mientras (iter <= Nmax= y (no convergi) hacer
iter iter + 1 {Incrementar contador de iteraciones}

x3 x1 y1 * (x2 x1) / (y2 y1) {Mtodo de la secante}


y3 f(x3)

si abs (y3) <= Tol o abs ((x3 x2) / x2) <= Tol, entonces hacer
convergi verdadero
sino
x1 x2
y1 y2
x2 x3
y2 y3
fin_si
fin_mientras

si convergi = verdadero, entonces hacer


raz x3
sino
raz (valor no determinado)
fin_si
FIN

SALIDA: raz {Raz localizada}


PSEUDOCODIGO METODO DE LA SECANTE

1. INICIO
2. LEER xizq, xder

f(x)
3. HACER iter 0
epsilon 1e-5
Nmax 50
x1 xizq
y1 f(x1)
x2 xder
y2 f(x2)
convergi falso
4. MIENTRAS (iter <= Nmax= y (no convergi)
5. HACER iter iter + 1
x3 x1 y1 * (x2 x1) / (y2 y1)
y3 f(x3)
6. si abs (y3) <= Tol o abs ((x3 x2) / x2) <= Tol
7. HACER convergi verdadero
8. sino
9. HACER x1 x2
y1 y2
x2 x3
y2 y3
10. fin_si
11. fin_MIENTRAS
12. si convergi = verdadero
13. HACER raz x3
14. sino
15. HACER raz (valor no determinado)
16. fin_si
17. FIN
ALGORITMO METODO DE LA FALSA POSICION

ENTRADA: xizq, xder {Extremos de bqueda}

DEFINIR: f(x) {Funcin a evaluar}

INICIO
epsilon 1e-5 {Tol de convergencia}
Nmax 50 {No mximo de iteraciones}
iter 1 {Inicializador contador de iteraciones
x1 xizq {Copiar valor izq}
x2 xder {Copiar valor der}
y1 f(x1) {Evaluar funcin x1}
y2 f(x2) {Evaluar funcin x2}
convergi falso
mientras (iter <= Nmax) y (no convergi) hacer
iter iter + 1 {Incrementar contador de iteraciones}
x3 x1 y1 * (x2 x1) / (y2 y1) {Mtodo falsa posicin}
y3 f(x3) {Evaluar funcin}

si abs (y3) <= Tol, entonces hacer


convergi verdadero
sino
si y3 * y1 > 0, entonces hacer
x1 x3
y1 y3
sino
x2 x3
y2 y3
fin_si
fin_si
fin_mientras

si convergi = verdadero, entonces hacer


raz x3
sino
raz (valor no determinado)
escribir
fin_si
FIN

SALIDA: raz {Raz localizada}


PSEUDOCODIGO METODO DE LA FALSA POSICION

1. INICIO
2. LEER xizq, xder
f(x)

3. HACER epsilon 1e-5


Nmax 50
iter 0
x1 xizq
x2 xder
y1 f(x1)
y2 f(x2)
convergi falso
4. MIENTRAS (iter <= Nmax) y (no convergi)
5. HACER iter iter + 1
x3 x1 y1 * (x2 x1) / (y2 y1)
y3 f(x3)
6. si abs (y3) <= Tol
7. HACER convergi verdadero
8. sino
9. HACER si y3 * y1 > 0
10. HACER x1 x3
y1 y3
11. sino
12. HACER x2 x3
y2 y3
13. fin_si
14. fin_si
15. fin_MIENTRAS
16. si convergi = verdadero, entonces hacer
17. HACER raz x3
18. sino
19. HACER raz (valor no determinado)
escribir
20. fin_si
21. FIN
ALGORITMO PROGRAMA IMPLEMENTADO EN EL PROBLEMA No.7

ENTRADA: xsup {Aproximacin inicial}


Deltax {Valor delta para calcular derivada nmerica}

DEFINIR: f(x) {Funcin a evaluar}

INICIO
Delta 1e ^6
epsilon 1e-5 {Tol de convergencia}
Nmax 50 {No mximo de iteraciones}
iter 1 {Inicializador contador de iteraciones}
convergi falso
mientras (iter <= Nmax) y (no convergi) hacer
{Evaluar derivada nmerica}
deriv1 (f(xsup + deltax) f(xsup)) / deltax
{Evaluar 2da. derivada nmerica}
deriv2 deriv2 =(f(xsup+delta*2)-2*f(xsup+delta)+f(xsup))/delta^2

Fun deriv1-sqrt(deriv1^2-2*f(f,xsup)*deriv2)

xcalc xsup Fun / deriv2 {Obtener nuevo valor, Met N-R}

si abs((xcalc xsup) / xsup) <= Tol, entonces hacer


convergi verdadero
sino
iter iter + 1 {Incrementar contador de iteraciones}
xsup xcalc {No convergi calcular nuevo valor supuesto}
fin_si
fin_mientras

si convergi = verdadero, entonces hacer


raz xcalc
sino
raz (valor no determinado)
escribir (El mtodo no convergi despus de, Nmax, iteraciones)
fin_si
FIN

SALIDA: raz {Raz localizada}


PROGRAMA IMPLEMENTADO EN EL PROBLEMA No 7

function[raiz] = Me_Tay(xsup,f)
Nmax = 50; %Nmero mximo de iteraciones
epsilon = 1e-8; %Constante de tolerancia en la convergencia
delta =1e-6; %Delta x
iter =1;
convergio = false;
while (iter <= Nmax & ~convergio)
deriv1 = (feval(f, xsup+delta) - feval(f, xsup)) /delta;
%Segunda derivada nmerica
deriv2 =(feval(f,xsup+delta*2)-
2*feval(f,xsup+delta)+feval(f,xsup))/delta^2
Fun= deriv1-sqrt(deriv1^2-2*feval(f,xsup)*deriv2);
xcalc=xsup-(Fun/deriv2);
convergio = abs((xsup-xcalc)/xsup) <= epsilon;
if ~convergio
xsup = xcalc;
iter = iter +1;
end
end
if convergio
raiz = xcalc;
else
raiz = NaN;
end
end
MTODO DE SUBSTITUCIONES SUCESIVAS
(IMPLEMENTADO EN PROBLEMA No 2)

function[Raiz]= M_SuS(f,xsup)%Funcin adaptada en la forma x=g(x)


Tol=0.001; %Tolerancia enunciada en el problema
Nmax=50; %Nmero de iteraciones
iter = 0; % Inicio de contador de iteraciones
convergio=false; %Indicador lgico para terminacin del mtodo
while (iter<=Nmax)&&(~convergio);
iter=iter+1; %Incremento de iteraciones
x2=feval(f,xsup); %Obtener el valor de la funcin
if abs((xsup-x2)/xsup)<=Tol ; %Aplicando Sustitucin Sucesiva
convergio=true;
else
xsup=x2; %Validacin , para repetir el ciclo
end
end
if convergio==true;
Raiz=x2; %Raz Localizada
else
Raiz=NaN
fprintf('El metdo no convergio depues de %g
iteraciones\n',Nmax);
end
end

Vous aimerez peut-être aussi