0% encontró este documento útil (0 votos)
90 vistas

Programación Con Matlab

Este documento presenta una introducción a la programación con MATLAB. Explica que los programas en MATLAB se escriben típicamente en archivos .m y que su estructura general incluye comentarios, entrada y salida de datos, algoritmos y uso de sentencias como for, if, while y switch. También cubre operadores, funciones definidas por el usuario y ejemplos de problemas matemáticos que se pueden resolver usando programación en MATLAB.

Cargado por

Jhon
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
90 vistas

Programación Con Matlab

Este documento presenta una introducción a la programación con MATLAB. Explica que los programas en MATLAB se escriben típicamente en archivos .m y que su estructura general incluye comentarios, entrada y salida de datos, algoritmos y uso de sentencias como for, if, while y switch. También cubre operadores, funciones definidas por el usuario y ejemplos de problemas matemáticos que se pueden resolver usando programación en MATLAB.

Cargado por

Jhon
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

UNIVERSIDAD ANTONIO NARIÑO

LABORATORIO DE MATLAB
Programación con Matlab

Actividad 1: Introducción
Matlab puede utilizarse como un lenguaje de programación que
incluye todos los elementos necesarios. Añade la gran ventaja de poder
incorporar a los programas propios del usuario todas las aplicaciones
que ya tiene implementadas, lo cual facilita y simplifica en muchos casos
la programación. También será de gran utilidad tener en cuenta la
estructura vectorial y matricial del programa.
Como ya hemos adelantado, los programas en Matlab suelen
escribirse en los ficheros .m (M-ficheros). Lo normal es que sea en
ficheros Scrips que resultan los más sencillos. A veces, no tienen
argumentos de entrada ni salida y están formados por un conjunto de
instrucciones que se ejecutan secuencialmente.

Se puede decir que este ya es un programa creado en Matlab.

La estructura general de un programa MATLAB es la siguiente:


1) Comentarios: inicialmente, pueden aparecer líneas comentadas en las
que se da un título al programa y se realiza una breve descripción del
mismo. Esta parte es opcional, pero es útil introducirla ya que se nos
permite acceder directamente desde la ventana de comandos a la
información comentada mediante la utilización del comando help, en la
forma:
>> help nombre del programa
2) Entrada de datos si se requiere: los datos necesarios para la
resolución del problema deben suministrarse al programa mediante la
lectura de sus valores por teclado o desde un fichero de datos.
3) Algoritmo: desarrollo de un procedimiento que permite obtener la
solución del problema en función de los datos de entrada.
4) Salida de datos: los datos obtenidos como solución del algoritmo se
deben ofrecer al usuario mediante escritura en pantalla o en un fichero
de datos.

1
2. Entrada y salida de datos
Existe un comando para introducir información en un programa cuando
estamos en modo de ejecución. Este comando es: v=input(‘Cadena de
Caracteres’)

input realiza dos tareas:

1) Imprime en pantalla la cadena de caracteres que lleva como argumento.

2) Los datos que el usuario teclea en respuesta al letrero, los introduce


en la variable v.

Para que un programa en modo de ejecución pueda escribir letreros,


avisos, etc. por pantalla, se utiliza el comando:

Para escribir el valor de una variable, se utiliza el comando: disp(v) que


muestra en pantalla el valor de la variable v.

Para escritura de texto y/o datos en pantalla, se puede utilizar la


función:
sprintf(‘formato %d’, variables).

Ejemplos:

>> n=input(‘teclea el número de elementos’)

>>disp(‘este valor no es adecuado’)

3. Operadores
Ya hemos estudiado operadores de tipo aritmético. En este momento
puede ser de utilidad conocer otros tipos de operadores:

Operadores relacionales:
< Menor
<= Menor o igual
>= Mayor o igual
> Mayor
== Igualdad
~= Desigualdad
find(A) Devuelve los índices de los elementos no nulos
2
find(A condición) Devuelve los índices de los elementos de A que
cumplen la condición

Operadores lógicos
~A Negación lógica
A&B Conjunción lógica (and)
A|B Disyunción lógica (or)
xor(A,B) or exclusivo, vale 1 si A o B, pero no ambos, valen 1

Todos estos operadores actúan elemento a elemento en matrices y


vectores.
Las dimensiones y número de elementos de las tablas deben coincidir.

Ejemplo:
>> A=1:9;
P=(A>2)&(A<6) P= 0 0
1110 000

4. Sentencias de control
El uso de aplicaciones recursivas y condicionales es muy habitual en
matemáticas. Para ello si utilizan las bifurcaciones y los bucles.
Las bifurcaciones permiten realizar una u otra operación según se
cumplan o no ciertas condiciones. Los bucles repiten operaciones sobre datos
distintos.
Algunas de las sentencias de las que dispone Matlab para este tipo de
trabajos son las siguientes:

Sentencia for:
Permite ejecutar de forma repetitiva un comando o grupo de comandos.
La forma general de un bucle for es:

for variable=expresión
comandos
end
Por ejemplo:
for i=1:3;v(i)=1;end;v
3
1 1 1
>>

Así, un bucle for siempre empieza por la sentencia for y termina con la
end. En su interior incluye todo un conjunto de comandos que se separan por
comas. En algunos casos es bueno poner puntos y comas para evitar
repeticiones en las salidas. Por supuesto puede utilizarse en ficheros .m

Sentencia if:
Mediante esta estructura se pueden ejecutar secuencias de comandos si se
cumplen determinadas condiciones. Su sintaxis es:
If condición
comandos
end

De forma más general:


If condición
comandos 1
else

end

comandos 2

4
que ejecuta comandos 1 si la condición 1 es cierta y comandos 2 si es
falsa.

Como en el caso de for, se pueden anidar sentencias if:


If condición 1
comandos 1
elseif condición 2
comandos 2
elseif condición 3
comandos 3
...
else
end

Mediante el siguiente ejemplo se imprime en pantalla una frase, de tres


posibles, según sea el valor de la variable n:

N=input(‘introduce un número
natural’) If n=0,
disp(‘n es cero’)
elseif
rem(n,2)==0
disp(‘n es par’)
else
disp (‘n es impar’) end

Sentencia while:

También dispone de la sentencia “haz mientras” que ejecuta un bucle


mientras una condición sea cierta. Su sintaxis es:
while condición
comandos
end
en el interior (comandos) se incluyen todo tipo de comandos que se separan
por comas y que se ejecutan mientras la condición sea cierta.
Como ejemplo calcularemos el mayor número factorial que no esceda a
10100:
5
n=1;
while prod(1:n)<1.e100,
n=n+1;
end, n

Este otro ejemplo tiene como salida el vector 1 2 3


4 5 6. v=1:9;
i=1;
while
v(i)<7
disp(v(i))
i=i+1;
end

Continue
Esta sentencia hace que se pase inmediatamente a la siguiente iteración
del bucle for o while, saltándose todas las sentencias que existan entre el
continue y el final del bucle en esa iteración.

Break
Hace que se termine la ejecución de un bucle for o while.

Nota: existen otras sentencias que pueden ser de interés y que pueden
consultarse en: matlab\lang - Programming language constructs.
Ejemplos:
1. %Valor absoluto de un número:
x=input('Digite algun valor numérico ')
if x<0
valor=-x;
else
valor=x;
end
y=['el valor absoluto es ',num2str(valor)];
disp(y)

comentario: también se puede usar:


y=sprintf('El valor absoluto %d ',valor);

6
2. Solución de una cuadrática:

%solución cuadratica
a=input('valor de a: ');
b=input('valor de b: ');
c=input('valor de c: ');
d=b^2-4*a*c;
if d>0
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
disp('valor positivo de la raiz')
elseif d==0
x1=-b/(2*a);
x2=-b/(2*a);
disp('la raiz vale 0')
else
x1=(-b+i*sqrt(-d))/(2*a);
x2=(-b-i*sqrt(-d))/(2*a);
disp('la raiz es negativa')
end
disp('valores de la ecuación de segundo grado:')
x1,x2

Sentencia switch:
Se utiliza para diferentes casos de una condición.
Ejemplo:
n = input('Ingrese un valor numérico: ');

switch n
case -1
disp('valor negativo’)
case 0
disp('Cero')
case 1
disp('positivo’)
otherwise
disp('otro valor')
end

ejemplo 2:

%operaciones
a=input('valor de a: ');
7
b=input('valor de b: ');
y=['1. sumar, 2. restar, 3.multiplicar, 4.dividir'];
disp(y)
n=input('que operación quiere? ');
switch n
case 1
x=a+b;
case 2
x=a-b;
case 3
x=a*b;
case 4
x=a/b;
otherwise
disp('No hay ninguna operación')
end
disp(x)

Funciones creadas por el usuario:

En matemáticas se ecribe una función de esta forma:


• 𝑦 = 𝑓(𝑥) , 𝑧 = 𝑓(𝑥, 𝑦)
De igual manera se realiza en matlab.
• La estructura general es
function [variables de salida] = nombrefuncion(variables de entrada)
ORDENES
Se puede utilizar end para finalizar una función ( es opcionable).
Ejemplo:
%funciones
function funciones
a=input('ingrese el primer valor: ');
b=input('ingrese el segundo valor: ');
s=suma(a,b)
r=resta(a,b)

function s=suma(a,b)
s=a+b;
function r=resta(a,b)
r=a-b;

8
Actividad 2: Programar con Matlab

1. Construir un programa que calcule los cubos de los números naturales


cuyo cuadrado sea menor que un número m (que se pide al usuario) y
los introduzca en un vector v.

2. Construir un programa que solucione el siguiente Sistema de ecuaciones


utilizando matrices:
3𝑥1 − 𝑥2 = 5
−2𝑥1 + 𝑥2 + 𝑥3 = 0
2𝑥1 − 𝑥2 + 4𝑥3 = 15

3. Construir un programa que nos de los n primeros números de la sucesión

a(n)=n2-4n+3. Añadir una sentencia al programa que permita representar


los términos en el plano.

4. Dado un plano ax+by+c=0, crear un programa que nos diga si un punto


(x,y) pertenece a dicho plano, está por encima o por debajo de él.

5. Crear un programa que detecte si en un determinado intervalo [a,b] existe


una raíz de una función continua f(x).

6. En un comercio se venden cajas de tornillos. Su precio depende del


número de cajas comprados: hasta 100 cajas el precio de la caja es de 2
euros, desde 101 a 200 cajas el precio es 1,5 euros y, a partir de 201 cajas
el precio es de 1 euro. Elaborar un programa que pregunte el número de
cajas demandadas y que indique el precio de la unidad y el coste total del
pedido.

7. Realiza una tabla que incorpore el valor de los números enteros menores
que 20, sus inversos, sus cuadrados y sus raíces cuadradas. Hacerlo
primeramente con el comando while y luego con el comando for.

8. Programar el método de la bisección y el de Newton para aproximar raíces


de funciones.

También podría gustarte