You are on page 1of 10

ESCUELA POLITÉCNICA DEL EJÉRCITO

Métodos Numéricos
Trabajo 3

Integrantes:
Carlos Jácome
Eduardo Tayupanta

NRC:4759

Docente Mgs. Fabián Ordóñez

21 de octubre de 2013

Resumen
El siguiente documento contiene soluciones a ejercicios propuestos,utilizando como
herramienta el Software Matlab,además de los conceptos fundamentales de la
asignatura Métodos Numéricos.

1
Métodos Numéricos

Índice
1. Ejercicio 1 2

2. Ejercicio 2 4

3. Ejercicio 3 4

4. Ejercicio 4 5

5. Ejercicio 5 6

6. Ejercicio 6 6

1. Ejercicio 1
Desarrolle un código que permita calcular el producto matricial.

Para realizar el producto matricial se debe tomar en cuenta, que el tamaño de las colum-
nas de la primera matriz debe ser igual al tamaño de las filas de la segunda matriz, para que
exista el producto matricial, además el orden de la matriz respuesta depende del número de
filas de la primera matriz y del número de columnas de la segunda matriz:

El producto matricial se realiza de la siguiente manera:

2 C.Jácome ,E.Tayupanta
Métodos Numéricos

Código:

function x=prodmatricial(A,B)
A=[1 2 2; -1 0 3];
B=[1 0 -1 3; 0 1 4 5; 3 -2 1 0];

[fA cA]=size(A);
[fB cB]=size(B);
if cA==fB
for i=1:fA
for j=1:cB
x(i,j)=A(i,:)*B(:,j);
end
end
else
disp(’No existe el producto matricial’)
return
end

Ejecución:

ans =

7 -2 9 13
8 -6 4 -3

3 C.Jácome ,E.Tayupanta
Métodos Numéricos

2. Ejercicio 2
Desarrolle un código que permita determinar la transpuesta de una matriz.

Para obtener la transpuesta de una matriz, se necesita que las filas pasen a ser columnas
o viceversa.

Código:

function x=transpuesta(A)
A=[1 2 ; 4 5 ; 0 9 ]
[fA cA]=size(A);
for i=1:cA
for j=1:fA
x(i,j)=A(j,i);
end
end

Ejecución:

ans =

1 4 0
2 5 9

3. Ejercicio 3
Desarrolle un código para calcular el producto escalar.

El producto escalar consiste en multiplicar a cada elemento de la matriz por un número


real, diferente de cero.

Código:

function x=prodesca( A,B )

A=[1 2 4 5]
B=[1 4 3 1]

[fa,ca]=size(A);
[fb,cb]=size(B);

x=0;

if ca~=cb
error(’No existe Producto Escalar’)

4 C.Jácome ,E.Tayupanta
Métodos Numéricos

end

for i=1:ca
x=x+A(1,i)*B(1,i);
end

end

Ejecución:

prodesca

A =

1 2 4 5

B =

1 4 3 1

ans =

26

4. Ejercicio 4
Desarrolle un código que calcule la norma de un vector.

Código:

%Ejercicio 4
function x = normavect( A )

A=[1 2 3 1 2 4]

%f es fila
%c es columna
[f,c]=size(A);

norm=0;

for i=1:c

5 C.Jácome ,E.Tayupanta
Métodos Numéricos

norm=norm+A(1,i)^2;
end
x=sqrt(norm);
end

Ejecución:

>> normavect

A =

1 2 3 1 2 4

ans =

5.9161

5. Ejercicio 5
Construya un código para determinar la traza de una matriz.

Código:

%Ejercicio 5
function tr=trazavect( A )
A=[1 2 3 4 8;1 2 3 9 4;5 4 4 5 9;3 1 9 8 7;5 8 9 7 8]

[f,c]=size(A);

if f~=c
fprintf(’No se puede realizar el cálculo de la Traza\n’)
return
end

tr=0;

for i=1:f
tr=tr+A(i,i);
end
end

Ejecución:

>> trazavect

6 C.Jácome ,E.Tayupanta
Métodos Numéricos

A =

1 2 3 4 8
1 2 3 9 4
5 4 4 5 9
3 1 9 8 7
5 8 9 7 8

ans =

23

6. Ejercicio 6
Construya un código para determinar la inversa de una matriz A, siendo A ∈ Rnxn
una matriz no singular, la matriz inversa puede calcularse resolviendo el sistema matricial
AX = In.

Código:
Matriz Inversa:
%Ejercicio 6
function s=matrinv( A )

A=[2 1;4 3]
%Respuesta x= 1.5000 -0.5000
% -2.0000 1.0000

%A=[3 4 6;7 8 9;3 4 5]


%Respuesta x= 1.0000 1.0000 -3.0000
% -2.0000 -0.7500 3.7500
% 1.0000 0 -1.0000

%A=[5 3 3 9; 4 8 4 1;3 5 6 1;5 4 7 2]


%Respuesta x= -0.0596 0.2119 -0.7219 0.5232
% 0.0155 0.1302 0.1501 -0.2097
% -0.0066 -0.1987 0.3642 -0.0530
% 0.1413 -0.0949 0.2296 -0.2031

[f,c]=size(A);

7 C.Jácome ,E.Tayupanta
Métodos Numéricos

if f~=c
error(’No se puede calcular su inversa’)
return
end

x=zeros(f*c);

p=1;
for l=1:f
for i=1:f
k=1;
for j=1*l:f:f*c
x(p,j)=A(i,k);
k=k+1;
end
p=p+1;
end
p=l*f+1;
end

B=x;

for a=1:f+1:f*c
b(a,1)=1;
end

x=gauss(B,b);

d=1;
for o=1:f
for z=1:f
s(o,z)=x(1,d);
d=d+1;
end
end
end
Gauss:
%Programa para resolver un sistema lineal de ecuaciones
%utilizando el método de Gauss obteniendo una matriz triangular superior
function x=gauss(A,b)

[n,n]=size(A);

Ab=[A b];

8 C.Jácome ,E.Tayupanta
Métodos Numéricos

for k=1:n-1
[p,q]=max(abs(Ab(k:n,k)));
if p==0
error(’La matriz es singular’)
return
end
m = k + q -1;%Real ubicación del elemento máximo
Ab=cambiofilas(Ab,k,m);
for j=k+1:n
Ab=combinacionfilas(Ab,k,j, - Ab(j,k)/Ab(k,k));
end
end

x=matriztriansup(Ab(:,1:n),Ab(:,n+1));
Cambio Filas:
%Programa que nos permite intercambiar filas y columnas de una matriz
function B = cambiofilas(A,i,j)
B=A;
B(i,:)=A(j,:);
B(j,:)=A(i,:);
end
Cambinación de Filas:
%Programa que permite sumar dos filas, una de ellas multiplicada por c

function B= combinacionfilas(A,i,j,c)

[m,n]=size(A);

if i<1|i>n|j<1|j>n
error(’Indices no válidos’);
return
end

if i==j
error(’Matriz Múltiplo’);
return
end

B=A;

B(j,:)=A(j,:)+c*A(i,:);

9 C.Jácome ,E.Tayupanta
Métodos Numéricos

end

Matriz Triangular Superior:

%Programa que permite resolver un sistema


function x= matriztriansup( A,b )

[n,n]=size(A);

x(n)=b(n)/A(n,n);

for i=n-1:-1:1
x(i)=(b(i)-A(i,i+1:n)*x(i+1:n)’)/A(i,i);
end
end

Ejecución:

>> matrinv

A =

2 1
4 3

ans =

1.5000 -0.5000
-2.0000 1.0000

10 C.Jácome ,E.Tayupanta

You might also like