Funciones y Operaciones con Vectores y Matrices
Operaciones con Vectores
- sum(v): Suma de las componentes del vector v.
- prod(v): Producto de las componentes del vector v.
- dot(v,w): Producto escalar de dos vectores v y w del mismo tipo y las mismas dimensiones.
- cross(v,w): Producto vectorial de dos vectores v y w del mismo tipo y dimensión 3.
- max(v): Máximo de las componentes del vector v (sin valor absoluto).
- norm(v): Norma euclídea del vector v.
- norm(v,p): Norma-p del vector v.
Operaciones con Matrices
- diag(A): Vector conteniendo la diagonal principal de la matriz A.
- diag(A,k): k-ésima sub o super diagonal de A (según sea k>0, k=0, k<0).
- max(A): Vector conteniendo el valor máximo de las componentes de cada columna.
- [y,k]=max(A): Nos da, además, la fila en la que se produce el máximo de cada columna.
- zeros(n,m): Matriz nxm con todas sus componentes iguales a cero.
- zeros(n): Ídem nxn.
- ones(n,m): Matriz nxm con todas sus componentes iguales a uno.
- ones(n): Ídem nxn.
- eye(n,m): Matriz unidad: matriz nxm con diagonal principal =1 y el resto de las componentes =0.
- diag(v) (donde v es un vector): Matriz con la diagonal principal = v y ceros en el resto.
- diag(v,k) (donde v es un vector): Ídem con la k-ésima diagonal= v y ceros en el resto.
- [A,B]: Es la matriz (A B).
- [A;B]: Es la matriz (A B) transpuesta (columna).
- [ ]: Representa la matriz “vacía” (0x0).
- A(:,3)=[]: Elimina la tercera columna de la matriz A.
- A(1,:)=[]: Elimina la primera fila de A.
- full(A): Si A es una matriz en forma hueca, devuelve su forma estándar.
- [i,j,c]=find(A): Si A es una matriz (en forma hueca o no), devuelve los vectores i, j y c, correspondientes a su almacenamiento sparse.
- sparse(A): Si A es una matriz en forma estándar, devuelve su forma esparse.
Operaciones con Polinomios
- roots(p): Calcula las raíces del polinomio p (es un vector-columna y, en general, calcula aproximaciones).
- poly(raices): Si raices es un vector-columna, devuelve el polinomio que tienes dichas raíces. Se obtiene normalizado y puede ser de coeficientes complejos.
- poly(A): Si A es una matriz cuadrada, es el polinomio característico.
- polyval(p,x): Calcula el valor del polinomio p en el punto x (x puede ser un vector).
- conv(p1,p2): Producto de los polinomios p1 y p2.
- deconv(p1,p2): División de polinomios.
- polyder(p): Derivada del polinomio p.
Otras Funciones
- sort(V): Reordena v de menor a mayor.
- size(a): Tamaño de la matriz (fila,columna).
- length(V): Número de elementos de v.
- fix: Redondeo hacia cero.
- floor: Redondeo hacia menos infinito.
- ceil: Redondeo hacia más infinito.
- round: Redondeo hacia el entero más próximo.
- mod: Módulo (cociente entero de la división).
- rem: Resto entero de la división.
- sign: Función signo.
Ejemplos Prácticos
- Calcula la suma de los elementos de un vector v que ocupan las posiciones impares.
- Solución:
sum(v(1:2:end))
- Solución:
- Obtén los cinco mayores elementos de un vector v, ordenados de mayor a menor.
- Solución:
v2=sort(v); res = v2(end:-1:end-4)
- Solución:
- Obtén un vector columna concatenando las diagonales de dos matrices A y B.
- Solución:
[diag(A); diag(B)]
- Solución:
- Crea una matriz de 3×5 de valores enteros aleatorios entre 18 y 43.
- Solución:
round(rand(3,5)*(43-18)+18)
- Solución:
- Calcula la media de los elementos pares de un vector v.
- Solución:
mean(v(2:2:end))
- Solución:
- Cálculo de la primera raíz.
- Solución:
x(1) = (-b + sqrt(b^2-4*a*c))/(2*a);
- Solución:
- Calcular la media de los 10 primeros elementos de un vector v.
- Solución:
mean(v(1:10))
- Solución:
- Ejemplo 1: Calcular la suma de los n primeros términos de la sucesión 1, 2x, 3x^2, 4x^3, …
n=input('¿Cuántos términos quieres sumar? '); x=input('Dame el valor del numero x '); suma=1; for i=2:n suma=suma+i*x^(i-1); end disp('El valor pedido es') disp(suma)
- Ejemplo 2: Decidir si un número natural es primo.
n=input('Número natural que deseas saber si es primo '); i=2; primo=1; while i<=sqrt(n) if rem(n,i)==0 % Resto de dividir n entre i primo=0; break end end
a) Crear un vector r con las raíces cuadradas de los 20 primeros números naturales.
- Solución:
r=sqrt(1:20)
b) Sumar los cuadrados de los 10 primeros números naturales.
- Solución:
sum((1:10).^2)
c) Calcular el máximo entre los elementos de las posiciones impares de un vector v.
- Solución:
max(v(1:2:end))
d) Calcular la suma de los elementos que ocupan las posiciones múltiplo de 5 en un vector v.
- Solución:
sum(v(5:5:end))
- Solución:
- Dado un entero, n, calcular la suma de los n primeros números impares.
Inicio LEER n HACER suma=0 Para i= 1, 3, 5, ..., 2*n-1 HACER suma=suma+i Fin Para IMPRIMIR ’La suma vale : ’, suma Fin
- Dado un número natural, n, imprimir la lista de sus divisores, en orden decreciente.
Inicio LEER n IMPRIMIR ’ Lista de divisores del numero: ’, n Para i=ParteEntera(n/2) hasta 2 (incremento -1) Si resto(n/i)=0 IMPRIMIR i Fin Si Fin Para IMPRIMIR 1 Fin
- Imprimir de forma ascendente los 100 primeros números naturales.
Inicio i=1 Mientras que i ≤ 100 IMPRIMIR i HACER i=i+1 Fin Mientras Fin