Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA ELÉCTRICA
GRUPO: 3EM3
METODOS NUMÉRICOS
EQUIPO 01:
• Caballero Aguilar Ximena Jarem
• Cruz Gasca Oscar Israel
• Rodríguez Hernández Ingrid Itzel
• Valencia Caro Andrés
Objetivo.
Encontrar la raíz real de una función, ecuación algebraica o trascendente por
medio de dos puntos dados aproximados a la raíz exacta a través del método
de bisección o método de Bolzano aplicándolo en programación para obtener
dicha raíz de una forma más rápida, práctica y con un porcentaje de error nulo.
Marco teórico
Método de bisección (Bolzano)
El método de bisección es uno de los más versátiles para determinar una raíz
real en un intervalo de una ecuación dada, es fácil de comprender, aunque si
se desea una mayor exactitud el número de cálculos que hay que realizar
aumenta considerablemente.
Consiste en tomar un intervalo que encierre la raíz que deseamos calcular
(intervalo azul), luego subdivimos dicho intervalo por la mitad y tomamos el
sub-intervalo que contiene la raíz (intervalo verde), descartando la otra mitad
que no la contiene. Repitiendo este proceso podemos obtener el valor de la
raíz con la precisión que deseemos.
Es de hacer notar que este método no permite hallar raíces dobles, debido a
que este tipo de raíces toca de manera tangencial el eje de las x, por otra
parte este método, no es capaz de diferenciar entre una raíz y una
singularidad.
Una de sus ventajas es que funciona para ecuaciones algebraicas y
trascendentes, pero se recomienda utilizarlo después de un análisis gráfico.
El Teorema de Bolzano establece las condiciones necesarias para la existencia
de al menos un cero de una función continua.
Teorema de Bolzano
Si f(x) es continua en el
intervalo [a,b], con f(a)∙f(b)<0,
entonces existe al menos
un c∈]a,b[ tal que f(c)=0
El método de bisección se basa en
el Teorema de Bolzano, el cual
afirma que si se tiene una función
real y=f(x) continua en el intervalo
]a,b[ donde el signo de la función
en el extremo a es distinto al signo
de la función en el extremo b del
intervalo, entonces existe al menos
un c∈]a,b[ tal que f(c)=0, que es la
raíz buscada.
Suponga una ecuación f(x)=0
Para determinar la raíz en el intervalo ]a,b[ divida el intervalo por la mitad,
llame con m a ese punto donde m=a+b2.
Considere los siguientes casos:
1. Si f(m)=0, entonces m es la raíz buscada
2. Si f(a) y f(m) tienen signos diferentes, entonces la raíz buscada se
encuentra en el intervalo ]a,m[
3. Si f(m) y f(b) tienen signos diferentes, entonces la raíz buscada se
encuentra en el intervalo]m,b[
4. Ahora, divida por la mitad el nuevo intervalo que contiene la raíz y
repita el procedimiento.
5. Al continuar con el proceso, determinamos que la raíz se encuentra en
un intervalo tan pequeño como se desee y, entonces, se obtiene una
aproximación de la raíz buscada.
6. Observe que se va obteniendo una secuencia de intervalos cada vez más
pequeños ]a1,b1[,]a2,b2[,]a3,b3[,...,]an,bn[, tal que f(an)∙f(bn)→0,
entonces bn−an=12n(b−a).
7. Los puntos extremos a1,a2,a3,...,an forman una sucesión creciente y
acotada, mientras que los puntos extremos b1,b2,b3,...,bn una sucesión
decreciente y acotada, con un límite común igual 𝜀 que es la raíz
buscada.
8. El proceso puede ser continuado hasta lograr que |bn−an|< ∈, para un
valor ∈ establecido. Este procedimiento brinda la precisión requerida
para la raíz buscada.
9. Para determinar el error mínimo esperado del método, haga uso del
siguiente teorema:
10.Para determinar el número máximo de iteraciones aplique la siguiente
fórmula:
b−a/2^n<ε
𝑥𝑙 + 𝑥𝑢
𝑥𝑟 =
2
A) f(xl)*f(xr)<0 -> xr=xu
B) f(xl)*f(xr)>0 -> xr=xl
C) f(xl)*f(xr)=0 ->xr=raíz
|𝜀𝑎 | < 𝜀𝑠 𝑒𝑛 𝑑𝑜𝑛𝑑𝑒 𝜀𝑠 <0.3%
𝑥𝑟 𝑛𝑢𝑒𝑣𝑜 − 𝑥𝑟 𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝜀𝑎 = | | ∗ 100
𝑥𝑟 𝑛𝑢𝑒𝑣𝑜
𝑥𝑙 = 12
𝑥𝑢 = 16
𝑓 (𝑥𝑙 ) = 𝑓 (12) = 6.06
𝑓 (𝑥𝑢) = 𝑓(16) = −2.26
𝑓 (𝑥𝑙 ) ∗ 𝑓 (𝑥𝑢) < 0 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑒𝑥𝑖𝑠𝑡𝑒 𝑟𝑎í𝑧
𝑓 (12) ∗ 𝑓(16) = (6.06)(−2.26) = −13.69 < 0 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑠𝑖 𝑒𝑥𝑖𝑠𝑡𝑒 𝑟𝑎í𝑧
i=1
12+16 14−0
𝑥𝑟 = = 14 𝜀𝑎 = | | ∗ 100 = 100%
2 14
ITERACIÓN 𝑋𝑙 𝑋𝑢 𝑋𝑟 𝐸𝑎 (%)
1 12 16 14 100%
2 14 16 15 6.67%
3 14 15 14.5 3.44%
4 14.5 15 14.75 1.69%
5 14.75 15 14.875 0.84%
6 14.75 14.875 14.8125 042%
7 14.75 14.8125 14.78125 0.21%
Pseudocódigo
Proceso METODO_BISECCION_paracaidista
// Se imprime el metodo y la funcion que se esta evaluando
Definir fxl,fxu,fes,fxr,i,xrant,ea Como Real
Escribir 'METODO BISECCION: '
Escribir 'f(x)= 667.38/x (1-e^-0.146843(x)) xl=12, xu=16, es=%%'
// Leer xl, xu y es
Escribir 'Dame el valor inicial del limite inferior xl:'
Definir xl como real
Leer fxl
Escribir 'Dame el valor inicial del limite superior xu:'
Leer fxu
Escribir 'Dame el el error porcentual deseadofijado es:'
Leer fes
// Evaluacion de la funcion
fxl <- (667.38/xl)*(1-(exp(-0.146843*xl)))-40
fxu <- (667.38/xu)*(1-(exp(-0.146843*xu)))-40
Borrar Pantalla
// Se evalua la condicion para ver si existe raíz
Si ((fxl*fxu)<0) Entonces
Escribir 'EXISTE RAIZ EN EL INTETRVALO DADO '
Escribir 'Iteracion Xl Xu Xr ea'
// Inicio del proceso iterativo
Repetir
Escribir ' ',i,' ',xl,' ',xu
xrant <- xr
xr <- xl+xu/2
fxr <- (667.38/xr)*(1-(exp(-0.146843*xr)))-40
// Evalua las condiciones de bisección
Si ((fxl*fxr)<0) Entonces
xu <- xr
FinSi
Si ((fxl*fxr)>0) Entonces
xl <- xr
FinSi
Si ((fxl*fxr)==0) Entonces
// Cálculo del error
ea <- abs(xr-xrant)/xr*100
// Muestra resultados
Escribir ' ',xr,' ',ea
i <- i+1 // Contador para las iteraciones
FinSi
Hasta Que (esp<ea) // condición de paro del proceso iterativo
SiNo // Si no existe raíz
Escribir 'NO EXISTE RAIZ EN EL INTERVALO'
FinSi
Escribir 'LA APROXIMACION A LA RAIZ ES xr= ',xr
Escribir 'CON UN ea= ',ea
FinProceso
Diagrama de flujo
Código
1 /*PRÁCTICA 1. MÉTODO DE BISECCIÓN
2 PARACAIDISTA
3 Equipo 1
7 #include <stdlib.h>
8 #include <stdio.h>
9 #include <math.h>
10
11
12 int main()
13 {
14 //Declaración de variables
16 int i=0;
17
19 printf("METODO DE BISECCION:\n");
21
22 //Leer xl, xu y es
24 scanf("%lf", &xl);
26 scanf("%lf",&xu);
28 scanf("%lf",&es);
29
30 //Evaluacion de la funcion
33
34 system("cls");
35 system("color 0A");
36
38 if((fxl*fxu)<0)
39 {
41
44 do
45 {
47 xrant=xr;
48 xr=(xl+xu)/2;
50
52 if((fxl*fxr)<0)
53 {
54 xu=xr;
55 }
56
57 if((fxl*fxr)>0)
58 { xl=xr;}
59
60 if((fxl*fxr)==0)
62
65 //Muestra resultados
68 }
70 }
72 {
74 }
77
78 return 0;
79 }
Resultado
Codeblocks
PSeInt
Conclusiones
• Caballero Aguilar Ximena Jarem:
El método de bisección es un método numérico utilizado para encontrar
raíces de ecuaciones en una variable. El método consiste en dividir
iterativamente un intervalo en dos partes iguales y determinar en cuál de
las dos partes se encuentra la raíz. Este proceso se repite hasta que se
alcanza la precisión deseada.
En conclusión, el método de bisección es un método numérico sencillo y
robusto para encontrar raíces de ecuaciones. Aunque no es el método más
eficiente, es una buena opción cuando se dispone de pocos datos iniciales
sobre la función y se desea una solución aproximada con cierta precisión.
Además, el método siempre converge, siempre y cuando se aseguran
ciertas condiciones como que la función sea continua y tenga un cambio de
signo en el intervalo inicial.
Referencias
• (2021). Métodos Numéricos para la enseñanza. Descripción del método.
Método de Bisección (Bolzano). Recuperado de:
https://multimedia.uned.ac.cr/pem/metodos_numericos_ensenanza/mod
ulo2/descripcionmetodo.html
• Lizárraga A. F. (2003). Análisis Numérico. Método de Bisección.
Recuperado de:
http://www3.fi.mdp.edu.ar/analisis/temas/no_lineales_1/biseccion.htm
INSTITUTO POLITECNICO NACIONAL
INGENIERÍA ELÉCTRICA
GRUPO: 3EM3
METODOS NUMÉRICOS
EQUIPO 01:
• Caballero Aguilar Ximena Jarem
• Cruz Gasca Oscar Israel
• Rodríguez Hernández Ingrid Itzel
• Valencia Caro Andrés
Objetivo
Al finalizar este proceso de aprendizaje, el estudiante será capaz de aplicar el método de la
tangente para encontrar la recta tangente a una curva en un punto determinado, resolver
problemas de optimización utilizando este método y comprender su importancia en el
cálculo diferencial.
La recta tangente a una curva en un punto dado es la recta que mejor aproxima la curva en
ese punto, es decir, es la recta que coincide con la dirección de la curva en ese punto. La
recta tangente se utiliza en muchas aplicaciones, como en la física para modelar la
velocidad de un objeto en un punto determinado o en la economía para modelar la tasa de
cambio de una variable en un momento dado.
El método de la tangente se puede aplicar para encontrar la recta tangente a una curva en
cualquier punto dado. Para esto, primero se debe calcular la derivada de la función en ese
punto. Luego, se utiliza esta derivada para encontrar la pendiente de la recta tangente en ese
punto. Finalmente, se utiliza la ecuación de la recta con la pendiente encontrada y el punto
dado para obtener la ecuación de la recta tangente.
0 0 0.5 100%
1 0.5 0.566311 11.71%
2 0.566211 0.567143 0.147%
3 0.567143 0.567143 0%
PSEUDOCÓDIGO
Proceso METODOdelaTANGENTE
Definir xo,eu,i,xo_1,err Como Real
// Se imprime el metodo y la funcion que se esta evaluando
Escribir 'METODO TANGENTE: '
Escribir 'Cálculo de la función:'
Escribir 'f(x)= (e^-x)-x, f´(x)=(-e^-x)-1, xo=0, eu=1%%'
// Leer xo
Escribir 'Ingrese el valor inicial de xo:'
Leer xo
Escribir 'Ingrese el valor de eu;'
Leer eu
Escribir ''
i <- 0
Borrar Pantalla
Repetir
xo_1 <- xo
xo <- xo-(euler^(-xo)-xo)/(-euler^(-xo)-1)
err <- ABS((xo-xo_1)/xo)*100
Escribir 'x',i,' = ',xo,' eu = ',err,'%'
i <- i+1
Hasta Que xo=xo_1 O i=100
Escribir ''
Si i=100 Entonces
Escribir 'La solución no es convergente.'
SiNo
Escribir 'La solución es ',xo
FinSi
FinProceso
DIAGRAMA DE FLUJO
CÓDIGO EN C
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
double f(double x) {
return exp(-x) - x;
}
double df(double x) {
return -exp(-x) - 1;
}
int main() {
// Declaración de variables
double x0, xi, ea, es;
int i = 0;
// Leer X0, Es
printf("Dame el valor inicial X0:\n");
scanf("%lf", &x0);
printf("Dame el error porcentual deseado (Es):\n");
scanf("%lf", &es);
// Evaluación de la función y su derivada
xi = x0 - f(x0)/df(x0);
// Muestra resultados
printf("\t %0.6lf \n", ea);
// Actualización de valores
x0 = xi;
xi = x0 - f(x0)/df(x0);
return 0;
}
Resultado
Conclusiones
• Valencia Caro Andres
En conclusión, el método de la tangente es una herramienta útil en el cálculo diferencial
que nos permite encontrar la recta tangente a una curva en un punto determinado. Este
método se basa en el cálculo de la derivada de la función que representa la curva, lo que
nos permite encontrar la pendiente de la recta tangente y, posteriormente, la ecuación de la
recta. Nos permite analizar y entender mejor el comportamiento de las funciones y sus
relaciones con otras variables.
El método de la tangente tiene aplicaciones importantes en diferentes campos, como la
física, la ingeniería y las ciencias naturales. En la ingeniería, se utiliza para analizar el
comportamiento de estructuras y materiales, y para optimizar diseños y procesos.
En la programación, el método de la tangente se utiliza en la resolución de problemas de
optimización, en la modelización matemática de relaciones entre variables y en el análisis
de datos. Por ejemplo, en el aprendizaje automático, se utilizan algoritmos que utilizan el
método de la tangente para ajustar los modelos a los datos y optimizar los parámetros.
El conocimiento y la capacidad de aplicar el método de la tangente son esenciales para la
resolución de problemas y la creación de soluciones efectivas y eficientes en una amplia
variedad de campos.
• Caballero Aguilar Ximena Jarem
El método de la tangente, también conocido como el método de Newton-Raphson, es un
método numérico utilizado para encontrar raíces de una función en una variable. El método
consiste en aproximar la raíz de la función mediante la recta tangente a la curva en un punto
inicial y repetir el proceso hasta alcanzar la precisión deseada.
En conclusión, el método de la tangente es un método numérico muy eficiente para
encontrar raíces de funciones en una variable, especialmente cuando la función tiene una
raíz única y esta es conocida o puede ser aproximada. Sin embargo, el método no puede
converger si se elige un punto inicial inadecuado o si la función tiene una curvatura muy
pronunciada
Referencias
• Gutiérrez, A. (2013). Historia de la matemática: Una visión crítica, cronológica y cultural
(3ª ed.). México: Pearson.
• Larson, R., & Hostetler, R. P. (2010). Cálculo (8ª ed.). México: McGraw Hill.
• Stewart, J. (2011). Cálculo de una variable: Trascendentes tempranas (7ª ed.). México:
Cengage Learning.
• Thomas, G. B., & Finney, R. L. (2007). Cálculo: Una variable (11ª ed.). México:
Pearson.
• Simmons, G. F. (2010). Cálculo con geometría analítica (2ª ed.). México: McGraw-Hill.
INSTITUTO POLITECNICO NACIONAL
INGENIERÍA ELÉCTRICA
GRUPO: 3EM3
METODOS NUMÉRICOS
EQUIPO 01:
• Caballero Aguilar Ximena Jarem
• Cruz Gasca Oscar Israel
• Rodríguez Hernández Ingrid Itzel
• Valencia Caro Andrés
OBJETIVO
Uno de los objetivos de este método es eliminar el problema de la derivada de la
función, ya que existen funciones que describen fenómenos físicos en la vida
real, cuya derivada es muy compleja.
Podría considerarse como una variante del método Newton-Raphson por todas
las similitudes que tienen, ambas son métodos abiertos, funcionan a partir de
una fórmula que proviene de la pendiente de una gráfica, y tienen las mismas
ventajas y desventajas. A diferencia de Newton-Raphson, el método secante
necesita dos valores de entrada para funcionar y no se necesita evaluar la
derivada de la función en la cual se quiere encontrar la raíz.
MARCO TEÓRICO
En análisis numérico el método de la secante es un método para encontrar los
ceros de una función de forma iterativa. Es una variación del método de Newton-
Raphson donde en vez de calcular la derivada de la función en el punto de
estudio, teniendo en mente la definición de derivada, se aproxima la pendiente a
la recta que une la función evaluada en el punto de estudio y en el punto de la
iteración anterior.
CÁLCULOS
→ i=0
𝑓(𝑥1)(𝑥0 − 𝑥1)
𝑥2 = 𝑥1 −
𝑓 (𝑥0) − 𝑓(𝑥1)
(−0.214602)(0 − 1)
𝑥2 = 1 − = 0.823315
1 − (−0.214602)
0.823315 − 1
𝐸𝑎 = | | (100%) = 21.46%
0.823315
→ i=1
𝑓(𝑥2)(𝑥1 − 𝑥2)
𝑥3 = 𝑥2 −
𝑓 (𝑥1) − 𝑓(𝑥2)
(0.042167)(1 − 0.823315)
𝑥3 = 0.823315 − = 0.853169
−0.214602 − (0.042167)
0.853169 − 0.823315
𝐸𝑎 = | | (100%) = 3.40%
0.853169
→ i=2
𝑓(𝑥3)(𝑥2 − 𝑥3)
𝑥4 = 𝑥3 −
𝑓 (𝑥2) − 𝑓(𝑥3)
𝑓 (𝑥2) = 𝑓 (0.823315) = 𝑎𝑟𝑐𝑡𝑔(0.823315) − 2(0.823315) + 1 = 0.042167
𝑓 𝑥3) = 𝑓 (0.853169) = 𝑎𝑟𝑐𝑡𝑔(0.853169) − 2(0.853169) + 1 = −0.00000704
(
(−0.00000704)(0.823315 − 0.853169)
𝑥4 = 0.853169 − = 0.853169
0.042167 − (−0.00000704)
0.853169 − 0.853169
𝐸𝑎 = | | (100%) = 0.09%
0.853169
La aproximación a la raíz es de x4=0.853169 con en Ea=0.09%
Algoritmo Secante
Definir x0,x1,Err,tem,Ea,i,xr,x2 Como Real
// Le damos valores a las variables
i <- 1
tem <- 1
// Se imprime el metodo y la funcion que se esta evaluando
Escribir ' METODO DE LA SECANTE:'
Escribir ' fx=arctanX-2x+1 x0=0, x1=1, es=1%% '
// Leer x0, x1 y ea
Escribir 'Digite el valor de x0: '
Leer x0
Escribir 'Digite el valor x1: '
Leer x1
Escribir 'Ingrese el error aproximado : '
Leer Ea
Err <- Ea+1
Escribir ' i Xn-1 Xn Error %'
// Inicio del proceso iterativo
Mientras Err>Ea Hacer
xr <- x1-((atan(x1)-2*x1+1)*(x0-x1))/((atan(x0)-2*x0+1)-(atan(x1)-
2*x1+1))
x2 <- x0
x0 <- x1
x1 <- xr
i <- i+1 // Contador para las iteraciones
// Cálculo del error
Err <- abs((xr-tem)/xr)*100
tem <- xr
// Imprime resultados de la tabla
Escribir i-1,' ',x2,' ',x1,' ',Err,' %'
FinMientras
Escribir 'La raiz aproximada es: ',xr,' con un error de: ',Err
FinAlgoritmo
DIAGRAMA DE FLUJO
CODEBLOCKS
#include<stdio.h>
#include<math.h>
int main()
{
//declarar variables
float ea, ess,i, tem, x0, x1, xr;
i = 1;
tem = 1;
printf("\tMETODO DE LA SECANTE:\n");
printf(" fx=arctanX-2x+1 x0=0, x1=1, es=1%% \n");
//Pedir datos
printf("\nDigite el valor de x0: \n");
scanf("%f",&x0);
printf("Digite el valor x1: \n");
scanf("%f",&x1);
printf("Ingrese el error aproximado : \n");
scanf("%f",&ea);
ess = ea+1;
printf("\n i \t\tXi-1 \t\tXi \t\tXi+1 \t\t Error %%\n");
PSEINT
CODEBLOCKS
CONCLUSIONES
• Caballero Aguilar Ximena Jarem
El método de la secante es un método numérico iterativo para encontrar
raíces de una función. Es similar al método de Newton, pero en lugar de
usar la derivada de la función, utiliza una aproximación de la derivada
basada en dos puntos.
La ventaja del método de la secante es que no requiere conocer la
derivada de la función, lo que puede ser difícil de obtener o
computacionalmente costoso. Además, a diferencia del método de
Newton, la secante no puede "fallar" si la derivada de la función es cero
en algún punto.
Sin embargo, el método de la secante puede ser menos eficiente que el
método de Newton, ya que requiere más iteraciones para alcanzar la
convergencia. También puede tener problemas de convergencia si la
función tiene una raíz múltiple o si la función es muy irregular.
En general, el método de la secante es un método útil y ampliamente
utilizado para encontrar raíces de funciones, especialmente cuando no se
dispone de la derivada o cuando el método de Newton no es aplicable.
REFERENCIAS
Chapra S. & Canales R. / Métodos numéricos para ingenieros. / Edit. Mc Graw
Hill . N.Y. 1994, 641p.
INGENIERÍA ELÉCTRICA
GRUPO: 3EM3
METODOS NUMÉRICOS
EQUIPO 01:
• Caballero Aguilar Ximena Jarem
• Cruz Gasca Oscar Israel
• Rodríguez Hernández Ingrid Itzel
• Valencia Caro Andrés
Método de Gauss-Jordán
Objetivo
Implementar y tratar de convertir la parte de la matriz donde están los coeficientes
de las variables en una matriz identidad. Esto se logra mediante simples
operaciones de suma, resta y multiplicación con este método, siendo la base de
los métodos de Gauss, ya que nos ayuda a entender desde un inicio cómo
funcionan especialmente el método de Seidel ya que todos van de la mano y son
semejantes.
El objetivo del método de Gauss-Jordán es simplificar la resolución de un sistema
de ecuaciones lineales, llevándolo a una forma escalonada reducida y luego a una
forma diagonal, para encontrar las soluciones de manera más sencilla y eficiente.
Marco Teórico
El método de Gauss-Jordan es un algoritmo utilizado en álgebra lineal para
resolver sistemas de ecuaciones lineales y encontrar la inversa de una matriz. Fue
desarrollado por el matemático alemán Carl Friedrich Gauss y el matemático suizo
Johann Peter Gustav Lejeune Dirichlet.
Este método debe su nombre a Carl Friedrich Gauss y a Wilhelm Jordan. Se trata
de una serie de algoritmos del álgebra lineal para determinar los resultados de un
sistema de ecuaciones lineales y así hallar matrices e inversas.
1 0 −0.068063 2.523561
(0 1 −0.041885 −2.793193)R1=R3(0.068063)+R1 y R2=R3(0.041885)+R2
0 0 1 7
1 0 0 3.0
(0 1 0 −2.5)
0 0 1 7.0
X¹ = 3.0
X² = -2.5
X³ = 7.0
PSEUDOCÓDIGO
Algoritmo ProcesoGaussJordan
Escribir Sin Saltar "Ingrese el número de ecuaciones (n):";
Leer n;
Dimension matriz[n,n+1];
Dimension literales[n];
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir Sin Saltar "Ingrese la literal de la variable ", i, ":";
Leer literales[i];
FinPara
Para i<-1 Hasta n Con Paso 1 Hacer
Para j<-1 Hasta n Con Paso 1 Hacer
Escribir Sin Saltar "Ingrese el coeficiente de la variable ", literales[j], " de la
ecuación ", i, ":";
Leer matriz[i,j];
FinPara
Escribir Sin Saltar "Ingrese la constante de la ecuación ", i, ":";
Leer matriz[i,n+1];
FinPara
Escribir "";
Para i<-1 Hasta n Con Paso 1 Hacer
Si matriz[i,i]=0 Entonces
Escribir "Error: división entre cero.";
Escribir "";
FinSi
Para k<-1 Hasta n Con Paso 1 Hacer
Si k<>i Entonces
termino <- matriz[k,i]/matriz[i,i];
Para j<-1 Hasta n+1 Con Paso 1 Hacer
matriz[k,j] <- matriz[k,j]-termino*matriz[i,j];
FinPara
FinSi
FinPara
FinPara
Escribir "Solución:";
Escribir "";
Para i<-1 Hasta n Con Paso 1 Hacer
termino <- matriz[i,n+1]/matriz[i,i];
Escribir literales[i], " = ", termino;
FinPara
FinAlgoritmo
DIAGRAMA DE FLUJO
CODIGO C
#include<stdio.h>
// Subrutinas dentro del algoritmo,
// Que reciben datos de este y ejecutan un algoritmo por separado.
void imprimir(int filas, int columnas, float * );
void pivotear(int filas, int columnas, float , float,float*,int j);
main()
{
// Definicion de las dimensiones de la matriz y captura de los datos de esta
int filas = 0, columnas = 0;
//Metodo de gauss-jordan
float pivoteaux = 0;
float vectorPivote[columnas];
float vectorPivoteaux[columnas];
float n = 0;
}
// Opera sobre toda la fila sin importar que esta contenga ya un pivote
for(int k = 0; k < columnas; k++)
{
MatrizA[i][k] = (-1*n*vectorPivote[k]) + MatrizA[i][k];
if(i == j )
{
// Para evitar que se altere la fila pivote se realizan las
siguientes asignaciones.
for(int l = 0; l < columnas; l++)
{
MatrizA[i][l] = vectorPivoteaux[l];
if(MatrizA[i][l] == -0)
{
MatrizA[i][l] = 0;
}
}
}
imprimir(filas,columnas,&MatrizA[0][0]);
}
}
}
void pivotear(int filas, int columnas, float *MatrizA, float *vectorPivote, float
*vectorPivoteaux, int j)
{
float pivoteaux = 0;
float matrizTemporal[filas][columnas];
int sumi = 0;
//Copiamos los datos de la MatrizA a una matriz temporal porque al enviarla como
apuntador esta se convierte en un vector.
//Una vez copiados los datos en una matriz temporal operamos para obtener el
pivote y su fila asociada
for(int i = 0; i<filas;i++)
{
if(i == j )
{
// Suponemos que el pivote esta en la posicion (i,j) y lo
calculamos dividiendo el numero en esa posicion entre si mismo.
pivoteaux = matrizTemporal[i][j];
printf("Pivote: %f\n",pivoteaux);
// En la matriz temporal realizamos la divicion de toda la fila
donde se encuentra el pivote y la guardamos en la matriz temporal y en dos vectores que
usaremos mas tarde.
for(int l = 0; l < columnas; l++)
{
matrizTemporal[i][l] = matrizTemporal[i][l] /
pivoteaux;
vectorPivote[l] = matrizTemporal[i][l];
vectorPivoteaux[l] = matrizTemporal[i][l];
}
}
}
//Luego pasamos los datos de la matriz temporal a nuestra matriz de trabajo MA.
sumi = 0;
}
RESULTADO
CONCLUSIONES
• Caballero Aguilar Ximena Jarem:
El método de Gauss-Jordan es un algoritmo numérico utilizado para
resolver sistemas de ecuaciones lineales mediante la eliminación de Gauss
y la eliminación de Gauss-Jordan. Este método se basa en la
transformación de la matriz de coeficientes del sistema en una matriz
escalonada reducida por filas.
La conclusión del método de Gauss-Jordan es que es un método muy
eficiente y preciso para resolver sistemas de ecuaciones lineales, ya que
proporciona soluciones exactas y puede manejar sistemas con un gran
número de variables. Sin embargo, su implementación es más compleja que
otros métodos como la eliminación de Gauss y requiere más operaciones
aritméticas, lo que puede aumentar su tiempo de ejecución. Además, en
algunos casos, la matriz del sistema no puede tener solución o tener
soluciones infinitas, lo que debe ser considerado al utilizar este método.
• Cruz Gasca Oscar Israel:
En conclusión, el método de Gauss-Jordan es un algoritmo utilizado para
resolver sistemas de ecuaciones lineales mediante la eliminación de Gauss,
este método es la base también del método de Seidel pero la diferencia entre
ambos es que este en este no importa el orden de las ecuaciones y en Seidel
si, a mi punto de vista este es más fácil porque no tienes necesidad de hacer
iteraciones, solo ocupas, las operaciones principales.
INGENIERÍA ELÉCTRICA
GRUPO: 3EM3
METODOS NUMÉRICOS
EQUIPO 01:
• Caballero Aguilar Ximena Jarem
• Cruz Gasca Oscar Israel
• Rodríguez Hernández Ingrid Itzel
• Valencia Caro Andrés
Objetivo
Encontrar las aproximaciones de los valores de las variables de un sistema de
ecuaciones lineales, por medio de la realización de varios cálculos, los cuales
se realizan por etapas, obteniendo así aproximaciones por cada etapa.
El método de Gauss Seidel permite hallar las aproximaciones a una solución de
sistemas de ecuaciones lineales, utilizando los valores calculados en cada uno
de las etapas para hallar los nuevos valores, es decir, el método supone que
una vez que se conoce el nuevo valor de una de las variables se utiliza para
determinar el valor de las que faltan.
Marco Teórico
El método de eliminación para resolver ecuaciones simultáneas suministra
soluciones suficientemente precisas hasta para 15 o 20 ecuaciones. El número
exacto depende de las ecuaciones de que se trate, del número de dígitos que
se conservan en el resultado de las operaciones aritméticas, y del procedimiento
de redondeo. Utilizando ecuaciones de error, el número de ecuaciones que se
pueden manejar se puede incrementar considerablemente a más de 15 o 20,
pero este método también es impráctico cuando se presentan, por ejemplo,
cientos de ecuaciones que se deben resolver simultáneamente. El método de
inversión de matrices tiene limitaciones similares cuando se trabaja con números
muy grandes de ecuaciones simultáneas.
Sin embargo, existen varias técnicas que se pueden utilizar, para resolver
grandes números de ecuaciones simultáneas. Una de las técnicas más útiles es
el método de Gauss-Seidel. Ninguno de los procedimientos alternos es
totalmente satisfactorio, y el método de Gauss-Seidel tiene la desventaja de que
no siempre converge a una solución o de que a veces converge muy lentamente.
Sin embargo, este método convergirá siempre a una solución cuando la
magnitud del coeficiente de una incógnita diferente en cada ecuación del
conjunto, sea suficientemente dominante con respecto a las magnitudes de los
otros coeficientes de esa ecuación.
Es difícil definir el margen mínimo por el que ese coeficiente debe dominar a
los otros para asegurar la convergencia y es aún más difícil predecir la velocidad
de la convergencia para alguna combinación de valores de los coeficientes
cuando esa convergencia existe. No obstante, cuando el valor absoluto del
coeficiente dominante para una incógnita diferente para cada ecuación es mayor
que la suma de los valores absolutos de los otros coeficientes de esa ecuación,
la convergencia está asegurada. Ese conjunto de ecuaciones simultáneas lineales
se conoce como sistema diagonal.
Un sistema diagonal es condición suficiente para asegurar la convergencia pero
no es condición necesaria. Afortunadamente, las ecuaciones simultáneas lineales
que se derivan de muchos problemas de ingeniería, son del tipo en el cual
existen siempre coeficientes dominantes.
La secuencia de pasos que constituyen el método de Gauss-Seidel es la
siguiente:
𝑗 −19.3−0.1𝑥1 +0.3𝑥3
𝑥2 = ………. (GS-2)
7.0
𝑗 7.4−0.3𝑥1 +0.2𝑥2
𝑥3 = …………. (GS-3)
10
𝑗=0
2.616667 − 0
𝐸𝑎, 1 = | | 𝑥100% = 100%
2.616667
𝐸𝑎, 2 = 100%
𝐸𝑎, 3 = 100%
𝑗=1
7.85 + 0.1(−2.794524) + 0.2(7.005610)
𝑥11 = = 2.990557
3.0
2.990557 − 2.616667
𝐸𝑎, 1 = | | 𝑥100% = 12.50%
2.990557
−2.499625 + 2.794524
𝐸𝑎, 2 = | | 𝑥100% = 11.80%
−2.499625
7.000291 − 7.005610
𝐸𝑎, 2 = | | 𝑥100% = 0.076%
7.000291
j=2
7.85+0.1(−2.499625)+0.2(7.000291)
x1²= = 3.000032
3.0
−19.3−0.1(3.000032)+0.3(7.000291)
x2²= = −2.499988
3.0
71.4−0.3(3.000032)+0.2(−2.499988)
x3²= = 6.999999
3.0
3.000032−2.990557
Ea¹= = 𝑥100% = 0.3159%
3.000032
−2.499988+2.499625
Ea²= = 𝑥100% = 0.01452%
−2.499988
6.999999−7.000291
Ea³= = 𝑥100% = 0.0042%
6.999999
Referencias
• (2023). Métodos Numéricos. Recuperados de:
http://aniei.org.mx/paginas/uam/CursoMN/curso_mn_12.html