Professional Documents
Culture Documents
DEL EJERCITO
Metodos Numericos
Trabajo 3
Integrantes:
Carlos Jacome
Eduardo Tayupanta
NRC:4759
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
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.
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
-3.0000
3.7500
-1.0000
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