Documente Academic
Documente Profesional
Documente Cultură
FacultaddecienciasdelaElectrnica
Aplicaciones:
Matemticas,estadsticayanlisisdedatos. Desarrollo dealgoritmos. Adquisicin yprocesamiento dedatos. Prueba,modeladoysimulacindeprototipos. Anlisis,manipulacinyvisualizacindedatos. Diferentes tipos deGraficacin. DesarrollodeaplicacionesconInterfacesGrficasde Usuario.
2 3 4 5
2 3 4 5
MATLABdisponedevariosmensloscualesvarande acuerdoalaventanaqueseencuentreactiva
Dentrodelascaractersticasquesepuedenconfigurarcon estosmensseencuentran:
Crear,salvareimportardiferentestiposdearchivosusadospor MATLAB Configuraralgunaspreferenciasdeusuariocomo:tipoycolordeletra, colordefondodelCommand Window,formatonumrico, visualizacinderesultados,etc. ManipulacinyvisualizacindelasventanasdentrodelDesktop Bsquedadepalabrasoarchivosenlasdiferentesventanas
Losshorcuts sonunaformafcilyrpidadeejecutarun conjuntodesentenciasenMATLAB. Unshorcut puedeser:unasolasentencia(ofuncin),un conjuntodesentenciasounarchivoM. Consolodarclick enelshorcut seejecutaelconjuntode sentencias.
A=
A = [1 5 9 6; 6 2 0 8; 1 -9 5 -1]
Paradeclararunanuevafilaseescribeunpuntoycoma(;). Paradeclararunanuevacolumnaseusaunespacioenblanco.
MATLAB soporta todas las operaciones aritmticas entre matrices o vectores siguiendo la teora, por ejemplo: para sumar dos matrices, deben de ser del mismo tamao; la multiplicacin de una matriz A (mxn) por una matriz B (kxp) debe cumplir que n=k.
>>A+B(suma) >>A B(resta) >>A*B(multiplicacin) >>A(transpuesta) >>A^2(potenciacin) >>A\ B(divisinizquierdaA*inv(B))seusaparalasolucindesistemasde ecuaciones >>A/B(divisinderecha,inv(A)*B)complementodeladivisinizquierda
Existen otros operadores llamados operadores elemento a elemento los cuales realizan la operacin indicada pero a cada uno de los elementos que conforman al vector o a la matriz, dichos operadores tienen la caracterstica de que estn precedidos por un punto (.). >>A.*Bmultiplicacin: >>A.^n potencia: >>A.\ Bdivisin: >>A./Bdivisin: A(i,j)*B(i,j) A(i,j)n B(i,j)/A(i,j) A(i,j)/B(i,j)
Por default MATLAB almacena los nmeros en formato de doble precisin, es decir, en 8 bytes. MATLAB puede interpretar el concepto de Infinito con la palabra Inf(para MATLAB son los nmeros ms grandes de lo que es capaz de representar). MATLAB tiene una representacin para los nmeros que no estn definidos como tal, llamados NaN (Not a Number). Tanto la representacin de NaN como la de infinito permite controlar la fiabilidad de los resultados que presenta MATLAB.
MATLABpuederepresentarymanipularnmeroscomplejos, lasvariablesiyjestndefinidascomolaunidad imaginaria. >>z=4+5j >>z=complex(4,5) Sedebedetenerespecialcuidadoconlasvariablesiyj,si seusanparaguardaralgnvalornumricodejandeserla unidadimaginaria. Sepuedenrealizarlasoperacionesaritmticasentrenmeros complejosymatricesovectoresquecontenganacomplejos.
Representacinnumrica y Nmeroscomplejos
Existeunagranvariedaddefuncionespredefinidasparacrear matricesdetodotipo:
Matrizdeceros. Matirz deunos. Matrizidentidad. Matrizaleatoria. Matrizmgica. zeros(m,n) ones(m,n) eye(m,n) rand(m,n) magic(k)
randint(m,n,[i,j])
Esposibletambinrealizarmanipulacionesyobtener informacindelasmatricesquesetienen:
Tamaodeunamatriz. Longituddeunvector. Concatenacindematrices. Rotacindematrices. Matricestriangulares. size(A) lenght(A) cat(dim,A,B) rot90(A,k) tril(A,k)
Ayuda:SummaryofMatrixandArrayFunctions
Funcionesqueactansobre matricesyvectores
A=
Eloperadordospuntospuedeusarsede3formasdistintas:
Creadordevectoresconincrementosodecrementos. x=1:10 creaunvectordel1al10conincrementode1. x=1:i:10 creaelmismovectorperoconincrementodei. Direccionamientohasta. A(1,2:5) direccionaloselementosdelafila1,desdelacolumna 2hastalacolumna5. x(5:8) direccionadelelemento5hastael8. Direccionamientotodo. A(3,:) direccionatodalafila3. A(:,1) direccionatodalacolumna1. x(:,end) direccionatodalaltimacolumna.
<menorque >=mayoroigualque >mayorque ==igualque <=menoroigualque ~=diferentea Enlosoperadoresrelacionalessilacondicinsecumpleregresa un1lgico,delocontrarioregresaun0lgico. Estetipodeoperadoressepuedenusartambinparacomparar matricesovectoressiempreycuandoseandelmismo tamao,cuandoestosucedelacomparacinserealiza elementoaelemento.
&AND |OR ~NOT Losoperadoreslgicosseusanencombinacinconlos relacionalesparacomprobarelcumplimientodecondiciones mltiples. if (A>5)&(A<10) ~(A>20) Losoperadoreslgicostomancomo1lgicoatodoslosnmeros diferentesdecero,mientrasquetomacomo0lgicosoloa loselementosqueseancero.
MATLABdisponedelasfuncionesmatemticasmsusadas. Algunasdeellasson:
>>exp(x) funcinexponencial >>log(x) logaritmonatural >>log10(x) logaritmobase10 >>log2(x) logaritmobase2 >>pow2(x) eleva2alax >>sqrt(x) razcuadrada >>round(x) redondeo >>primes(x) obtienelosnmeros primos >>factorial(x)
Funcionesmatemticas y Polinomios
Los Symbolic Math Toolboxes incorporan el uso de smbolos dentro del ambiente numrico de MATLAB. Estos toolboxes sustituyen el MATLAB numrico y grfico con otras formas de computacin matemtica. El campo de aplicacin de este Toolbox abarca diversos tpicos:
Clculo: diferenciacin, integracin, lmites, sumatorias, series de Taylor. lgebra Lineal: inversas, determinantes, eigenvalores, matrices simblicas. Mtodos de simplificacin de expresiones algebraicas. Solucin de sistemas de ecuaciones. Funciones matemticas especiales.
Almencionar que estos toolboxessebasan ensmbolos,en trminos deMATLABserefieren aelementos llamados objetos simblicos
Estos objetos simblicos sonestructuras dedatos que almacenan una representacin devariables,expresiones ymatrices algebricas enformadecadenas decaracteres. Declaracindevariablesyexpresionessimblicas:
>>a=sqrt(sym(2)) a= 2^(1/2) >>sym(2)/sym(5) ans = 2/5 x=sym('x') a=sym('alpha') f=(x^2 4)/(x+2) f=sym('a*x^2+b*x+c)
Creacindevariablesy expresionessimblicas
MATLAB cuenta con varias funciones para reducir una expresin matemtica, de esta manera hace ms entendible y menos compleja la expresin; dicha reduccin la realiza haciendo uso de diferentes identidades trigonomtricas y algebraicas. pretty(f) permite ver la expresin f de una forma ms amena y precisamente ms bonita
f = x ^ 3 6 * x ^ 2 + 11 * x 6 x 3 6 x 2 + 11 x 6
collect(f) hace ver a f como a un polinomio en trminos de su variable simblica, digamos x; y suma todos los coeficientes que tienen la misma potencia de x.
f = ( x 1) * ( x 2) * ( x 3) x ^3 6 * x ^ 2 + 11* x 6
expand(f) distribuye los productos en sumas y aplica identidades a funciones que envuelven a las sumas en sus argumentos.
a * (x + y) a * x + a * y cos( x + y ) cos( x ) * cos( y ) sin( x ) * sin( y )
horner(f) transforma un polinomio simblico en su representacin anidada, tratando de expresar la variable simblica con el menor grado.
x ^3 6 * x ^ 2 + 11* x 6 6 + (11 + (6 + x) * x) * x
factor(f) si f es un polinomio con coeficientes racionales, entonces f es expresado como producto de factores, los cuales al ser multiplicados dan el polinomio original. Si f no puede ser factorizado entonces el resultado es el mismo.
x ^3 6 * x ^ 2 + 11* x 6 ( x 1) * ( x 2) * ( x 3)
simplify(f) es una de las funciones ms poderosas en cuanto a simplificacin se refiere ya que aplica identidades algebraicas as como identidades funcionales como las trigonomtricas, exponenciales y logartmicas.
(1/a^3
(1 - x^2)/(1 - x) x + 1
+ 6/a^2 + 12/a + 8 )^ (1 / 3 )
((2 * a + 1 )^ 3 / a ^ 3 )^ (1 / 3 )
simple(f) este tipo de simplificacin alcanza su objetivo aplicando las funciones simplify, collect, factor, y otras funciones de simplificacin, es la forma ms general de simplificacin ya que muestra todos los resultados en pantalla.
cos (x )^ 2 + sin ( x )^ 2 1 2 * cos ( x )^2 - sin ( x )^2 3 * cos ( x )^ 2 1
subs(f,old,new) reemplaza en la expresin simblica f la expresin o variable old por la expresin o variable new. Por ejemplo: sea la funcin simblica f= x^2 1/2*x 1/2
>>subs(f,1/2,a) x^2 (a)*x (a) >>subs(f,x,a) a^2 1/2*a 1/2 >>subs(f,1/2*x1/2,a) x^2 (a)
Operador matemtico
Comandode MATLAB
diff(f) odiff(f,x)
Operador matemtico
Comandode MATLAB
limit(f)
limit(f,x,a)olimit(f,a)
diff(f,a)
diff(f,b,2)
limit(f,x,a,left)
J=jacobian([r;t],[u ,v]
limit(f,x,a,right)
Operadormatemtico
ComandodeMATLAB Operador
int(f)oint(f,x)
Int(f,a,b)oint(f,x,a,b)
Int(besselj(1,z))oInt(besselj(1,z), z)
Operacionesalgebraicas:
Sumatoriassimblicas
f(0)+f(1)+f(2)+f(3) symsum(f,x,0,3)
SeriesdeTaylor
taylor(f)
Graficacin simblica:
ezplot (f)
Ejemplosconaplicacionesalclculoy simplificacindeexpresionessimblicas
dsolve(s). me permite resolver expresiones simblicas pero que tengan la caracterstica de ser ecuaciones diferenciales ordinarias, stas ecuaciones deben de contener el carcter D el cual denota diferenciacin. Los smbolos D2, D3, , Dn denotan la segunda, tercera, , nsima derivadas respectivamente. Por ejemplo: D2 representa , la variable dependiente por default que maneja el toolbox es la variable t.
Solucindeecuaciones
Existen algunas funciones que son especiales en cuanto a su aplicacin, este tipo de funciones se pueden ejecutar con una sola funcin llamada mfun, algunas de estas funciones se enlistan a continuacin:
Binominal Coefficients Riemann Zeta Functions Bernoulli Numbers and Polynominals Euler Numbers and Polynomials Harmonic Function Logarithmic Integral Shifted Sine Integral Fresnel Sine And Cosine Integral Dawsons Integral Error Function Gamma Function Logarithm of the Gamma Function Digamma Function Polygamma Function Generalized Hypergeometric Function Bessel Functions Complete Elliptic Integrals Beta Function Lamberts W Function
La estructura de la funcin mfun depende directamente del tipo de funcin especial que se utilice, en general la estructura es la siguiente: mfun (fun, p1, p2,)
Nombredela funcinPrincipal Conjuntode parmetrossegn eltipodefuncin especial
MATLAB soporta diferentes tipos de datos como dobles, simples, cadenas, lgicos, etc. De hecho, el usuario puede hacer su propio tipo de dato haciendo uso de las Clases. Existen 15 tipos de datos fundamentales en MATLAB:
ARRAY [Fullor sparse]
logical
char
NUMERIC
cell
Java classes
function handle
single
double
Los tipos numricos incluyen a los enteros (int), a los de simple y a los de doble precisin (double). Todos los tipos numricos soportan operaciones matemticas excepto los int64 y unit64. Los tipos de datos enteros son tiles porque nos ayudan a ahorrar espacio en memoria y a realizar las operaciones mucho ms rpido.
En los tipos de lgicos slo existen 2 posibles valores que son: 1 o 0 (true o false respectivamente). Obviamente cada valor requiere solo de 1 bit para almacenarse. Los tipos lgicos se usan mucho en operaciones para imgenes binarias (en blanco y negro) y en programacin cuando cierto valor o cierta condicin se cumple o no.
Cada carcter (cualquiera que este sea) escrito en la cadena se guarda en 2 bytes de memoria. La opcin help strings da una pequea ayuda acerca de las cadenas de caracteres. Se pueden crear matrices de cadenas de caracteres, siempre y cuando las cadenas sean de la misma longitud.
La librera que alberga a todas las funciones que actan sobre cadenas de caracteres es strfun. La librera strfun cuenta con ms de 30 funciones para manipulacin de cadenas, algunas de las ms usadas y ms elementales son: size(c): obtiene el nmero de caracteres. double(c): obtiene el cdigo ASCII de la cadena. char(c): convierte de cdigo ASCII a carcter. char(Pedro, Juan Jose): crea una matriz de cadenas. disp(c): imprime la cadena c en pantalla.
Ejemploscontiposnumricos,lgicos ycadenasdecaracteres
Las estructuras son agrupaciones de datos (llamados campos) de diferente tipo bajo un mismo nombre. Por ejemplo, la estructura alumno puede contener los campos nombre (cadena de caracteres) y edad (un nmero).
ARRAY alumno
1 Forma. se pueden crear estructuras con la utilizacin del punto(.). Simplemente se van aadiendo los campos que se requieren con su valor correspondiente. Cabe mencionar que un campo puede ser de cualquier clase (entero, doble, char, cell array, vector, matriz, etc.)
alumno.nombre =CarmenFlores'; alumno.edad =20; Alumno.examen =[108;109];
Un cell array proporciona un mecanismo de almacenamiento para diferentes tipos de datos. Los datos pueden ser de todo tipo: matrices, vectores, estructuras e incluso ms cell arrays.
Celda1,1
3 98 475 2 51
Celda1,2
CarmenFlores' 11/9/88 Clase II Obs.1 Obs. 1
Celda1,3
0.9i16 32i 17+i2+.7i
Celda2,1
Celda2,2
3 162 8 5234 0148
Celda2,3
texto
2.24.7 0.94.1
5 6
4 9
4.318.923.877.65
10+0.4i
Siseusanllaves,entonceslosvaloressedantalcual.
A{1,1}=[143;058;729]; A{1,2}=TaniaArrieta';
Estructuras yarreglosdecelda
MATLAB posee su propio lenguaje de programacin, con sus sentencias y sintaxis. Existen dos elementos bsicos en cualquier lenguaje de programacin: Sentencia IF
Condicin 1 Bloque1 Condicin 2 Bloque2 Bloque3
if condicion1 bloque1 elseif condicion2 bloque2 elseif condicion3 bloque3 else bloque4 end
SentenciaWHILE
while condicin sentencias end
Condicin
Sentencias
SentenciaBREAK:solamenteseusapararomperlosciclosfor owhile
while condicin sentencias if condicin2 break end sentencias end
SentenciaSWITCH
switch expresin case case_expr1, bloque1 case {case_expr2,case_expr3,...} Bloque2 case {case_expr4,case_expr5,...} Bloque2 ... otherwise,%opcinpordefecto bloque3 end
SentenciaFOR
for i=1:n sentencias end for i=vectordevalores sentencias end
SentenciaCONTINUE:esta
sentenciasirvesolamentedentro deciclos,seusaparapasarala siguienteiteracin.
for i=1:n sentencias if condicin2continue end sentenciasB end
SentenciaTRY,CATCH:
normalmenteseejecutanlas sentenciasA,perosiocurrealgn tipodeerrorendichassentencias, enconesseejecutanlassentencias B.
try sentenciasA catch sentenciasB end
Para la lectura de variables se ocupa la funcin input la cual imprime un mensaje en pantalla e inmediatamente despus se queda en espera de un valor de cualquier tipo manejado por MATLAB.
val=input(daunvalor:) cad=input(daunacadena:,s)
Para la escritura de variables se ocupa la funcin disp la cual puede imprimir el contenido de cualquier tipo de variable en la pantalla del command window.
disp(val) disp(findelprograma)
Una funcin sirve para agregar nuevas funciones a las ya conocidas en MATLAB. Son rutinas de programa que aceptan argumentos tanto de entrada como de salida. Las funciones operan con variables dentro de su propio workspace, es decir, las variables definidas dentro de una funcin son variables locales. Para que la funcin tenga acceso a variables que no han sido pasadas como argumentos es necesario declarar dichas variables como variables globales. En cualquier funcin de MATLAB existen dos variables definidas de modo automtico, llamadas nargin y nargout, que representan respectivamente el nmero de argumentos de entrada y el nmero de valores de retorno.
Varargin es un cell array que contienen tantos elementos como sean necesarios para poder recoger en dichos elementos todos los argumentos de entrada. Varargout es tambin un cell array que agrupa los valores de retorno de la funcin. Una archivo m tipo funcin se asigna como tal con un encabezado
Function variablesy argumentosde = salida nombredefuncin
(debeserelmismonombre queelarchivom)
(variablesdeentraday argumentos)
Un function handle es un valor de MATLAB que proporciona un medio de llamar a una funcin de una forma indirecta. El principal uso de este tipo de funciones es el de pasar a una funcin el nombre de otra funcin junto con sus argumentos, para que la pueda ejecutar
fhandle =@functionname >>fseno=@sin >>fseno(pi) >>f1=@spice >>f1() ahoralafuncinfsenofuncionaexactamente igualalafuncinsin hacelomismoquesin(pi) secreaunhandle f1delscriptspice.m ejecutaelarchivospice.m
Programacinconmatlab
Para este tipo de ejecucin es imprescindible colocar un breakpoint en la parte del programa en la que queramos que se detenga la ejecucin.
Set/ClearBreakpoint.Colocaoborraunbreakpoint. ClearAll Breakpoints.Eliminatodoslosbreakpoints delarchivo. Step.Avanzarunpasosinentrarenlasfuncionesosubfunciones de usuario. Step In.Avanzarunpaso,ysienesepasohayunallamadaaunafuncin cuyofichero entraendichafuncin. Step Out.Salirdelafuncinqueseestejecutandoenesemomento(la funcinalaqueentrelstep in). Continue.Continuarlaejecucinhastaelfinalohastaelsiguiente breakpoint. Quit Debugging.TerminarlaejecucinpasoapasodelDebugger.
Este tipo de ejecucin permite ejecutar el programa por secciones llamadas celdas, de tal forma que se puede ejecutar mi cdigo por estas secciones o bloques paso a paso. Este modo de ejecucin puede ser controlado por el men Cell del Editor/Debugger. Pasos para una ejecucin en modo de celdas:
1. Habilitar el modo de celda del Editor/Debugger. 2. Definir los bloques o celdas con el signo de doble por ciento (%%) 3. Ejecutar las celdas de acuerdo a las siguientes opciones:
Evaluate Cell. Evala la celda o el bloque completo y se mantiene ah. Evaluate Cell and Anvance. Evala la celda y avanza a la siguiente. Evaluate Entire File. Evala todo el archivo.
El reporte de chequeo de cdigo llamado MLint es una herramienta que muestra problemas y errores potenciales en el cdigo de nuestro programa, tambin muestra ciertos consejos para el mejoramiento del cdigo. La herramienta MLint muestra un mensaje por cada lnea en donde haya cierto problema y determina como se puede mejorar esa lnea de cdigo.
Cuando se haya completado la escritura y el depurado del script M se puede hacer la publicacin del archivo en diferentes formatos: HTML, XML, LaTeX, Word o Power Point.
MATLAB dispone de varias funciones para la lectura y escritura interactiva de archivos (principalmente tipo texto). Algunas de las funciones ms elementales y de mayor uso son:
fopen. para abrir un archivo tipo texto. fclose. para cerrar un archivo tipo texto. fscanf. lee el contenido de un archivo. feof. verifica el fin de un archivo. textread. lee el contenido de un archivo sin necesidad de abrirlo. fprintf. imprime directamente dentro de un archivo.
Validacindeconocimientos
El principal objetivo de este laboratorio es que el alumno realice un tutorial en donde pueda ir explicando paso a paso como trabajan las funciones en MATLAB y lo ms importante es que no tendr que ir copiandopegando para realizar el reporte de su trabajo.