Anda di halaman 1dari 4

MATLAB

MATLAB es el principal producto de software de Mathworks, Inc., fundada por los analistas numricos Cleve Moler y John N. Little. Como su nombre lo indica, MATLAB se desarroll originalmente como un laboratorio para matrices. Hoy el elemento principal de MATLAB sigue siendo la matriz. La manipulacin matemtica de matrices se ha realizado muy adecuadamente en un ambiente interactivo fcil de utilizar, A esta manipulacin matricial, MATLAB agrega varias funciones numricas, clculos simblicos y herramientas para visualizacin. En consecuencia, la versin actual representa un ambiente computacional bastante amplio. MATLAB tiene diferentes funciones y operadores que permiten la adecuada realizacin de los mtodos numricos que aqu desarrollamos, stos se describirn con detalle en los captulos siguientes. Adems, se pueden escribir programas como los llamados archivos M (m-files) que sirven para realizar clculos numricos. Vamos ahora cmo funciona. Primero, usted se dar cuenta de que el uso normal de MATLAB est estrechamente relacionado con la programacin. Supongamos, por ejemplo, que queremos determinar la solucin analtica al problema del paracaidista, lo cual haramos con los siguientes comandos de MATLAB
>> g=9.8; >> m=68.1; >>cd=12.5; >> tf=2; >> v=g*m/cd*(1-exp(-cd/m*tf))

Obtenindose como resultado v =16.4050 La secuencia de comandos es como la secuencia de instrucciones en un lenguaje de programacin tpico. Pero, qu ocurre si usted se quiere desviar de la estructura secuencial? Aunque hay algunos caminos bien definidos para establecer recursos no secuenciales en el modo estndar de comandos, para introducir decisiones y loops, lo mejor es crear un documento de MATLAB al que se le llama archivo-m (m-file). Para hacer esto haga clic en File New Mfile y se abrir una ventana nueva con el encabezado MATLAB Editor/Debugger. En esta ventana usted puede escribir y editar programas en MATLAB. Escriba ah el cdigo siguiente:
g=9.8; m=68.1; cd=12.5; tf=2; v=g*m/cd*(1-exp(-cd/m*tf))

Obsrvese que los comandos se escriben exactamente en la misma forma en que se hara en el extremo frontal de MATLAB. Guarde el programa con el mismo nombre: analpara. MATLAB agregar en forma automtica la extensin .m para denotar que se

trata de un archivo M: analpara.m. Para correr el programa, se debe regresar al modo de

comando. La forma ms directa de efectuar esto consiste en hacer clic en el botn MATLAB Command Window que se encuentra en la barra de tareas (que por lo general est en la parte inferior de la pantalla). Ahora, el programa se puede correr al hacer clic en el archivo M, analpara, que debe parecerse a lo siguiente: >> analpara Si usted ha hecho todo en forma correcta, MATLAB debe responder con la respuesta correcta: v = 16.4050 Ahora, un problema con lo anterior es que est preparado para calcular slo un caso. El lector lo puede hacer ms flexible si hace que el usuario introduzca algunas de las variables. Por ejemplo, suponga que desea evaluar el efecto de la masa sobre la velocidad a los 2 s. Para hacer esto, el archivo M podra reescribirse como sigue:
g=9.8; m=input('masa (kg):'); cd=12.5; tf=2; v=g*m/cd*(1-exp(-cd/m*tf))

Guarde esto con el nombre de analpara2.m. Si escribi analpara2 mientras se encontraba en el modo de comando, la lnea mostrar lo que sigue: masa (kg): Entonces, el usuario introduce un valor como 100, y el resultado aparecer como: v = 17.3420 Ahora, debe quedar bastante claro cmo se puede programar una solucin numrica por medio de un archivo M. A fin de hacerlo, primero debemos entender la manera en que MATLAB maneja las estructuras lgica y de lazo (ciclos o loops). En la figura 2.9 se enlista el seudocdigo junto con el cdigo de MATLAB para todas las estructuras de control, con base en la seccin anterior. Aunque las estructuras del seudocdigo y el cdigo MATLAB son muy similares, existen algunas diferencias pequeas que deben destacarse. En especial, observe cmo hemos expresado la estructura DOEXIT. En lugar del DO usamos el WHILE(l). Como MATLAB interpreta al nmero 1 como correspondiente a verdadero, esta instruccin se repetir indefinidamente de la misma manera que el DO. El loop termina con un comando de interrupcin (break), el cual transfiere el control a la instruccin que se encuentra a continuacin, de la instruccin end que termina el ciclo. Tambin hay que observar que los parmetros del lazo controlado por contador estn ordenados de modo diferente. Para el seudocdigo, los parmetros del lazo estn especificados como start, flnish, step. Para MATLAB, los parmetros estn ordenados como start: step: finish. Ahora el siguiente archivo-m de MATLAB se puede desarrollar directamente, a partir del

seudocdigo dado en la figura 2.7. Escriba lo siguiente en el Editor/Debugger de MATLAB:


g=9.8; m=input('mass (kg):'); cd=12.5; ti=0; tf-2; vi=0; dt=0.1; t =ti; V = vi; h= dt ; while (1) if t + dt > tf h= tf - t; end dvdt = g - (cd / m) * v; v = v + dvdt * h; t = t + h; if t >= tf, break, end end disp(velocity (m/s):') disp(v)

Guarde este archivo como numpara.m, vuelva al modo de comandos y crralo dando numpara. Obtendr la siguiente salida:
masa (kg): 100 velocity (m/s) =17.4381

Por ltimo vamos a convertir este archivo-m en una funcin. Esto se puede hacer en el siguiente archivo-m basado en el seudocdigo de la figura 2.7:
function euler = f (dt,ti,tf,yi,m,cd) t = ti; y = yi; h = dt; while (1) if t + dt > tf h = tf- t; end dydt = dy(t, y, m, cd); y = y + dydt * h; t = t + h; if t >= tf, break, end end yy = y;

Guarde este archivo como euler.m y despus cree otro archivo-m para calcular la derivada,
function dydt = dy(t, v, m, cd) g = 9-8; dydt = g - (cd / m)* v;tf,vi,m,cd)

Guarde este archivo como dy.m y regrese al modo de comandos. Para llamar la funcin y ver el resultado, teclea los siguientes comandos:
m=68.1; cd=12.5; ti=0; tf=2.; vi=0; dt=0.1; euler(dt,ti,tf,vi,m,cd)

Una vez dado el ltimo comando, se desplegar el resultado ans = 15.5309 La combinacin del ambiente de MATLAB con el lenguaje de programacin para los archivosm nos abre un mundo de posibilidades para la solucin de problemas en ingeniera.
A) SEUDOCDIGO
IF/THEN:

B) MATLAB
if b = 0 rl - -c / b; end if a <0 b - sqrt(abs(a)); el se b - sqrt(a); end if class 1 x - x + 8: elseif class < 1 x - x - 8; elseif class < 10 x - x - 32; el se t x - x - 64; end switch a + b case 1 x - -5; case 2 x - -5 - (a + b) / 10: case 3 x - (a + b) / 10: otherwise x - 5; end while (1) i - i + 1: if i >- 10, break, end j i*x: end

IF condicin THEN Bloque verdadero ENDIF


IF/THEN/ELSE:

IF condicin THEN Bloque verdadero ELSE Bloque falso ENDIF


IF/THEN/ELSEIF:

IF condicin1 THEN Bloque ELSEIF condicin, Bloque, ELSEIF condicin, Bloque} ELSE Bloquet ENDIF
CASE:

SELECT CASE Expresin de prueba CASE Valor, Bloque, CASE Valor, Bloque CASE Valor3 Bloque CASE ELSE Bloquet END SELECT
DOEXIT:

DO Bloque, IF condicin EXIT B1oque ENDIF


LOOP CONTROLADO POR CONTADOR: DOFOR i =Inicio, fin, incremento

Bloque ENDO

for i = 1:10:2 x - x + i; endo

Anda mungkin juga menyukai