Sunteți pe pagina 1din 34

Métodos numéricos 01. Archivos m. Mg.

Amado Malca Villalobos

Archivos m.
En el momento de ejecutar una aplicación en alguna área de interés, a veces es necesario
realizar varias secuencias de algunas operaciones, algunas de ellas en forma repetida, lo
cual resulta sumamente tedioso. Usualmente se quiere corregir un valor, pero ya no
puedes regresar a ello.
Todas estas preocupaciones pueden ser resueltas en un archivo script. En el cual debe
escribirse el programa respectivo, que es una secuencia lógica de ordenes (comandos)
que desde luego debe estar bien estructurado, y entendible por la computadora. Para ello
se usan los ficheros script, también llamado archivos .m
Un fichero script es un conjunto de sentencias u órdenes que se ejecutan en forma
secuencial. En algunos casos debido a la estructura misma del programa se llamara
función.
Para que estos programas sean coherentes y los pueda leer el programa Matlab, deben
seguir un orden lógico. Estos ficheros tienen extensión m. y se pueden editar y/o
ejecutar las veces que sea necesario.
En algunos casos es necesario que el programador ingrese algunos datos para que el
programa funcione. Estos deberán ser ingresados por teclado posiblemente, y en algún
formato adecuado. Para esto hay comandos adecuados.

Notas sobre los ficheros script


- Un fichero script es una secuencia de comandos de MatLab, también denominado
programa.
- Cuando se ejecuta un fichero script, MatLab ejecuta los comandos en el orden en que
éstos han sido escritos, igual que si se ejecutaran uno a uno en la ventana de
comandos.
- Cuando un fichero script contiene un comando que produce una salida o resultado
(ejemplo una asignación de variable sin un punto y coma al final), la salida se visualiza
en la ventana de comandos.
- La utilización de ficheros script es conveniente, ya que estos pueden ser editados (es
decir se pueden corregir o modificar), y se pueden ejecutar tantas veces como se
quiera.
- Los ficheros script se pueden crear y editar en cualquier editor de texto. Asimismo el
texto se puede copiar y pegar desde estos editores a MatLab para ser ejecutado.
Los ficheros script también de denominan ficheros M, ya que la extensión .m es la que
utiliza y reconoce MatLab cuando se guardan estos archivos.
- Un fichero script se puede ejecutar, bien tecleando su nombre en la Ventana de
Comandos (y pulsando la tecla enter) o bien desde la ventana del editor a través del
icono Run (ejecutar).
- Estos programas siempre deben estar en el directorio actual de MatLab, para poder
ejecutarse. Que se puede ver en la siguiente figura

01 archivos .m 1
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Ordenes útiles para carpetas


Como ya se ha dicho, si el archivo de texto no se graba en la carpeta de trabajo de
MATLAB no podrá ser ejecutado. Conviene tener ciertas herramientas que ayuden a
comprobar esta situación.

_ Para comprobar los archivos .m que tiene en la carpeta de trabajo de MATLAB


pruebe la orden what.
_ Para saber la carpeta de trabajo que MATLAB está usando existe la orden pwd.
_ Para saber la lista de todos los archivos en la carpeta de trabajo de MATLAB pruebe
la orden dir. Aparecerán los archivos de tipo .m y también los de otros tipos.
- Con el comando cd, se muestra el directorio de trabajo actual.

>> what
M-files in the current directory C:\Users\Malca\Documents\MATLAB
DistPaL curva3d05 datos prom
curva3d01 curva3d06 dfun prom_2
curva3d02 curvar3 ejemplo01 prom_3
curva3d03 curvasR3 ejemplo4_2 prommult5
curva3d04 curvatemp fun solcuad
>> pwd
ans = C:\Users\Malca\Documents\MATLAB
>> dir
. curva3d04.m datos.asv prom.m
.. curva3d05.m datos.m prom_2.m
DistPaL.asv curva3d06.m datos.xlsx prom_3.m
DistPaL.m curvar3.asv datos_lluvia.xls prommult5.m
curva3d01.m curvar3.m dfun.m solcuad.m
curva3d02.m curvasR3.asv ejemplo01.m
curva3d03.asv curvasR3.m ejemplo4_2.m
curva3d03.m curvatemp.asv fun.asv
curva3d04.asv curvatemp.m fun.m
>> cd
C:\Users\Malca\Documents\MATLAB

Es una buena práctica escribir ficheros script que sean fáciles de entender por nosotros
mismos, después de un cierto tiempo y por otros lectores que tengan acceso al código
que hemos creado. Esto implica al menos, las siguientes tareas:

1. Asignar a las variables y funciones nombres significativos


2. Estructurar el código
3. Comentar el código, describiendo las tareas que realiza cada una de sus partes

01 archivos .m 2
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

La carpeta de trabajo

La carpeta de trabajo es el lugar donde se guardan los ficheros .m que hemos creado. La
carpeta de trabajo se muestra y se selecciona debajo de la barra de botones pulsando en
la flecha hacia abajo situada a la derecha

Se establece la carpeta de trabajo mediante el comando cd, indicando la unidad c:,


carpeta /MATLAB, subcarpeta /fisica

>> cd C:\Users\Usuario\Documents\MATLAB\malca

Alternativamente, se utiliza el botón titulado 'Browser for folder' situado a la izquierda.


Una vez que se ha localizado la subcarpeta fisica en la carpeta MATLAB, en el cuadro
de diálogo que aparece, se pulsa en el botón titulado 'Seleccionar carpeta'

01 archivos .m 3
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Ahora crearemos un programa, para ello abriremos un archive Nuevo, de tipo m-file,
segun lo indicado en los siguientes gráficos.

Ejemplo: Resolver la ecuación cuadrática 5x 2 8x 4 0

Para ello lo primero a hacer es abrir un archivo m, e ir escribiendo en el. La primera


parte comprende un breve comentario sobre lo que hace el programa, estas líneas
siempre van precedidas del símbolo de porcentaje (%), lo cual le indica a MatLab que
no debe ejecutarse.
Si queremos visualizar ello basta con llamar al programa precedido del comando help.

solcuad.m Ejecucucion
% programa que resuelve una >> solcuad
ecuación cuadrática sol_1 = 1.2899
% 5x2-8x+2=0 sol_2 = 0.3101
>> help solcuad
sol_1=(8+sqrt(8^2-4*5*2))/10 programa que resuelve una
sol_2=(8-sqrt(8^2-4*5*2))/10 ecuación cuadrática
5x2-8x+2=0
>>

01 archivos .m 4
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Ejemplo: En el siguiente caso se construirá una función, la cual tiene una pequeña
diferencia en su estructura que contiene una línea adicional, que será explicada con
mayor detalle en el siguiente acápite.
Se creara la función: y f x x3 5x 2 8x 4 . Luego de lo cual se podrá evaluar,
graficar y hacer algunas cosas más propias de las funciones matemáticas.

fun.m Ejecucucion
function y=fun(x) >> fun(3),fun(1),fun(7),fun(13)
ans = 34
% programa que calcula el valor ans = 0
de ans = 438
% una función dado el valor de x. ans = 2604
>>
y=x.^3+3*x.^2-8*x+4; >> x=-6:0.1:5;
>> y=fun(x);
>> plot(x,y)
>>
>> help fun
programa que calcula el valor de
una función dado el valor de x.
>>
200

150

100

50

-50

-100
-6 -4 -2 0 2 4 6

Grafico de la función en el intervalo [-6, 6]

01 archivos .m 5
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Vista de la ventana de comandos en MatLab, del archivo m, y del grafico de la función.

VARIABLES GLOBALES
Recuerde que las variables escritas en un archivo script (programa), se ejecutan como si
estuvieran en la ventana de comandos, salvo las que están en un ficheros tipo fuction.
Cuando se ejecuta un fichero script, las variables utilizadas en los cálculos dentro del
fichero deben tener valores asignados previamente en el mismo script. Esta asignación
se puede hacer de tres formas:
- Variable definida y asignada en el fichero script.
- Variable definida y asignada en la ventana de comandos.
- Variable definida y asignada en el fichero script, pero luego se cambia en la
ventana de comandos

Variable definida y asignada en el fichero script.


La asignación de la variable forma parte del fichero, Si se quiere cambiar el valor
simplemente se edita el fichero y se guarda los cambios.

Ejemplo: Ahora presentaremos un programa que halla el puntaje promedio de varias


jugadas en un casino.
prom.m Ejecución
% este programa calcula el promedio >> prom
% de un conjunto de jugadas Puntuacion_Media =
j1=80; 82.5000
j2=85; >> help prom
j3=75; este programa calcula el
j4=90;
promedio de un conjunto de
Puntuacion_Media=(j1+j2+j3+j4)/4
jugadas

01 archivos .m 6
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Variable definida y asignada en la ventana de comandos.


En este caso el o los valores de la variable se indican en la ventana de comandos, y
luego se ejecuta el programa. Aquí los valores de las variables solo se cambian en la
ventana de comandos.

Ejemplo: El programa requerido es el mismo anterior, hallaremos el puntaje promedio


de varias jugadas en un casino. Pero los valores se ingresaran por teclado.

Prom_2.m
% Calculo del promedio de cuatro jugadas
% los valores se ingresan por la ventana de comandos
% con las variables j1, j2, j3 y j4

Puntuacion_Media=(j1+j2+j3+j4)/4
Ejecución en MatLab
>> clear % para limpiar memoria de variables pre asignadas
>> prom_2
??? Undefined function or variable
'j1'.
Error in ==> prom_2 at 5
Puntuacion_Media=(j1+j2+j3+j4)/4
>> j1=87, j2=90, j3=86, j4=64 % corrigiendo el problema de las variables
j1 = 87
j2 = 90
j3 = 86
j4 = 64

01 archivos .m 7
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

>> prom_2
Puntuacion_Media = 81.7500
>> help prom_2
Calculo del promedio de cuatro jugadas
los valores se ingresan por la ventana de comandos
con las variables j1, j2, j3 y j4

Variable definida y asignada en el fichero script, pero luego se cambia en la


ventana de comandos. Comando input
En esta opción la variable se define en el fichero script, y cuando se ejecuta tal archivo
al usuario se le pide un valor concreto a través de la ventana de comandos, y a estas
variables se les asigna el valor correspondiente.
Esto se hace con el comando input. Cuya sintaxis es:
( )

Al ejecutar este comando se muestra en la ventana de comandos el mensaje indicado,


luego del cual el usuario ingresara el valor de la variable en forma adecuada.

Ejemplo: Igual al caso anterior, se hallara el valor promedio de un conjunto de puntajes


de jugadas en un casino.

Prom_3.m
% este programa calcula el promedio
% de un conjunto de tres jugadas
% las cuales se ingresan en la ventana de comandos
% usando el comando input
j1=input('Ingrese la primera puntuación:')
j2=input('Ingrese la segunda puntuación:')
j3=input('Ingrese la tercera puntuación:')
j4=input('Ingrese la cuarta puntuación:')
Puntuacion_Media=(j1+j2+j3+j4)/4
Ejecucion en MatLab
>> prom_3
Ingrese la primera puntuacion:87
j1 = 87
Ingrese la segunda puntuacion:98
j2 = 98
Ingrese la tercera puntuacion:67
j3 = 67
Ingrese la cuarta puntuacion:82
j4 = 82
Puntuacion_Media = 83.5000
>> help prom_3
este programa calcula el promedio
de un conjunto de tres jugadas
las cuales se ingresan en la ventana de comandos
usando el comando input
>>

01 archivos .m 8
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

COMANDO DE INGRESO DE DATOS:


Un dato cualquiera o una matriz puede ingresarse mediante el teclado a pedido de algún
programa, los llamados archivos ****.m, mediante el comando: input
Hay dos tipos de objetos que ingresan por teclado, numéricos (Matriz) o como una
cadena de letras y/o símbolos (String).
Los formatos son:
x=input('comentario: ')
x=input('comentario: \n')
o tambien:
x=input('ingrese su nombre: ','s')
x=input('ingrese su nombre: \n ','s')

En el primer caso aparecerá el comentario en la pantalla, y la matriz ingresada se


asignara a la variable x.
En el segundo la diferencia está en que el cursor para ingresar la información pasa a la
siguiente línea.
En el tercer caso aparecerá el comentario en la pantalla, y se asignara a la variable x. La
diferencia está en que en el tercer caso la variable no solo puede ser una matriz sino
también una cadena de caracteres cualesquiera.
En el cuarto caso, al igual que el segundo, el cursor para ingresar la información pasa a
la siguiente línea.

Ahora veamos algunos ejemplos:

>> A=input('ingrese su edad: ');


ingrese su edad: 46
A = 46
>> A=input('ingrese su edad: ');
ingrese su edad: 25
>> A=input('haga su pregunta: ','s');
haga su pregunta: que es la matemática
A = que es la matemática
>> A=input('ingrese su edad:\n');
ingrese su edad:
45
>> A=input('Estado civil:\n','s');
Estado civil:
Soltero

COMANDOS DE SALIDA DE DATOS


La salida en pantalla de los resultados de un programa se hace de diferentes maneras.
Algunos se realizan por defecto como el resultado de alguna operación. Otra opción es
con los comandos:
disp fprintf
Comando disp
El formato de disp es:
disp(‘comentario’)
disp(variable)

01 archivos .m 9
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

en el primer caso la salida es algún comentario, en el segundo se imprime en pantalla el


valor de una variable.

Ejemplo:
>> disp('Hola a todos')
Hola a todos
>> A=[1 7 -2;4 -5 6;8 5 -9]
A=
1 7 -2
4 -5 6
8 5 -9
>> disp(A)
1 7 -2
4 -5 6
8 5 -9
>> disp('La matriz buscada es:')
La matriz buscada es:
>> disp(A)
1 7 -2
4 -5 6
8 5 -9
>> B=[1 7 -2]
B = 1 7 -2
>> disp(['la matriz buscada es:',num2str(B)])
la matriz buscada es:1 7 -2
>>

Ejemplo:
>> x=[1:10]';
>> P=[x x.^2 x.^3];
>> disp(' numero cuadrado cubo'),disp(P)
numero cuadrado cubo
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
>>

Ejemplo
>> disp(['La ','matemática ','es ','la ','madre ','de ','todas ','las ','ciencias'])
La matemática es la madre de todas las ciencias

01 archivos .m 10
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

>> disp(['La','matematica','es','la','madre','de','todas','las','ciencias'])
Lamatematicaeslamadredetodaslasciencias
>> disp(['La ','matemática ','es ','la ','madre ','de ','todas ','las ','ciencias'])
La matemática es la madre de todas las ciencias
>> disp(['Aritmetica';'Algebra';'Geometria';'Analisis';'Discreta'])
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
>> disp(['Aritmetica';'Algebra ';'Geometria ';'Analisis ';'Discreta '])
Aritmetica
Algebra
Geometria
Analisis
Discreta
>>
En la última línea de los comandos las palabras debían tener la misma longitud, de 10
letras, incluyendo espacios.

Ejemplo: En este programa hallaremos el promedio de los primeros 20 enteros


positivos múltiplos de 5.
Solución:
Prommult5.m
% en el ejemplo se crea un vector
% con los 20 primeros múltiplos de 5
% y luego se halla el promedio de ellos
r=[1:20];
z=5*r;
disp('Los veinte múltiplos de 5, son:')
disp(z)
disp(' ')
disp('el valor promedio es')
prom=sum(z)/norm(z);
disp(prom)
Ejecución en MatLab:
>> prommult5
Los veinte múltiplos de 5, son:
Columns 1 through 12
5 10 15 20 25 30 35 40 45 50 55 60
Columns 13 through 20
65 70 75 80 85 90 95 100
el valor promedio es
3.9199

Ejemplo: Mostrar una tabla con los n primeros enteros positivos, sus cuadrados y sus
cubos.
Solución:
Ejemplo4_2.m
% Este programa crea una tabla de los
primeros n números enteros positivos

01 archivos .m 11
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

% sus cuadrados y sus cubos


n=[1:5]';
cuadrado=n.^2;
cubo=n.^3;
disp(' n n^2 n^3')
tabla=[n,cuadrado,cubo];
disp(tabla)
Ejecución en MatLab:
>> ejemplo4_2
n n^2 n^3
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125

Mezclando texto y números


Usaremos también el el comando “num2str” que convierte un numero en una
variable string (texto).
>> p=2.54;
>> disp(['Una pulgada es: ',num2str(p),' cm'])
Una pulgada es: 2.54 cm
>> x=12;y=30.48;
>> disp(['Un pie es: ',num2str(x),' pulgadas',', también es: ',num2str(y),' cm'])
Un pie es: 12 pulgadas, también es: 30.48 cm

Ahora con trabajando con vectores


>> u=[1 5 7 10]; v=3*2.54*u;
>> n=length(u);
>> disp([num2str(u'),repmat(' yarda es: ',n,1),num2str(v'),repmat(' cm',n,1)])
1 yarda es: 7.62 cm
5 yarda es: 38.1 cm
7 yarda es: 53.34 cm
10 yarda es: 76.2 cm

Construyendo una tabla de valores de la función: y=x^4+x^3+x^2, con x=1….10.


>> x=1:10; y=x.^4+x.^3+x.^2; tabla(:,1)=x'; tabla(:,2)=y';
>> disp('Tabla de valores de: y=x^4+x^3+x^2'),...
disp(' abscisa ordenada'), disp(tabla)
Tabla de valores de: y=x^4+x^3+x^2
abscisa ordenada
1 3
2 28
3 117
4 336
5 775
6 1548

01 archivos .m 12
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

7 2793
8 4672
9 7371
10 11100

El comando fprintf
Este comando visualiza salidas de programas en la pantalla, a diferencia del disp., aquí
se puede dar algún formato a la presentación de los datos.
Visualizando mensajes de texto:
fprintf(‘Mensaje en forma de cadena’)

ejemplo02.m
%ahora tenemos un programa que obtiene cuadrados
y cubos
n=[1:5]';
cuadrado=n.^2;
cubo=n.^3;
disp(' n n^2 n^3')
tabla=[n,cuadrado,cubo];
disp(tabla)
fprintf('ahi tenemos la relación de cuadrado y
cubos')
Ahora viene la ejecución, en la ventana de comandos de Matlab:
>> prog01
n n^2 n^3
1 1 1
2 4 8
3 9 27
ahi tenemos la relación de cuadrado y cubos >>

Caracteres especiales usados


Símbolo Descripción
\n Carácter de escape, se empieza una nueva línea.
\b Carácter de borrado
\t Tabulación horizontal
Ahí va un ejemplo de uso de estos caracteres especiales, escribiremos:
Las matrices, son el objeto fundamental del MatLab
>> fprintf('Las matrices,\n son el objeto fund\bamen\btal del
Mat\t\tlab\n');
Las matrices,
son el objeto funametal del Mat lab
>>

El comando fprintf para la visualización de datos y texto juntos


fprintf(‘Texto %-5.2f texto adicional’, nombre_variable)

01 archivos .m 13
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Los elementos del formato para los datos (variable), son cuatro algunos opcionales
otros obligatorios: %-5.2f

El primero
% Es el símbolo que indica formato
El segundo llamado flag o bandera (opcional)
- Alinea el numero hacia la izquierda
+ Imprime el signo (+ si es positivo, - si es negativo)
0 Añade ceros
El tercero ‘5’, indica cinco caracteres que es el ancho del campo donde se imprime el
valor numérico, si el número es más corto se añaden espacios o ceros delante del
número.
El cuarto ‘2’, indica la precisión. Indica el número de decimales que se mostraran a la
derecha del punto decimal.
El quinto indica el formato de presentación del número (Obligatorio)
e Notación exponencial en minúsculas (ej: 2.456e+002)
E Notación exponencial en mayúsculas (ej: 2.456E+002)
f Notación de punto fijo (entero decimal) (ej: 245.63)
g Representación en formato corto de e o f
G Representación en formato corto de E o f
i Entero

Ejemplo:
ej03.m
% tenemos un conjunto de doce datos de lluvia en miles de litros,
en forma
% mensual. En la amazonia peruana
%p representa el valor promedio de las lluvias
D=[286 253 254 305 274 203 165 190 161 228 224
280]
P=mean(D)
fprintf('\nEl valor medio de las lluvias es %6.2e mensual.\n',P)
fprintf('\nEl valor medio de las lluvias es %-16.2f mensual.\n',P)
fprintf('\nEl valor medio de las lluvias es %08i mensual.\n',P)
fprintf('\nEl valor medio de las lluvias es %6g mensual.\n',P)
La ejecución en MatLab
>> ej03
D = 286 253 254 305 274 203 165 190 161 228 224
280
P = 235.2500
El valor medio de las lluvias es 2.35e+002 mensual.
El valor medio de las lluvias es 235.25 mensual.
El valor medio de las lluvias es 2.352500e+002 mensual.
El valor medio de las lluvias es 235.25 mensual.
>>

01 archivos .m 14
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Aquí va un ejemplo en el cual hay insertados varios valores numéricos, dentro del
texto.
ej04.m
% tenemos un conjunto de doce datos de lluvia en miles de litros,
en forma
% mensual. En la amazonia peruana
%p representa el valor promedio de las lluvias
D=[286 253 254 305 274 203 165 190 161 228 224
280]
m=min(D);
M=max(D);
S=sum(D);
P=mean(D);
fprintf('\nEl valor medio de las lluvias es %6.2e mensual.\n',P)
fprintf('\nEl valor mínimo es %4i , el máximo es %4i y el total de
lluvias es %6i.\n',m,M,S)

La ejecución en Matlab
>> ej04
D = 286 253 254 305 274 203 165 190 161 228 224
280
El valor medio de las lluvias es 2.35e+002 mensual.

El valor mínimo es 161 , el máximo es 305 y el total de lluvias es


2823.
>>

Presentación de arrays (Matrices)


ej05.m
%ahora presentaremos una matriz
%donde
%fila uno: números naturales
%fila dos: el cuadrado
%fila tres: la raíz cuadrada
x=[1:8];
y=x.^2;
z=sqrt(x);
w=[x;y;z]
fprintf('el numero %i su cuadrado %i su raíz %f\n',w)
La ejecución en MatLab
>> ej5
w=
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000
8.0000
1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000
64.0000
1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458

01 archivos .m 15
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

2.8284
el numero 1 su cuadrado 1 su raíz 1.000000
el numero 2 su cuadrado 4 su raíz 1.414214
el numero 3 su cuadrado 9 su raíz 1.732051
el numero 4 su cuadrado 16 su raíz 2.000000
el numero 5 su cuadrado 25 su raíz 2.236068
el numero 6 su cuadrado 36 su raíz 2.449490
el numero 7 su cuadrado 49 su raíz 2.645751
el numero 8 su cuadrado 64 su raíz 2.828427
>>

Ejemplo adicional
ejem06.m
% archivo ejecutable de nombre: ejem06.m
% uso de los comandos de entrada por teclado, y salida por pantalla.

nombre=input('cual es tu nombre: ','s');


apellidos=input('tus apellidos son:\n','s');
n=input('de que orden son las matrices cuadradas A y B:\n');

A=input('ingrese la matriz A :\n')


B=input('ingrese la matriz B :\n')
disp('la suma A+B, la resta A-B es :')
disp(A+B),disp(A-B)
disp('El producto A*B, la division A/B es :')
disp(A*B),disp(A/B)
La ejecución en Matlab
>> ejem06
cuál es tu nombre: amado
tus apellidos son: malca villalobos
de que orden son las matrices cuadradas A y B: 4
ingrese la matriz A : [1 2 3 4;3 5 1 7;6 1 3 5;7 0 5 1]
A=
1 2 3 4
3 5 1 7
6 1 3 5
7 0 5 1
ingrese la matriz B : [9 2 3 4;3 5 8 7;1 1 3 5;7 0 5 0]
B=
9 2 3 4
3 5 8 7
1 1 3 5
7 0 5 0
la suma A+B, la resta A-B es :
10 4 6 8
6 10 9 14
7 2 6 10
14 0 10 1

01 archivos .m 16
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

-8 0 0 0
0 0 -7 0
5 0 0 0
0 0 0 1
El producto A*B, la division A/B es :
46 15 48 33
92 32 87 52
95 20 60 46
75 19 41 53

0.0698 0.3101 0.3101 -0.1240


1.1395 0.6202 -0.3798 -1.2481
0.5814 -0.1938 0.8062 0.0775
0.0504 -0.0724 0.2610 0.9289

ejem07.m
% archivo ejecutable de nombre: ejem07.m
% uso de los comandos de entrada por teclado, y salida por
pantalla.

temp=[25.6 33.7 34.1 35.6 36.8]


fprintf('la temperatura en la mañana es %e grados F \n',temp)
fprintf('la temperatura en la mañana es %f grados F \n',temp)
fprintf('la temperatura en la mañana es %g grados F \n',temp)
fprintf('la temperatura en la mañana es \n %g grados F \n',temp)
La ejecución en Matlab
>> ejem07
temp = 25.6000 33.7000 34.1000 35.6000 36.8000

la temperatura en la mañana es 2.560000e+001 grados F


la temperatura en la mañana es 3.370000e+001 grados F
la temperatura en la mañana es 3.410000e+001 grados F
la temperatura en la mañana es 3.560000e+001 grados F
la temperatura en la mañana es 3.680000e+001 grados F
la temperatura en la mañana es 25.600000 grados F
la temperatura en la mañana es 33.700000 grados F
la temperatura en la mañana es 34.100000 grados F
la temperatura en la mañana es 35.600000 grados F
la temperatura en la mañana es 36.800000 grados F
la temperatura en la mañana es 25.6 grados F
la temperatura en la mañana es 33.7 grados F
la temperatura en la mañana es 34.1 grados F
la temperatura en la mañana es 35.6 grados F
la temperatura en la mañana es 36.8 grados F
la temperatura en la mañana es
25.6 grados F
la temperatura en la mañana es
33.7 grados F
la temperatura en la mañana es

01 archivos .m 17
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

34.1 grados F
la temperatura en la mañana es
35.6 grados F
la temperatura en la mañana es
36.8 grados F

ejem08.m
% archivo ejecutable de nombre: ejem08.m
% uso de los comandos de entrada por teclado, y salida por
pantalla.

w=[1:10;sqrt(1:10)]
fprintf('Un entero es %g y su raíz cuadrada es %g \n',w)

z=[1:10;sqrt(1:10);(1:10).^2;(1:10).^3]
fprintf(' n=%g sqrt(n)=%g n^2=%g n^3=%g \n',z)

z=[1000555:1000560;sqrt(1000555:1000560)]
fprintf('n=%2.3g sqrt(n)=%1.10g\n',z)
fprintf('n=%2.6g sqrt(n)=%1.10g\n',z)
fprintf('n=%2.6g sqrt(n)=%4.10g\n',z)
La ejecución en Matlab
>> ejem08
w= Columns 1 through 10
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000
8.0000 9.0000 10.0000

1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458


2.8284 3.0000 3.1623

Un entero es 1 y su raíz cuadrada es 1


Un entero es 2 y su raíz cuadrada es 1.41421
Un entero es 3 y su raíz cuadrada es 1.73205
Un entero es 4 y su raíz cuadrada es 2
Un entero es 5 y su raíz cuadrada es 2.23607
Un entero es 6 y su raíz cuadrada es 2.44949
Un entero es 7 y su raíz cuadrada es 2.64575
Un entero es 8 y su raíz cuadrada es 2.82843
Un entero es 9 y su raíz cuadrada es 3
Un entero es 10 y su raíz cuadrada es 3.16228

z = 1.0e+003 *

0.0010 0.0020 0.0030 0.0040 0.0050 0.0060 0.0070


0.0080 0.0090 0.0100
0.0010 0.0014 0.0017 0.0020 0.0022 0.0024 0.0026
0.0028 0.0030 0.0032
0.0010 0.0040 0.0090 0.0160 0.0250 0.0360 0.0490
0.0640 0.0810 0.1000
0.0010 0.0080 0.0270 0.0640 0.1250 0.2160 0.3430

01 archivos .m 18
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

0.5120 0.7290 1.0000

n=1 sqrt(n)=1 n^2=1 n^3=1


n=2 sqrt(n)=1.41421 n^2=4 n^3=8
n=3 sqrt(n)=1.73205 n^2=9 n^3=27
n=4 sqrt(n)=2 n^2=16 n^3=64
n=5 sqrt(n)=2.23607 n^2=25 n^3=125
n=6 sqrt(n)=2.44949 n^2=36 n^3=216
n=7 sqrt(n)=2.64575 n^2=49 n^3=343
n=8 sqrt(n)=2.82843 n^2=64 n^3=512
n=9 sqrt(n)=3 n^2=81 n^3=729
n=10 sqrt(n)=3.16228 n^2=100 n^3=1000

z = 1.0e+006 *

1.0006 1.0006 1.0006 1.0006 1.0006 1.0006


0.0010 0.0010 0.0010 0.0010 0.0010 0.0010

n=1e+006 sqrt(n)=1000.277462
n=1e+006 sqrt(n)=1000.277961
n=1e+006 sqrt(n)=1000.278461
n=1e+006 sqrt(n)=1000.278961
n=1e+006 sqrt(n)=1000.279461
n=1e+006 sqrt(n)=1000.279961
n=1.00056e+006 sqrt(n)=1000.277462
n=1.00056e+006 sqrt(n)=1000.277961
n=1.00056e+006 sqrt(n)=1000.278461
n=1.00056e+006 sqrt(n)=1000.278961
n=1.00056e+006 sqrt(n)=1000.279461
n=1.00056e+006 sqrt(n)=1000.279961
n=1.00056e+006 sqrt(n)=1000.277462
n=1.00056e+006 sqrt(n)=1000.277961
n=1.00056e+006 sqrt(n)=1000.278461
n=1.00056e+006 sqrt(n)=1000.278961
n=1.00056e+006 sqrt(n)=1000.279461
n=1.00056e+006 sqrt(n)=1000.279961

Ejemplo 09

Vamos a calcular el alcance de un proyectil disparado con velocidad inicial de


( )
haciendo un ángulo de mediante la siguiente fórmula .

Ejemplo 09 alcance.m
% cálculo del alcance de un proyectil que tiene una
% velocidad inicial, con un ángulo de tiro

v0=46; %velocidad de disparo


ang=30; %ángulo de tiro
x=v0^2*sind(2*ang)/9.8; %alcance
fprintf('ángulo de tiro %i°, alcance %5.2f m\n',ang,x)

01 archivos .m 19
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

>> alcance
ángulo de tiro 30°, alcance 186.99 m

Ahora con varios ángulos de tiro


Ejemplo 10 alcance2.m
% calculo de los alcances de un proyectil que tiene una
% velocidad inicial, con varios angulos de tiro

v0=46; %velocidad de disparo


ang=[15:15:75]; %vector ángulos de tiro
x=v0^2*sind(2*ang)/9.8; %vector alcances
disp('ángulo, alcance (m)')
fprintf('%i° %5.2f\n',[ang;x])
>> alcance2
ángulo, alcance (m)
15° 107.96
30° 186.99
45° 215.92
60° 186.99
75° 107.96

La función sprintf

La función sprintf es similar a printf salvo que imprime en una variable. Se utiliza en
combinación con la función gráfica text para mostrar valores de una variable en un
gráfico

Ejemplo: grafico20.m
%código para dibujar un gráfico
t=0:60;
d=-t.^2+40*t+12;
plot(t,d,'r')
p=400;
text(20,440,sprintf('Máximo %1.3f',p))
>> prog02
>>

01 archivos .m 20
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

600

Máximo 400.000
400

200

-200

-400

-600

-800

-1000

-1200
0 10 20 30 40 50 60

Vamos a ver cómo funciona en la ventana de comandos. Guardamos el valor que


imprime sprintf en la variable N.

>> N=sprintf('el valor de pi es %1.3f',pi)

N =

el valor de pi es 3.142

Al final de fprintf se pone el carácter \n que indica una nueva línea, no es necesario en
la función sprintf

IMPORTACION Y EXPORTACION DE DATOS


Procesando datos de fuentes externas (Importación)
Escribiendo datos en un manejador de datos (Exportación)

DE EXCEL A MATLAB (xlsread)


Importando datos desde Excel a Matlab.

Para esto contamos con un comando llamado xlsread y su sintaxis es:

01 archivos .m 21
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

xlsread (' NombreArchivo ')

[num, text ] xlsread ( NombreArchivo, Hoja, Rango)

donde:
num: Es una matriz de tipo numérico en el cual serán guardados todos los datos
numéricos encontrados dentro de la hoja y rango especificado.
text: Matriz de tipo celda donde se guardaran todos las cadenas que sean encontradas
dentro de la hoja y rango especificado. Cada cadena se guarda en una celda dentro de
la matriz.
NombreArchivo: El nombre o ruta del archivo a leer. Este parámetro debe ser una
cadena.
Ejemplo: Ahora se leerá un archivo en Excel, llamado datos.xlsx
Aquí vemos una hoja de datos en formato Excel: datos1.xlsx

Leyendo ahora con el comando xlsread


>> [A,B]=xlsread('datos.xlsx')
A=
1 2 3 4 5 6 7
180 156 147 206 210 235 222
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
1 2 3 4 5 6 7
1 4 9 16 25 36 49
1 8 27 64 125 216 343
B=
'Mes'
'LLuvia'
''
''

01 archivos .m 22
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

'numero'
'cuadrado'
'cubo'
Leyendo por separado la información
>> [A,B]=xlsread('datos.xlsx','hoja2','c2:j3')
A=
1 2 3 4 5 6 7
180 156 147 206 210 235 222
B=
'Mes'
'LLuvia'
Lo que sigue
>> [C,D]=xlsread('datos.xlsx','hoja2','c6:j8')
C=
1 2 3 4 5 6 7
1 4 9 16 25 36 49
1 8 27 64 125 216 343
D=
'numero'
'cuadrado'
'cubo'
Y lo ultimo
>> xlsread('datos.xlsx','hoja2','c6:j8')
ans =
1 2 3 4 5 6 7
1 4 9 16 25 36 49
1 8 27 64 125 216 343

DE MATLAB A EXCEL (xlswrite)


Esta vez veremos cómo exportar datos desde MatLab a una hoja de datos de Excel.

Lo primero que debemos conocer es la función y la sintaxis necesaria para realizar esta
operación; Esta se llama xlswrite y su sintaxis es la siguiente:
xlswrite( NombreArchivo, Datos)

01 archivos .m 23
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

[estado] xlswrite( NombreArchivo, Datos, Hoja, CeldaInicial )

Donde:
Estado= regresa 1 cuando la operación de escritura ha sido un éxito, 0 en caso
contrario.
NombreArchivo: El nombre o ruta del archivo al que se escribirá, si no se escribe la
ruta completa, tomara por deafult que el archivo se encuentra en el current directory,
si el archivo no existe lo creará. Este parámetro debe ser una cadena.
Datos: Son los datos que se escribirán en el archivo, pueden ser numéricos o
caracteres.
Hoja: Es la hoja en la que se escribirá, por default Hoja1, este parámetro debe ser una
cadena.
CeldaInicial: A partir de esta se empezara la escritura de los datos, este parámetro
debe ser una cadena.
Ejemplo: Ahora se creara una matriz A, y luego se grabara en un archivo de Excel
Creando la matriz y escribiendo en la hoja de calculo
>> A=[1 7 -2;4 -5 6;8 5 -9]
A=
1 7 -2
4 -5 6
8 5 -9
>> xlswrite('arch_datos.xlsx',A)
Archivo en la PC, en la carpeta de trabajo de MatLab

Archivo de Excel

01 archivos .m 24
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Ejemplo: Ahora la matriz A se grabara en un archivo llamado “arch_datos2.xlsx”, en la


hoja llamada “matriz” en los rangos especificados
Creando la matriz y escribiendo en la hoja de calculo
>> A=[1 7 -2;4 -5 6;8 5 -9]
A=
1 7 -2
4 -5 6
8 5 -9
>> [estado]=xlswrite('arch_datos2.xlsx',A,'matriz','C1:E3')
Warning: Added specified worksheet.
> In xlswrite>activate_sheet at 294
In xlswrite>ExecuteWrite at 249
In xlswrite at 207
estado = 1
>> [estado]=xlswrite('arch_datos2.xlsx',A,'matriz','A5:C7')
estado = 1

Archivo en la PC, en la carpeta de trabajo de MatLab

Archivo de Excel

01 archivos .m 25
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

EJEMPLOS ADICIONALES

El area de un triangulo
area.m
function [A] = area(a,b,c)
% Calcula el area de un triangulo cualquiera
% se tienen las longitudes de los lados a, b y c
% Ingreso: a,b,c: Longitudes de los lados
% Salida: A: area del triangulo
%
p = (a+b+c)/2;
A = sqrt(p*(p-a)*(p-b)*(p-c));

La ejecución en Matlab
>> help area
Calcula el area de un triangulo cualquiera
se tienen las longitudes de los lados a, b y c
Ingreso: a,b,c: Longitudes de los lados
Salida: A: area del triangulo
>> area(5,7,12)
ans = 0
>> area(3,4,5)
ans = 6
>> area(3,4,50)
ans = 0 +6.1872e+002i
>> area(13,45,50)
ans = 282.3190

Los términos de la sucesión de Fibonacci


Fibo1.m
function f = Fib1(n)
% Retorna el n-esimo numero
% de la Sucesion de Fibonacci.
% 1, 1, 2, 3, 5, 8, . . .
% F(1)=1, F(2)=1,
% F(n+2)=F(n+1)+F(n), si n entero positivo

F=zeros(1,n);
F(1)=1;
F(2) = 1;
for i = 3:n

01 archivos .m 26
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

F(i) = F(i-1) + F(i-2);


end
f = F(n);
La ejecución en Matlab
>> help Fib1
Retorna el n-esimo numero
de la Sucesion de Fibonacci.
1, 1, 2, 3, 5, 8, . . .
F(1)=1, F(2)=1,
F(n+2)=F(n+1)+F(n), si n entero positivo
>> Fib1(1)
ans = 1
>> Fib1(16)
ans = 987

Los términos de la sucesión de Fibonacci


Fibo2.m
function f = Fib2(n)
% Retorna el n-esimo termino
% de la sucesion de Fibonacci.
if n==1
f = 1;
elseif n==2
f = 1;
else
f1 = 1; f2 = 1;
for i = 2:n-1
f = f1 + f2;
f1=f2; f2 = f;
end
end
La ejecución en Matlab
>> Fib2(4)
ans = 3
>> Fib2(40)
ans = 102334155

Los términos de la sucesión de Fibonacci con matrices


Fibo3.m
function f = Fib3(n)
% Retorna los terminos de la
% Sucesion de Fibonacci
% Usando matrices
A = [0 1;1 1];
y = A^n*[0;1];
f=y(1);
La ejecución en Matlab
>> Fib3(6)
ans = 8
>> Fib3(16)
ans = 987

Promedio de un arreglo de numeros


promedio.m
function p = promedio(x)
% Calcula el promedio de los elementos de un
vector x
% y dibuja dicho vector, ploteando

01 archivos .m 27
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

% Sintaxis : promedio(x) donde x es el vector a


promediar
n=length(x);
p=0;
for i=1:n
p=p+x(i);
end
p=p/n;
plot(x);
La ejecución en Matlab
>> x=[3 4 8 2 7 10 18 45 78 3 2 9]
x = 3 4 8 2 7 10 18 45 78 3 2 9
>> promedio(x)
ans = 15.7500
>>
La grafica de los valores de x
80

70

60

50

40

30

20

10

0
0 2 4 6 8 10 12

4. FICHEROS SCRIPT
PROBLEMAS

01 archivos .m 28
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Nota: Además de los problemas que se proponen a continuación, todos los problemas del acápite
anterior se pueden resolver también utilizando ficheros script.
Los siguientes problemas deben ser resueltos creando un programa en un fichero script y
posteriormente ejecutándolo en la ventana de comandos.

1. Se ha diseñado sobre papel una copa cónica que tiene un volumen de 250 cm3. Determine el radio r
de la base y el área de la superficie S de este diseño para una serie de distintos bocetos de copas que
tienen de altura h de 5, 6, 7, 8 y 9 cm.
El cálculo del volumen V y el área superficial vienen dados por las formulas:
1 2
V r hS r r2 h2
3

r
x

h 24 pies

6 pies

2. En un cine, el ángulo a partir del cual un espectador ve la película depende de la distancia x del
espectador a la pantalla. Para un cine de las dimensiones como las que se muestran en la figura adjunta,
calcule el ángulo (en grados) para los espectadores que están sentados a distancias de 30, 45, 60, 75 y
90 pies de la pantalla.
3. La población de un determinado país es de 50 millones, cantidad que se duplicara previsiblemente en
20 años. Calcule la población en 5, 10 y 15 años definiendo un vector t con tres elementos y utilizando
operaciones elemento a elemento para el cálculo. El crecimiento de la población se puede modelar
mediante la ecuación P P0 2t / d , donde P es la población en el instante t, P0 es la población en el
instante t = 0 y d es el doble del tiempo.
4. Un excursionista necesita cruzar un área arenosa para poder ir del punto A a un campamento que se
encuentra en el punto B. Para hacer esto puede cruzar una zona arenosa perpendicularmente al camino
y a continuación andar a lo largo de el, o también puede cruzar la zona arenosa con un ángulo hasta
el camino, y luego caminar a lo largo del camino. El excursionista camina a una velocidad de 3,5 km/h en
la arena, y a 5 km/h por el camino. Calcule el tiempo que le lleva alcanzar el campamento contemplando
distintos ángulos de 0, 10, 20, 30, 40, 50 y 60 grados.
Las distancias w y u son, respectivamente, w = 4,5 km, y u = 14 km. Escriba un programa en un fichero
script que resuelva este problema. Calcule todas las variables dentro del fichero script. Visualice los
resultados en una tabla de dos columnas en la cual la primera columna sea y la segunda columna sea
el tiempo t correspondiente.
u
B

A
5. Escriba un fichero script que calcule el balance de una cuenta de ahorros al final del año, durante 10
años. La cuenta tiene un capital inicial de $ 1000 y un interés de 6,5% que produce beneficios
anualmente. Visualice la información en una tabla.

01 archivos .m 29
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

Para un capital inicial A, y una tasa de interés r, el balance B, después de n años, viene dado por la
n
expresión: B
r
A1
100
6. La velocidad v y la distancia d, en función del tiempo, de un coche que tiene una aceleracion
1 2
constante a, vienen dados por: v t at y d t at
2
Determine v y d para cada segundo, durante 10 segundos, para un coche con una aceleración a = 1,55
2
m/s . Muestre los resultados en una tabla de tres columnas en la cual la primera sea el tiempo (s), la
segunda sea la distancia (m) y en la tercera la velocidad (m/s).
7. Cuando se conectan diferentes resistencias en paralelo en un circuito eléctrico, la corriente a través
de cada una de estas resistencias viene dada por: in vs / Rn donde in y Rn representan la intensidad
de corriente a través de la resistencia n y su valor de resistencia propiamente dicho, siendo vs el

potencial de la fuente. La resistencia equivalente, Re q , en este caso, se puede calcular a partir de la


expresión:
1 1 1 1
Req R1 R2 Rn
La intensidad de la corriente de la fuente viene dada por is vs / Req , y la potencia Pn , disipada por
cada resistencia vienen dada por: Pn vs in .
Escriba un programa, utilizando un fichero script, que calcule la corriente que pasa por cada resistencia,
asi como la potencia disipada por cada una, en un circuito como el que se muestra en la figura con
resistencias colocadas en paralelo. Cuando el fichero script se ejecute, este debe pedir al usuario que
introduzca el voltaje de la fuente, y después, en un vector, los valores correspondientes a las
resistencias. El programa debe mostrar en una tabla las resistencias en la primera columna, la corriente
que pasa por cada una de ellas en la segunda, y la potencia que disipan en la tercera columna. Después,
el programa debe mostrar también la intensidad de corriente de la fuente y al potencia total del circuito.
20 

10 
45
34

26

60

Vs 48 V

8. La grafica de la función f x ax3 bx 2 cx d pasa por los puntos (-2, -3.4), (-0.5, 5.525), (1,
16.7) y (2.5, 70.625). Calcule las constantes a, b, c y d escribiendo para ello un sistema de ecuaciones
con cuatro incógnitas, utilizando posteriormente MATLAB para resolver el sistema.
9. Cuando se llevan cálculos de estructuras es habitual trabajar con sistemas como el que se muestra en
la figura adjunta, consistente en una estructura compuesta de miembros o elementos encadenados
unos con otros por sus extremos, y donde lo que se trata es determinar las fuerzas que inciden sobre
cada elemento. Para la estructura que se muestra en la figura adjunta, las fuerzas de los siete miembros
vienen determinadas por las siguientes siete ecuaciones:
F1sen 36,87º 2000 F1cos 36,87º F2 0
F3 F1sen 36,87º 0 F4 F1 cos 36,87º 0
F3 F5 sen 36,87º 3000 F6 F5 cos 36,87º F2 0
F5 sen 36,87º F7 0
Escribe las ecuaciones en forma matricial y utilice MATLAB para calcular las fuerzas de los elementos de
esta estructura. Una fuerza positiva implica una fuerza de tensión, mientras que una fuerza negativa
implica una fuerza de comprensión. Visualice los resultados en una tabla.

01 archivos .m 30
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

2000 N 3000 N

2 6
o o o
36,87º 36,87º
3 5 7
1
4
o o

SOLUCION DE EJERCCICIOS PROPUESTOS


Cap04p01.m
%capitulo 04 problema 01
h=[5:10]
V=250;
r=sqrt((3*V)./(pi*h))
S=pi*r.*sqrt((r.^2)+(h.^2))

>> cap04p1
h = 5 6 7 8 9 10
r = 6.9099 6.3078 5.8399 5.4627 5.1503 4.8860
S = 185.1512 172.5171 167.2512 166.2487 167.7802 170.8419
>>

Cap04p02.m

>> cap04p2
>>

Cap04p03.m
% capitulo 04 ejercicio 03
t=[0:5:25]
p=50*(2.^(t/20))
plot(t,p)

>> cap04p03
t = 0 5 10 15 20 25
p = 50.0000 59.4604 70.7107 84.0896 100.0000 118.9207
>>

Cap04p04.m
%ejercicio 04 del capítulo 04
a=[0:5:60];
r=(pi/180)*[0:5:60];
w=4.5;u=14;
v1=3.5;v2=5;
t=(w./(v1*cos(r)))+(u-w*tan(r))/(v2);
disp(' grados radian tiempo')

01 archivos .m 31
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

tabla=[a;r;t]';
disp(tabla)
plot(a,t)

>> cap04p04
grados radian tiempo
0 0 4.0857
5.0000 0.0873 4.0119
10.0000 0.1745 3.9469
15.0000 0.2618 3.8899
20.0000 0.3491 3.8407
25.0000 0.4363 3.7990
30.0000 0.5236 3.7650
35.0000 0.6109 3.7394
40.0000 0.6981 3.7232
45.0000 0.7854 3.7183
50.0000 0.8727 3.7276
55.0000 0.9599 3.7562
60.0000 1.0472 3.8126
>>
4.15

4.1

4.05

3.95

3.9

3.85

3.8

3.75

3.7
0 10 20 30 40 50 60

Cap04p05.m
%capitulo 04 ejercicio 05
n=[0:10];
A=1000;
i=6.5;
B=A*((1+(i/100)).^n);
fprintf('\taños\tbeneficio\n')
tabla=[n;B];
fprintf('\t%-5i \t%-5.4f\n',tabla)
plot(n,B)

>> cap04p05
años beneficio
0 1000.0000
1 1065.0000
2 1134.2250
3 1207.9496
4 1286.4664
5 1370.0867
6 1459.1423

01 archivos .m 32
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

7 1553.9865
8 1654.9957
9 1762.5704
10 1877.1375
>>

1900

1800

1700

1600

1500

1400

1300

1200

1100

1000
0 1 2 3 4 5 6 7 8 9 10

Cap04p06.m
%capitulo 04 ejercicio 06
a=1.55;
t=[0:10:600];
v=a*t;
d=0.5*a*(t.^2);
fprintf('\t tiempo(s)\t velocidad(m/s)\t distancia(m)\n')
tabla=[t;v;d];
fprintf('\t%-5i \t\t%-5.4f \t\t%-5.4f\n',tabla)

>> cap04p06
tiempo(s) velocidad(m/s) distancia(m)
0 0.0000 0.0000
10 15.5000 77.5000
20 31.0000 310.0000
30 46.5000 697.5000
40 62.0000 1240.0000
50 77.5000 1937.5000
60 93.0000 2790.0000
70 108.5000 3797.5000
…………………………………………………………………..
590 914.5000 269777.5000
600 930.0000 279000.0000
>>

Cap04p07.m
%capitulo 04 ejercicio 07

>> cap04p07

Cap04p08.m
% capitulo04 problema 08
% un problema de interpolacion polinomial

01 archivos .m 33
Métodos numéricos 01. Archivos m. Mg. Amado Malca Villalobos

x=[-2 -0.5 1 2.5]'


n=length(x)
A=ones(n);
A(:,1)=x.^3;
A(:,2)=x.^2;
A(:,3)=x
b=[-3.4 5.525 16.7 70.625]'
sol=(A^(-1))*b

>> cap04p08
x = -2.0000 -0.5000 1.0000 2.5000
n= 4
A = -8.0000 4.0000 -2.0000 1.0000
-0.1250 0.2500 -0.5000 1.0000
1.0000 1.0000 1.0000 1.0000
15.6250 6.2500 2.5000 1.0000
b = -3.4000
5.5250
16.7000
70.6250
sol = 2.0000
3.5000
4.2000
7.0000
>>

01 archivos .m 34

S-ar putea să vă placă și