1. OPERADORES MATEMÁTICOS
+ adición o suma
– sustracción o resta
* multiplicación
' traspuesta
^ potenciación
/ división
Operadores relacionales
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
== igual que
~= ~= distinto que
Nota: Cuando estos operadores relacionales actúan entre dos matrices (vectores) del mismo
tamaño, el resultado es otra matriz (vector) de ese mismo tamaño conteniendo unos y ceros,
según los resultados de cada comparación entre elementos hayan sido true o false,
respectivamente.
Operadores lógicos
Los operadores lógicos de MATLAB son los siguientes:
& : and (función equivalente: and(A,B)). Se evalúan siempre ambos operandos, y el resultado
es true sólo si ambos son true.
&& : and breve: si el primer operando es false ya no se evalúa el segundo, pues el resultado final
ya no puede ser más que false.
| : or (función equivalente: or(A,B)). Se evalúan siempre ambos operandos, y el resultado es
false sólo si ambos son false.
|| : or breve: si el primer operando es true ya no se evalúa el segundo, pues el resulta do final no
puede ser más que true.
~ : negación lógica (función equivalente: not(A))
xor(A,B) : realiza un "or exclusivo", es decir, devuelve 0 en el caso en que ambos sean 1 ó
ambos sean 0.
Constantes definidas por el Matlab
i o j: unidad imaginaria, se multiplica por el numero para formar la parte imaginaria.
inf: + infinito.
pi: π (3.1415).
NaN: Not a number , aparece cuando el resultado no está definido.
FUNCIONES MATEMÁTICAS ELEMENTALES QUE OPERAN DE MODO ESCALAR
sin(x) seno
cos(x) coseno
2. tan(x) tangente
asin(x) arco seno
atan(x) arco tangente (devuelve un ángulo entre -π/2 y +π/2)
atan2(x) arco tangente (devuelve un ángulo entre -π y +π); se le pasan 2 argumentos,
proporcionales al seno y al coseno
sinh(x) senohiperbólico
cosh(x) cosenohiperbólico
tanh(x) tangentehiperbólica
asinh(x) arcosenohiperbólico
acosh(x) arcocosenohiperbólico
atanh(x) arcotangentehiperbólica
log(x) logaritmo natural
log10(x) logaritmo decimal
exp(x) función exponencial
sqrt(x) raíz cuadrada
sign(x) devuelve -1 si <0, 0 si =0 y 1 si >0. Aplicada a un número complejo, devuelve un
vector unitario en la misma dirección
rem(x,y) resto de la división (2 argumentos que no tienen que ser enteros)
round(x) redondeo hacia el entero más próximo
fix(x) redondea hacia el entero más próximo a 0
floor(x) valor entero más próximo hacia -∞
ceil(x) valor entero más próximo hacia +∞
gcd(x) máximo común divisor
lcm(x) mínimo común múltiplo
real(x) partes reales
imag(x) partes imaginarias
abs(x) valores absolutos
angle(x) ángulos de fase
FUNCIONES QUE OPERAN CON POLINOMIOS
poly(A): polinomio característico de la matriz A.
roots(pol): raíces del polinomio pol.
polyval(pol,x): evaluación del polinomio pol para el valor de x. Si x es un vector, pol se evalúa
para cada elemento de x.
polyvalm(pol,A): evaluación del polinomio pol de la matriz A.
conv(p1,p2): producto de convolución de dos polinomios p1 y p2.
[c,r]=deconv(p,q): división del polinomio p por el polinomio q. En c se devuelve el cociente y en r
el resto de la división.
residue(p1,p2): descompone el cociente entre p1 y p2 en suma de fracciones simples. (ver>>help
residue).
polyder(pol): calcula la derivada de un polinomio.
polyder(p1,p2): calcula la derivada de producto de polinomios.
polyfit(x,y,n): calcula los coeficientes de un polinomio p(x) de grado n que se ajusta a los datos
p(x(i)) ~= y(i), en el sentido de mínimo error cuadrático medio.
interp1(xp,yp,x): calcula el valor interpolado para la abscisa x a partir de un conjunto de puntos
dado por los vectores xp e yp.
interp1(xp,yp,x,'m'): como la anterior, pero permitiendo especificar también el método de
3. interpolación. La cadena de caracteres m admite los valores 'nearest', 'linear', 'spline', 'pchip', 'cubic'
y 'v5cubic'.
x = linsolve(A,b): Donde x será una matriz de soluciones con el mismonº de columnas,A y b serán
respectivamente dos matrices, una con los coeficientes de las ecuaciones lineales y otra con la
solución. La forma general de la función linsolve es para resolver: Ax=b.
MATRICES Y VECTORES:
En MATLAB se accede a los elementos de un vector poniendo el índice (posición en el vector)
entre paréntesis, por ejemplo x(3) ó x(i). Los elementos de las matrices se acceden poniendo los
dos índices entre paréntesis, separados por una coma: Matriz(fila,columna), por ejemplo A(1,2) ó
A(i,j). Las matrices se almacenan por columnas aunque se introduzcan por filas, teniendo en
cuenta esto puede accederse a cualquier elemento de una matriz con un sólo subíndice. Por
ejemplo, siendo A una matriz de (3×3) se obtiene el mismo valor escribiendo A(1,2) que
escribiendo A(4).
Operadores (con matrices):
+ adición o suma (Deben tener igual tamaño)
– sustracción o resta (Deben tener igual tamaño)
* multiplicación
' traspuesta
^ potenciación
división-izquierda
/ división-derecha
.* producto elemento a elemento (Deben tener igual tamaño)
./ y . división elemento a elemento
.^ elevar a una potencia elemento a elemento
Funciones que actúan sobre vectores:
[xm,im]=max(x): máximo elemento de un vector. Devuelve el valor máximo xm y la posición que
ocupa im.
min(x): mínimo elemento de un vector. Devuelve el valor mínimo y la posición que ocupa
sum(x): suma de los elementos de un vector.
cumsum(x): devuelve el vector suma acumulativa de los elementos de un vector (cada elemento
del resultado es una suma de elementos del original).
mean(x): valor medio de los elementos de un vector std(x) desviación típica.
prod(x): producto de los elementos de un vector.
cumprod(x): devuelve el vector producto acumulativo de los elementos de un vector.
[y,i]=sort(x): ordenación de menor a mayor de los elementos de un vector x. Devuelve el vector
ordenado y, y un vector i con.
Funciones matriciales elementales:
B = A’: calcula la traspuesta (conjugada) de la matriz A.
B = A.’: calcula la traspuesta (sin conjugar) de la matriz A.
B=Inv(A): inversa de A.
B=det(A): determinante de A.
v = poly(A): devuelve un vector v con los coeficientes del polinomio característico de la matriz
cuadrada A.
t = trace(A): devuelve la traza t (suma de los elementos de la diagonal) de una matriz cuadrada A.
4. [m,n] = size(A): devuelve el número de filas m y de columnas n de una matriz rectangular A.
n = size(A): devuelve el tamaño de una matriz cuadrada A.
nf = size(A,1): devuelve el número de filas de A.
nc = size(A,2): devuelve el número de columnas de A.
Funciones matriciales especiales:
expm(A) si A=XDX', expm(A) = X*diag(exp(diag(D)))*X'
sqrtm(A) devuelve una matriz que multiplicada por sí misma da la matriz A
logm() es la función recíproca de expm(A)
Funciones relacionales para matrices y vectores:
any(x): Función vectorial; chequea si alguno de los elementos del vector x cumple una de-
terminada condición (en este caso ser distinto de cero). Devuelve un uno ó un cero.
any(A): Se aplica por separado a cada columna de la matriz A. El resultado es un vector de unos
y ceros.
all(x): Función vectorial; chequea si todos los elementos del vector x cumplen una condición.
Devuelve un uno o un cero.
all(A): Se aplica por separado a cada columna de la matriz A. El resultado es un vector de unos y
ceros.
find(x,k,'y'): Busca índices (posiciones en el vector) correspondientes a elementos de vectores
que cumplen una determinada condición. El resultado es un vector con los índices (posiciones
en el vector) de los elementos que cumplen la condición: donde x es la condición que se debe
cumplir, k es la cantidad de elementos que cumplen la condición que se mostrarán, si se omite se
muestran todos los índices de los elementos que cumplen la condición, 'y' es 'first' o 'last' esto
define si se empieza a evaluar la condición por el último o por el primer elemento del vector
mostrando los primeros o los últimos k resultados, si se omite se comienza por defecto por el
inicio. Cuando esta función se aplica a una matriz la considera como un vector con una
columna detrás de otra, de la 1ª a la última.
[f, c,v]=find(x):Devuelve los índices (posiciones en el vector) fila (de la primera columna a la última)
y columna (de la primera fila a la última) de los elementos de x que cumplen una determinada
condición, y además devuelve un vector que contiene los elementos que cumplen con la condición
y que se encuentran en los índices correspondientes que se muestran.(Ver ejemplo)
Funciones gráficas 2D elementales:
plot(): crea un gráfico a partir de vectores y/o columnas de matrices, con escalas lineales sobre
ambos ejes.
plotyy(): dibuja dos funciones con dos escalas diferentes para las ordenadas, una a la derecha y
otra a la izquierda de la figura.
loglog(): ídem con escala logarítmica en ambos ejes.
semilogx(): ídem con escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas.
semilogy(): ídem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas.
Funciones para definir partes de la ventana del gráfico:
title('título'): añade un título al dibujo.
xlabel('texto'): añade una etiqueta al eje de abscisas. Con xlabel off desaparece.
ylabel('texto'): añade una etiqueta al eje de ordenadas. Con ylabel off desaparece.
text(x,y,'texto'): introduce 'texto' en el lugar especificado por las coordenadas x e y. Si x e y son
vectores, el texto se repite por cada par de elementos. Si texto es también un vector de cadenas
5. de texto de la misma dimensión, cada elemento se escri- be en las coordenadas
correspondientes.
gtext('texto'): introduce texto con ayuda del ratón: el cursor cambia de forma y se espera un clic
para introducir el texto en esa posición.
legend(): define rótulos para las distintas líneas o ejes utilizados en la figura. Para más detalle,
consultar el Help.
grid: activa la inclusión de una cuadrícula en el dibujo. Con grid off desaparece la cuadrícula.
subplot(m,n,i):donde m y n son el número de subdivisiones en filas y columnas, e i es la
subdivisión que se convierte en activa. Las subdivisiones se numeran consecutivamente
empezando por las de la primera fila, siguiendo por las de la segunda, etc. Por ejemplo, la
siguiente secuencia de comandos genera cuatro gráficos en la misma ventana:
>> y=sin(x); z=cos(x); w=exp(-x*.1).*y; v=y.*z;
>> subplot(2,2,1), plot(x,y)
>> subplot(2,2,2), plot(x,z)
>> subplot(2,2,3), plot(x,w)
>> subplot(2,2,4), plot(x,v)
Funciones útiles para Análisis Matemático y Funciones Matemáticas.
Variables simbólicas:
El toolbox de matemática simbólica, funciona a través de textos que son considerados como
ecuaciones o expresiones a partir de variables que los mismos contengan y que deben ser
predefinidas o declaradas con anterioridad. Para declarar una variable como simbólica se utiliza el
comando syms y las variables que se vayan a declarar separadas por espacios.
syms x: La variable x es declarada como simbólica y saldrá en forma de texto en las expresiones
es decir , las respuestas se darán en función de esta variable.
Simplificar expresiones:
pretty(s): Muestra s de forma que se pueda ver mejor matemáticamente.
collect(s): Agrupa términos semejantes de s.
collect(s,'v'): Agrupa términos semejantes de s respecto a la variable independiente v.
expand(s): Realiza una expansión (desarrollo) de s.
factor(s):Intenta factorizar s (sólo si los factores son racionales).
simplify(s): Simplifica la forma de s a una forma más corta si es posible
horner(s):Representación horner.
Sustitución de expresiones:
subs(a,{b,c},{d,e}): MATLAB tiene la posibilidad de sustituir las variables declaradas con el
ToolBoxSymbolic por otra variable ó por un valor, según necesite el programador. Donde a es una
expresión multivariable, b y c son las variables que se van a sustituir, d y e son los sustitutos, los
números o variables que ocuparán los lugares de b y c.
Solución de ecuaciones y sistemas de ecuaciones:
MATLAB puede resolver ecuaciones y sistemas de ecuaciones si se le da una expresión en forma
de texto ó en forma simbólica. La función que utiliza para esto es la siguiente:
solve(f):Si f es una expresión simbólica,resuelve la ecuación f=0 (la resuelve para f=0 por omisión,
es decir si la expresión no está igualada a ningún término) despejando su variable simbólica. Como
resultado se obtienen los valores de la variable que satisfacen la igualdad de la expresión. Cuando
son múltiples valores estos se dan entre corchetes cada uno.
solve(f1,f2,…,fn):Resuelve el sistema de ecuaciones representado por f1,f2,…,fn.
6. Límites:
MATLAB puede calcular el límite de una expresión cuando la variable ó al menos una de las
variables tienden a un determinado valor. La función limit calcula el límite de una expresión
simbólica.
FUNCIÓN ACCIÓN
limit(F,x,c): Límite de F cuando x tiende a c.[F es la expresión, x es la variable de la expresión, c
es el valor al que tiende la variable]
limit(F,c): Límite de F cuando x tiende a c [La variable la toma por defecto si no es especificada]
limit(F): Límite de F cuando x tiende a 0.[ Si no se especifican ni la variable ni el valor se toma la
variable por defecto y elvalor de tendencia como 0.]
limit(F,x,c,'right'): Límite por la derecha de F cuando x tiende a c.
limit(F,x,a,'left'): Límite por la izquierda de F cuando x tiende a c.
Derivadas:
MATLAB puede determinar la derivada de una expresión. Para determinar la derivada simbólica de
una expresión simbólica se usa la función diff, la cual tiene cuatro variantes.
diff(f): Derivada ordinaria.[Devuelve la derivada de la expresión f respecto a la variable
independiente por omisión].
diff(f,n): Derivada de orden superior n.[Devuelve la n-ésima derivada de la expresión f respecto de
la variable independiente por omisión].
diff(f,'t'): Derivada parcial ordinaria.[Devuelve la derivada de la expresión f respecto a la
variable t].
diff(f,'t',n): Derivada parcial de orden superior n.[Devuelve la n-ésima derivada de la
expresión f respecto a la variable t].
Integrales:
Para integrar una función simbólicaf en MATLAB seutiliza la función int, la cual busca una expresión
simbólica F tal que diff(F)=f. Sin embargo, es posible que dicha integral no exista o bien que
MATLAB no pueda obtener la integral, en cuyo caso la función devuelve la expresión sin evaluarla.
int(f): Devuelve la integral de la expresión f respecto a la variable independiente por omisión.
int(f,'t'): Devuelve la integral de la expresión f respecto a la variable t.
int(f,a,b): Devuelve la integral de la expresión f respecto a la variable independiente por omisión
evaluada en el intervalo [a,b], donde a y b son expresiones numéricas.
int(f,'t',a,b): Devuelve la integral de la expresión f respecto a la variable t evaluada en el intervalo
[a,b], donde a y b son expresiones numéricas.
int(f,'m','n'): Devuelve la integral de la expresión f respecto a la variable independiente por omisión
evaluada en el intervalo [m,n], donde m y n son expresiones simbólicas.
int(int (f ,'y',a,b),x,c,d): Con este comando se pueden evaluar integrales dobles en MATLAB a
través de integrales iteradas. f es la función que se va a evaluar , respecto a y con limites inferior y
superior a y b respectivamente , luego respecto a la variable x con limites inferior y superior c y d
respectivamente.
Series numéricas:
Para evaluar series y sumas en MATLAB se puede utilizar la función symsum.
symsum(s,t,a,b): Evalúa la serie s donde t es el parámetro sobre el que se evalúa la serie, a es la
cota inferior y b la cota superior.
7. taylor(f,n+1,a): Para determinar el polinomio de Taylor de una función f, de orden n en el punto
x = a.Nótese que, si desea el polinomio de orden n, en la función taylor se indica n+1, que es el
número de términos de que consta dicho polinomio.
Funciones para Programar en Matlab.
Funciones de entrada:
Una instrucción de entrada (o simplemente entrada) consiste en asignar a una o más variables, uno
o más valores recibidos desde el exterior. Normalmente, los datos son recogidos desde la entrada
estándar (el teclado), pero, también existen otros dispositivos de entrada (el ratón, etc.).
variable=Input('texto'): Después de imprimir el mensaje: 'texto', el programa espera que el usuario
teclee el valor numérico o la expresión , la cual es interpretada y evaluada matemáticamente. En
este caso: variable = input(‘texto’,’s’), se teclea una expresión, no es interpretada matemáticamente
y es conservada como un texto, por lo que esto se utiliza para entrar textos.
Alternativas simples:
Una instrucción alternativa simple permite seleccionar, por medio de una condición, si se ejecuta el
siguiente bloque de comandos. Se establece la condición, si es cumplida se ejecuta el bloque de
comandos y luego se va al end, y si no se cumple se va directamente al end, la estructura es la
siguiente:
if condición
bloque de comandos
end
Alternativas dobles:
Una instrucción alternativa doble permite seleccionar, por medio de una condición, el siguiente
bloque de comandos a ejecutar, de entre dos posibles. Se establece la condición, si es cumplida se
ejecuta el primer bloque de comandos y luego se va al end, y si no se cumple se ejecuta el bloque
de comandos alternativo y luego se va al end, la estructura es la siguiente:
if condición
primer bloque de comandos
else
bloque de comandos alternativo
end
Alternativas múltiples:
Una instrucción alternativa múltiple permite seleccionar, por medio de una expresión, evaluada en
varias condiciones el siguiente bloque de comandos a ejecutar de entre varios posibles. Acorde a
la expresión evaluada se establecen varias condiciones y cada una de ellas tiene asociado su
respectivo bloque de comandos, cada condición es evaluada y de cumplirse una de ellas, se ejecuta
su respectivo bloque de comandos, y luego se va al end. En caso de no ser ejecutada ninguna de
ellas porque no se cumple la condición evaluada, es ejecutado el bloque de comandos alternativo y
luego se va al end. Su estructura es la siguiente:
switch expresión
case expr1,
bloque 1
case expr2
bloque 2
case expr3
bloque 3
otherwise
bloque alternativo
8. end
Ciclos:
Los ciclos son bucles y permiten repetir las mismas o análogas operaciones sobre datos distintos.
while: Trabaja sobre sentencias en base a condiciones ,cuando el flujo de un algoritmo llega a un
ciclo while existen dos posibilidades:
1. Si la condición se evalúa a falsa, no se ejecutan las sentencias, y el ciclo while finaliza
sin realizar ninguna sentencia.
2. Si la condición se evalúa a verdadera,síseejecutan las sentencias y, después, se vuelve
a evaluar la condición, para decidir, de nuevo, si se vuelven a ejecutar o no las sentencias.
Y así sucesivamente, hasta que, la condición sea falsa.
Estructura:
while condición
sentencias
end
for: Cuando el flujo de un algoritmo llega a un ciclo for, en primer lugar, se asigna el valor inicial a
la variable y, a partir de ese instante, existen dos posibilidades:
1. Si el valor de la variable es mayor que el valor final, entonces no se ejecutan las
sentencias, y el ciclo for finaliza sin ejecutar ninguna sentencia.
2. Si el valor de la variable es menor o igual que el valor final, entonces, se ejecuta la
sentencia y, después, se le suma el valor incremento a la variable, volviéndose, de
nuevo, a comparar el valor de la variable con el valorfinal. Y así sucesivamente, hasta
que, el valor de la variable sea mayor que el valor final.
Estructura:
for variable=valor inicial:incremento:valor final
sentencias
end
10. plot()
Caso 1:
x=[1 3 2 4 5 3]
x = 1 3 2 4 5 3
plot(x)
Caso 2:
x=[1 6 5 2 1]; y=[1 0 4 3 1];
plot(x,y)
Caso 3:
x=0:pi/25:6*pi;
y=sin(x); z=cos(x);
plot(x,y,x,z)
syms:
Caso 1:
Syms x
x*x*x
ans=x^3
Caso 2:
Syms x y z
x*x*y*z+5
ans=x^2*y*z+5
Simplificación de Expresiones:
syms x y a b;
s0=(x+4)/(y-2)+x^4;
s1=(x^3)-1;
s2=(x-3)^2+(y-4)^2;
s3=sqrt(a^4*b^7);
s4=14*2/(22*x*y);
s5=x^3-6*x^2+11*x-6;
s6=1.1+2.2*x+3.3*x^2;
pretty(s0)
factor(s1)
expand(s2)
collect(s2)
collect(s2,'y')
simplify(s3)
simplify(s4)
horner(s5)
horner(s6)
x + 4 4
----- + x
y - 2
ans =[ x - 1, x^2 + x + 1]
ans =x^2 - 6*x + y^2 - 8*y + 25
ans =x^2 - 6*x + (y - 4)^2 + 9
11. ans =y^2 - 8*y + (x - 3)^2 + 16
ans =(a^4*b^7)^(1/2)
ans =14/(11*x*y)
ans =x*(x*(x - 6) + 11) - 6
ans =x*((33*x)/10 + 11/5) + 11/10
subs()
syms a b
subs(cos(a)+sin(b),{a,b},{sym('alpha'),2})
ans = sin(2) + cos(alpha)
limit():
Caso 1:
syms x
y=(x^2-3)/(3*x^5+5*x);
l=limit(y,x,3)
l =1/124
Caso 2:
syms a
v = [(1 + a/x)^x, exp(-x)];
limit(v,x,inf,'left')
ans= [exp(a), 0]
int():
Caso 1:
I=int(f,x,0,2)
I =1+exp(2)
Caso 2:
syms x y;
f=y/(x^2+y^2);
int(int(f,'y',1,2),x,0,2)
ans =atan(4/3)/2 + log((2^(1/2)*5^(1/2))/2) + log((8*2^(1/2)*5^(1/2))/25)
symsum():
syms x k;
s1 = symsum (1/k^2,k,1,inf)
s1 =1/6*pi^2
taylor():
taylor(sin(x),pi/2,6)
ans=1-1/2*(x-1/2*pi)^2+1/24*(x-1/2*pi)^4