You are on page 1of 10

ESCUELA POLITECNICA

DEL EJERCITO
Metodos Numericos
Trabajo 3
Integrantes:
Carlos Jacome
Eduardo Tayupanta
NRC:4759

Docente Mgs. Fabian Ordo nez


21 de octubre de 2013
Resumen
El siguiente documento contiene soluciones a ejercicios propuestos,utilizando como
herramienta el Software Matlab,ademas de los conceptos fundamentales de la
asignatura Metodos Numericos.

Metodos Numericos

Indice
1. Ejercicio 1

2. Ejercicio 2

3. Ejercicio 3

4. Ejercicio 4

5. Ejercicio 5

6. Ejercicio 6

1.

Ejercicio 1

Desarrolle un codigo
que permita calcular el producto matricial.

de las columPara realizar el producto matricial se debe tomar en cuenta, que el tamano
de las filas de la segunda matriz, para que
nas de la primera matriz debe ser igual al tamano

exista el producto matricial, ademas el orden de la matriz respuesta depende del numero
de

filas de la primera matriz y del numero


de columnas de la segunda matriz:

El producto matricial se realiza de la siguiente manera:

C.Jacome ,E.Tayupanta

Metodos Numericos

Codigo:

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
Ejecucion:

ans =
7
8

-2
-6

9
4

13
-3

C.Jacome ,E.Tayupanta

Metodos Numericos

2.

Ejercicio 2

Desarrolle un codigo
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.
Codigo:

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
Ejecucion:

ans =
1
2

3.

4
5

0
9

Ejercicio 3

Desarrolle un codigo
para calcular el producto escalar.

El producto escalar consiste en multiplicar a cada elemento de la matriz por un numero


real, diferente de cero.
Codigo:

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.Jacome ,E.Tayupanta

Metodos Numericos

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

prodesca
A =
1

B =

ans =
26

4.

Ejercicio 4

Desarrolle un codigo
que calcule la norma de un vector.

Codigo:

%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.Jacome ,E.Tayupanta

Metodos Numericos

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

>> normavect
A =
1

ans =
5.9161

5.

Ejercicio 5

Construya un codigo
para determinar la traza de una matriz.

Codigo:

%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
alculo de la Traza\n)
return
end
tr=0;
for i=1:f
tr=tr+A(i,i);
end
end
Ejecucion:

>> trazavect
6

C.Jacome ,E.Tayupanta

Metodos Numericos

A =
1
1
5
3
5

2
2
4
1
8

3
3
4
9
9

4
9
5
8
7

8
4
9
7
8

ans =
23

6.

Ejercicio 6

Construya un codigo
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.

Codigo:

Matriz Inversa:
%Ejercicio 6
function s=matrinv( A )
A=[2 1;4 3]
%Respuesta x= 1.5000
%
-2.0000

-0.5000
1.0000

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


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

-3.0000
3.7500
-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.0155
0.1302
0.1501
%
-0.0066
-0.1987
0.3642
%
0.1413
-0.0949
0.2296

0.5232
-0.2097
-0.0530
-0.2031

[f,c]=size(A);

C.Jacome ,E.Tayupanta

Metodos Numericos

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
etodo de Gauss obteniendo una matriz triangular superior
function x=gauss(A,b)
[n,n]=size(A);
Ab=[A b];
8

C.Jacome ,E.Tayupanta

Metodos Numericos

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
on del elemento m
aximo
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
Cambinacion
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
alidos);
return
end
if i==j
error(Matriz M
ultiplo);
return
end
B=A;
B(j,:)=A(j,:)+c*A(i,:);

C.Jacome ,E.Tayupanta

Metodos Numericos

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
Ejecucion:

>> matrinv
A =
2
4

1
3

ans =
1.5000
-2.0000

-0.5000
1.0000

10

C.Jacome ,E.Tayupanta

You might also like