FACULTAD DE INGENIERÍA ELECTRÓNICA
Mag José Luis Acuña Guillermo
1
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
GUIA LABORATORIO N°1
Asignatura: Métodos Numéricos
Prof. Mag. José Luis
Acuña Guillermo
ElnombredeMATLABprovienedela
contraccióndelostérminosMATrix
LABoratory
Mag José Luis Acuña Guillermo
2
INTRODUCCIÓN AL MATLAB
MATLAB es un entorno de
computación y desarrollo de
aplicaciones totalmente
integrado orientado para llevar
a cabo proyectos en donde se
encuentren implicados elevados
cálculos matemáticos y la
visualización gráfica de los
mismos.
Mag José Luis Acuña Guillermo
3
Mag José Luis Acuña Guillermo
4
Para iniciar MATLAB, seleccionamos el programa
MATLAB de un menú del sistema.
Mag José Luis Acuña Guillermo
5
EnlaventanadelCommand Windowestá
esperandoqueintroduzcamosuncomando.
Mag José Luis Acuña Guillermo
6
Llevar un diario de trabajo
Elcomandodiary('file')ordenaaMATLABque
grabetodaslaoperacionesqueserealizanen
suventanayqueguardelosresultadosenel
archivodetextodenombre‘file’.
Alescribirdiaryonydiaryoffactivaydesactivala
grabación.EnMATLABsepuedenvisualizar
utilizandoelcomandotypefile.
Mag José Luis Acuña Guillermo
7
VECTORES Y MATRICES EN
MATLAB
Mag José Luis Acuña Guillermo
14
Los vectores se pueden introducir separando sus
componentes por espacios en blanco o por comas.
Para definir una matriz en MATLAB, basta
con introducir entre corchetes todos sus
vectores fila separados por punto y coma.
Mag José Luis Acuña Guillermo
15
>> a=[1, 2, 3, 4] % vector fila
a =
1 2 3 4
>> a=[1 2 3 4];
>> b=[4; 2; -3; 4] % vector columna
b =
4
2
-3
4
>> u=0:5
u =
0 1 2 3 4 5
>> v=0:2:10
v =
0 2 4 6 8 10
>> d=u+v% suma de vectores
d =
0 3 6 9 12 15
>> c=a+1 % caso especial
c =
2 3 4 5
>> m=7*a % escalar por un vector
m =
7 14 21 28
Mag José Luis Acuña Guillermo
16
GENERACIÓN DE VECTORES POR linspace
variable=linspace(primer_elemento, último_elemento, n)
Define el vector cuyos primer y último elemento son los especificados, y
que tiene en total n elementos uniformemente espaciados
>> v=linspace(0,4,11)
v =
0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.2000 3.6000 4.0000
Mag José Luis Acuña Guillermo
17
>> %producto de matrices
>> P=A*C
P =
30 70 110
70 174 278
110 278 446
>> E=[1 2;3 4]
E =
1 2
3 4
>> E^3 %potencia matricial=E*E*E
ans =
37 54
81 118
Mag José Luis Acuña Guillermo
19
Números
Podemos realizar el cálculo de una potencia directamente
>> 100^50
ans=
1.0000e+100
Incluso Matlab puede mostrar el resultado exacto incluso cuando
tiene más dígitos de los que cabrían a lo ancho de la pantalla
>> vpa(pi,50)
ans =
3.1415926535897932384626433832795028841971693993751Mag José Luis Acuña Guillermo
20
MÉTODO DE BISECCIÓN
function[raiz, iter] = biseccion2(func, a, b, tol, maxIter)
iffunc(a) * func(b) >= 0
error('El intervalo [a,b] no es válido: f(a) y f(b) deben tener signos opuestos.');
end
fprintf('Iter\t a\t\t b\t\t c\t\t f(c)\n');
foriter= 1:maxIter
c = (a + b) / 2; % punto medio
fc= func(c);
fprintf('%d\t %.6f\t %.6f\t %.6f\t %.6f\n', iter, a, b, c, fc);
ifabs(fc) < tol || (b -a) / 2 < tol
raiz= c;
return;
end
% Reducir intervalo
iffunc(a) * fc< 0
b = c;
else
a = c;
end
end
raiz= (a + b) / 2;
fprintf('Número máximo de iteraciones alcanzado. La raíz aproda es %.6f', raiz);
end
Mag José Luis Acuña Guillermo
21
Ejercicios
Para cada una de las siguientes funciones, halle un
intervalo [a,b] de manera que f(a) y f(b) tengan signo
distinto.
a)�??????=�
??????
−2−??????
b)�??????=cos??????+1−??????
c)�??????=ln??????−5+??????
d)�??????=??????
2
−10??????+23
¿Qué ocurrirá si usamos el método de Bisección con
�??????=1/(??????−2)en
a)el intervalo 3,7?
b)En intervalo 1,7?
Mag José Luis Acuña Guillermo
23
¿Qué ocurrirá si usamos el método de Bisección con
�??????=??????????????????(??????)en
a)el intervalo 3,4?
b)En intervalo 1,3?
Supongamos que usamos el método de bisección para
hallar un cero de f(x) en el intervalo [2,7].¿Cuantas
iteraciones hay que hacer para asegurar que la
aproximación tiene una precisión de 5×10
−9
?
Mag José Luis Acuña Guillermo
24