Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lab de Metodos 4

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA MECÁNICA

MÉTODOS NUMÉRICOS (7895)

LABORATORIO #4

SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

Nombre: Gómez, Samuel C.I.P: E-8-166158

Barreiro, Ángel 8-963-171

Cedeño, Shadia 8-960-2222

Profesor de laboratorio: Coby Aldeano Profesor de teoría: Said Vargas


Fecha: 07/11/2021

Introducción.

A. Métodos Directos.
1. Haga un programa function que genere una matriz tridiagonal cuadrada de orden n. En donde los elementos
de las diagonales son valores a, b, c, y los elementos fuera de la diagonal son cero. Los valores a, b, c, n deben ser
valores de entrada de la función.
2. Usando el programa, determine si la matriz es no singular mediante el comando rank. Si n=10, a=4, b=c=1.

3. Scilab cuenta con sus propias comando para resolver sistemas de ecuaciones lineales. Uno de esto es el comando
backlash “\”, que funciona de forma similar a la inversa de la matriz, es decir, A\b = inv(A)*b. Mientras el comando lu
realiza la descomposición LU con pivoteo. Para la matriz A calculada en el paso anterior, utilice el comando \, y lu,
resuelva el sistema
Ax = b. Ingrese un vector b cualquiera para resolver el sistema. Compare las soluciones obtenidas, y calcule la diferencia
los residuos r=b-Ax.
USANDO COMANDO “\”

USANDO LU
4. Con la matriz A, y el vector b ejecute y compare las respuestas para x=A\b, y x= inv(A)*b

5. En muchas ocasiones se tendrá que revolver varios sistemas de ecuaciones Axi = bi, con la misma matriz A. Para esto
es conveniente generar la matriz B con los diferentes vectores de salida, y resolver un sistema matricial AX=B. Donde la
matriz B esta definida como,

a. Para demostrar lo mencionado arriba escriba y ejecute el siguiente código


b. Analice y describa que hace el programa. Utilice help para ayudarse en los comandos que no conoce.

c. Adicione comentarios a cada línea para describir que hace.

d. Compare y justifique la diferencia en los tiempos de ejecución.

Viendo notablemente que el segundo método es mas rápido en la ejecución del cálculo.

6. Como se ha visto en el ejercicio anterior de cierta forma no es conveniente resolver utilizando la matriz inversa de A.

a. Escriba y ejecute el programa.


b. Analice y describa que hace el programa. Utilice help para ayudarse en los comandos que no conoce.

c. Adicione comentarios a cada línea para describir que hace.


d. Identifique qué alternativa es más eficiente
B. Métodos indirectos o iterativos

Los métodos iterativos para la solución de sistemas de ecuaciones se inician con un vector de solución inicial
𝑥 (0) y genera una sucesión de vectores {𝑥 (𝑘) } 𝑘=0 ∞ que converge a x. Estos métodos indirectos
transforman el sistema Ax = b en otro equivalente de la forma 𝒙 = 𝑻𝒙+ 𝒄 para una matriz fija T y un vector c.
Dado un sistema de m ecuaciones con n incógnitas, al escribir de forma explícita el sistema de ecuaciones, se
puede obtener el sistema equivalente,

De modo que la solución aproximada una vez seleccionada el vector 𝑥 (0) , es 𝑥 (𝑖+1) = 𝑻𝒙 (𝑖) +𝑐.

1. Para un sistema de ecuaciones 3x3 mostrada. Determine, para la matriz siguiente, su forma
equivalente 𝑥 (𝑖+1) = 𝑻𝒙 (𝑖) + c.

clc
clear
function [x, it, rh, t]=gauss_seidel(A, b, x0, maxit, tol)//Declaración de variables
tic();//principio del contador
t=0;
rh=zeros(maxit);//Se usa para una matriz del tamaño de maxit
n=size(A,1);//Arroja una matriz de tamaño A por 1
for it=1:maxit//bucle anidado para la matriz maxit
x=x0;
for i=1:n//bucle anidado para la matriz A por 1
x(i)=(b(i)-sum(A(i,1:i-1)*x(1:i-1))-sum(A(i,i+1:n)*x0(i+1:n)))/A(i,i);//Ecuación del sistema de Gaus Seidel
end
rh(it)=norm(x-x0, 'inf');//Se utiliza para hayar la mayor diferencia entre x y x0
if(rh(it)<tol) then
break;//salta al final del ciclo
end
x0=x;
end
t=t+toc();//Final del contador
disp("El número de iteraciones es= "+string(it))//Imprimir las iteraciones calculadas
disp("El tiempo que tarda es= "+string(t))//Imprimir el tiempo que tarda en hacer los calculos
endfunction

2. Haga una function que genere el proceso iterativo de Jacobi para el sistema lineal Ax = b. Como
parámetros la función debe tener el número de incógnitas n, la matriz A, el vector b, el error de
convergencia, y el número de iteraciones. El programa debe entregar el vector de soluciones con el
número de iteraciones necesarias para alcanzar la convergencia. En caso de no se alcanzar el error
deseado con la cantidad máxima de iteraciones, debe mandar un mensaje de que no se llegó a la
convergencia.

3. Realizar lo del punto anterior para el método de Gauss-Seidel.

4. Busque como tratar sistemas con matrices dispersas con scilab.

En análisis numérico, una matriz dispersa es una matriz poblada principalmente con ceros. Las matrices
dispersas enormes a menudo aparecen en ciencia o ingeniería cuando se resuelven ecuaciones
diferenciales parciales. Scilab proporciona varias características para manejar matrices dispersas y
realizar operaciones habituales de álgebra lineal en ellos. Comandos Básicos de Scilab para matrices
dispersas:

[ CITATION Mic11 \l 2058 ].

En cada código, se debe comentar cada línea, indicando qué se está haciendo. Los mismos deben ser
copiados y pegados en el informe.2.

5. Explique cómo funciona el programa.

6. En qué coordenadas del plano se intersecan la función 𝑒 −𝑥 con 𝑓(𝑥) = 𝑥

7. Cuál es la solución del sistema de ecuaciones { 𝑥 2 + 𝑥𝑦 = 10 𝑦 + 3𝑥𝑦 2 = 57

8. Resuelva { 𝑥 2 + 𝑥𝑦 = 10 𝑦 + 3𝑥𝑦 2 = 57

9. Encuentre los dos puntos donde se intersecan la circunferencia 𝑥 2 + 𝑦 2 = 5𝑥 + 6𝑦 + 8 con la curva


𝑓(𝑥) = 𝑥 3 + 3

Nota: El número de iteraciones, error de redondeo y puntos iniciales contenidos en el vector x0, pueden ser
cambiados a su gusto. Esta actividad entra dentro del laboratorio de solución de sistemas de ecuaciones.

Conclusión

Bibliografía

Baudin, M. (Noviembre de 2011). Introduction to Sparse Matrices In Scilab. Obtenido de Introduction to


Sparse Matrices In Scilab: https://www.scilab.org/sites/default/files/scisparse-v0.6.pdf

También podría gustarte