Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Códigos diseñados en matlab, Ejercicios de Algoritmos y Programación

El archivo contiene unos códigos que fueron diseñados en matlab para la materia de algoritmos numericos

Tipo: Ejercicios

2021/2022

Subido el 21/04/2023

laura-manuella-pena
laura-manuella-pena 🇨🇴

1 documento

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Daniel Felipe Torres - Laura manuella Peña
Algoritmos numéricos
1. Escribir en matlab una función a la cual se le pasa la matriz A y el vector b,
y la función retorna la solución del sistema Ax=b, utilizando un método
directo (gauss, matrices LU, con la inversa).
Método Gauss-Jordan
function x=gauss1(A,b)
n=size(A,1);
for i=1:n
b(i)=b(i)/A(i,i);
A(i,:)=A(i,:)/A(i,i);
for l=1:n
if (l~=i)
b(l)=b(l)-A(l,i)*b(i);
A(l,:)=A(l,:)-A(l,i)*A(i,:);
end
end
end
x=b;
Ventana de comando
A=[ 1 2 -3; 3 5 0; -2 -1 3]
A =
1 2 -3
3 5 0
-2 -1 3
>> b=[1;6;3]
b =
1
6
3
>> gauss1(A,b)
ans =
-1.7500
2.2500
0.5833
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Códigos diseñados en matlab y más Ejercicios en PDF de Algoritmos y Programación solo en Docsity!

Algoritmos numéricos

  1. Escribir en matlab una función a la cual se le pasa la matriz A y el vector b, y la función retorna la solución del sistema Ax=b, utilizando un método directo (gauss, matrices LU, con la inversa). Método Gauss-Jordan function x=gauss1(A,b) n=size(A,1); for i=1:n b(i)=b(i)/A(i,i); A(i,:)=A(i,:)/A(i,i); for l=1:n if (l~=i) b(l)=b(l)-A(l,i)b(i); A(l,:)=A(l,:)-A(l,i)A(i,:); end end end x=b; Ventana de comando A=[ 1 2 -3; 3 5 0; -2 -1 3] A = 1 2 - 3 5 0 -2 -1 3

b=[1;6;3] b = 1 6 3 gauss1(A,b) ans = -1.

Algoritmos numéricos

  1. Escribir en matlab una función a la cual se le pasa la matriz A y el vector b, una cantidad de iteraciones y un error relativo máximo, y la función retorna la solución del sistema Ax=b, utilizando un método iterativo (jacobi, gauss- seidel, relajación). function [S,inter,error]=jacobi2(A,b,n,delta) d=diag(diag(A)); l=tril(A)-d; u=triu(A)-d; x=[0;0;0]; xa=x; for inter=1:n x=(inv(d))(b-ux-l*x); error=min(abs(x-xa)); xa=x; if (error<=delta) S=x; return end end S=x; fprintf('El numero de interacciones es: %f \n',inter) fprintf('El error relativo maximo es: %f', error) Ventana de comando

A=[1 3 6; -2 5 -1; 3 6 -4] A = 1 3 6 -2 5 - 3 6 - b=[2;-4;1] b = 2

1

jacobi2(A,b,3,0.001) El numero de interacciones es: 3. El error relativo maximo es: 1. ans =

Algoritmos numéricos Método Gauss-Jordán function x=gauss1(A,b) n=size(A,1); for i=1:n b(i)=b(i)/A(i,i); A(i,:)=A(i,:)/A(i,i); for l=1:n if (l~=i) b(l)=b(l)-A(l,i)b(i); A(l,:)=A(l,:)-A(l,i)A(i,:); end end end x=b; Ventana de comando gauss1(A,b) ans =

Jacobi function [S,inter,error]=jacobi2(A,b,n,delta) d=diag(diag(A)); l=tril(A)-d; u=triu(A)-d; x=[0;0;0]; xa=x; for inter=1:n x=(inv(d))(b-ux-l*x); error=min(abs(x-xa)); xa=x; if (error<=delta) S=x; return end end S=x; fprintf('El numero de interacciones es: %f \n',inter) fprintf('El error relativo maximo es: %f', error) Ventana de comando

Algoritmos numéricos Se realizo una modificación en la matriz A y en el vector b, se intercambiaron las filas 1 y 2 para que en la diagonal queden los términos mayores. A = -3 4 6 1 2 0 -1 -2 3

b=[30;6;8] b = 30 6 8 jacobi2(A,b,50,0.001) El numero de interacciones es: 50. El error relativo maximo es: 0. ans =

A=[2 1 2 1; 4 3 7 3; -8 -1 -1 3; 6 1 2 -1] A = 2 1 2 1 4 3 7 3 -8 -1 -1 3 6 1 2 -

b=[5;8;4;1]

Algoritmos numéricos Dimensiones incorrectas para la multiplicación de matrices. Verifique que el número de columnas en la primera matriz coincida con el número de filas en la segunda matriz.

A=[1 1 -3 1; 2 -1 1 -2; 7 1 -7 3] A = 1 1 -3 1 2 -1 1 - 7 1 -7 3 b=[5;2;3] b = 5 2 3 linsolve(A,b) ans = -1. 0 -3. -4. gauss gauss1(A,b) ans =

Algoritmos numéricos -Inf -Inf -Inf Jacobi Las matrices tienen tamaños incompatibles