01-MANUAL-MATLAB-2014.docx

124
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERÚ FACULTAD DE INGENIERÍA QUÍMICA FACULTAD DE INGENIERÍA QUÍMICA TEXTO UNIVERSITARIO TEXTO UNIVERSITARIO LENGUAJE DE PROGRAMACION LENGUAJE DE PROGRAMACION M S M SC HELMER LOPEZ GUTIERREZ HELMER LOPEZ GUTIERREZ

Transcript of 01-MANUAL-MATLAB-2014.docx

5

4

8

UNIVERSIDAD NACIONAL DEL CENTRO DEL PER

FACULTAD DE INGENIERA QUMICA

TEXTO UNIVERSITARIO

lenguaje de programacion

m Sc HELMER LOPEZ GUTIERREZ

HUANCAYO PERU

DEDICATORIA

El presente texto lo dedicamos a nuestros estudiantes, quienes son el motivo de nuestra existencia en la UNCP.

PRESENTACION

En los momentos actuales en que la informacin es muy importante para la toma de decisiones, el uso de las las herramientas de la informtica se hace imperativamente necesaria, concientes de esa realidad en la Universidad nos mantenemos vigilantes de las nuevas tendencias de la informtica.

El presente manual pretende ser una pequea gua para iniciarse dentro del fabuloso mundo de la programacin como herramienta para los diferentes trabajos de investigacin y aplicacin para la bsqueda de soluciones.Este texto proporciona informacin para que el estudiante una base introductoria a la informtica, algoritmos y diagramas de flujo, el programa MATLAB, como una poderosa herramienta de clculo, simulacin y modelado matemtico, muy utilizada por estudiantes, ingenieros y cientficos, en universidades, institutos de investigacin e industrias, en todo el mundo, y muy fcil de usar.MATLAB es un entorno de computacin y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados clculos matemticos y la visualizacin grfica de los mismos. El lenguaje flexible e interactivo de MATLAB permite a ingenieros y cientficos expresar sus ideas tcnicas con simplicidad. Los poderosos y amplios mtodos de cmputo numrico y graficacin permiten la prueba y exploracin de ideas alternativas con facilidad, mientras que el ambiente de desarrollo integrado facilita producir resultados prcticos fcilmente.

INDICE

PresentacinIndiceIntroduccin pg.CAPITULO I

Introduccin a la Computacin5

CAPITULO II

Algoritmos y Diagramas de Flujo21

CAPITULO III

Operaciones Matemtica con MATLAB34

CAPITULO IV

Grficas con MATLAB55

CAPITULO V

Programacin en Matlab65

If end69

For end 70

While end72

Bibliografa98

CAPITULO I

INTRODUCCION A LA COMPUTACIN

OBJETIVOS: Dar a conocer al estudiate la configuracin de parte fsica y lgica de un sistema de computo y el entorno en el cual se va trabajar

CONTENIDOS: hardware y Software de un sistema de cmputo.

COMPUTADORA U ORDENADORExisten numerosas definiciones de una computadora, entre ellas las siguientes:1) Una computadora es un dispositivo capaz de realizar clculos y tomar decisiones lgicas a velocidades hasta miles de millones de veces ms rpidas que las alcanzables por los seres humanos. 2) Un ordenador es una mquina capaz de aceptar datos a travs de un medio de entrada, procesarlos automticamente bajo el control de un programa previamente almacenado, y proporcionar la informacin resultante a travs de un medio de salida.3) Una computadora es cualquier dispositivo en el que la informacin se representa en forma numrica y que, mediante el recuento, comparacin y manipulacin de estos nmeros (de acuerdo con un conjunto de instrucciones almacenadas en su memoria), puede realizar una multitud de tareas:Realizar complejos clculos matemticos, reproducir una meloda, etc.4) Una computadora es un dispositivo electrnico capaz de recibir un conjunto de instrucciones y ejecutarlas realizando clculos sobre los datos numricos.

COMPONENTES DE UNA COMPUTADORAUna computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

HardwareLlamamos Hardware a la parte fsica de la computadora; corresponde a las partes que podamos percibir con el sentido del tacto. En espaol la traduccin ms cercana es la de soporte fsico. El hardware que compone a una computadora es muy complejo, pues una pequea pieza puede contener millones de transistores.

SoftwarePara que el ordenador trabaje se necesita que le suministren una serie de instrucciones que le indiquen qu es lo que queremos que haga. Estas rdenes se le suministran por medio de programas. El software est compuesto por todos aquellos programas necesarios para que el ordenador funcione apropiadamente. El software dirige de forma adecuada a los elementos fsicos o hardware.

LAS PARTES DEL HARDWAREEl Hardware esta compuesto por cinco unidades o secciones bsicas: Entrada, Salida, CPU, Memoria y Almacenamiento Secundario. Estas unidades se describen a continuacin:

Unidades de Entrada y SalidaEs la parte del ordenador que le sirve para comunicarse con el exterior; es decir, para recibir y emitir informacin. A las unidades de entrada y salida se le conoce tambin como perifricos:

El monitor nos muestra la informacin.

El Teclado y el Mouse sirven para introducir los datos a la computadora.

El lector de CD-ROM sirve para leer la informacin almacenada en un CD.

Mediante la impresora se obtiene una versin en papel de la informacin procesada por la computadora.

Los parlantes sirven para escuchar los sonidos que emite la computadora a travs de una tarjeta de sonido.

Unidad Central de Procesamiento (CPU)La unidad central de proceso o CPU es la parte ms importante de un ordenador. Esta unidad se encarga de realizar las tareas fundamentales y es por ello el elemento principal de un sistema computarizado. Si hacemos un smil entre un ordenador y el cuerpo humano, la CPU hara el papel del cerebro: atender las solicitudes, mandar y hacer controlar la ejecucin.Un microprocesador es un circuito integrado o chip que contiene a la CPU. Su tamao es algo menor que el de una caja de cerillos.

La unidad central de procesamiento se divide en dos partes: una parte en la en la que se realizan las operaciones aritmticas y lgicas (unidad aritmtico-lgica) y otra parte que controla todo los proceso de ejecucin (unidad de control) en la computadora.

La unidad de control dirige todas las actividades del ordenador. Acta como el corazn del sistema, enviando impulsos elctricos (seales de control) para secuenciar (poner en orden) y sincronizar (establecer tiempos sucesivos de ejecucin) el funcionamiento de los componentes restantes.

Unidad de MemoriaLa Memoria Principal o Memoria Central es el dispositivo que sirve para almacenar los programas (instrucciones) que se quieran ejecutar (cuando haya que cargar el programa) y para almacenar los datos, los clculos intermedios y los resultados (cuando el programa ya se est ejecutando). Slo los datos almacenados en la memoria son procesables por la CPU. Los datos que estn contenidos en algn dispositivo de almacenamiento externo deben ser previamente introducidos a la memoria, por medio de una unidad perifrica. Dentro de la memoria principal, existen dos divisiones en funcin de las posibilidades de lectura/escritura o solamente lectura: RAM y ROM.

Memoria RAM (Random Access Memory)Es la memoria destinada a contener los programas cambiantes del usuario y los datos que se vayan necesitando durante la ejecucin de dichos programas. Es la memoria flexible y reutilizable. La memoria RAM se llama tambin memoria de usuario, por ser la memoria con la que trabaja el sistema para ejecutar los programas. Cuando se hace referencia a la capacidad de memoria de un ordenador se est hablando de la memoria RAM del sistema.

Memoria ROM (Read Only Memory) Memoria de solo lectura, llamada tambin memoria residente o permanente. Son memorias que slo permiten la lectura y no pueden ser re-escritas. Su contenido viene grabado por el fabricante de la computadora y no puede ser cambiado. Debido a estas caractersticas es que esta memoria se usa para almacenar informacin vital para el funcionamiento del sistema. La gestin del proceso de arranque, la verificacin inicial del sistema, la carga del sistema operativo y diversas rutinas de control de dispositivos de entrada/salida suelen ser las tareas encargadas a los programas grabados en ROM. Los programas que constituyen la informacin vital de una computadora forman la llamada BIOS (Basic Input Output System).

Unidad de Almacenamiento SecundarioEsta es el almacn de largo plazo y de alta capacidad de la computadora. Los programas y datos que no estn siendo utilizados por las otras unidades normalmente se colocan en dispositivos de almacenamiento secundario hasta que necesiten, posiblemente horas, das, meses o incluso aos despus. Ejemplo: Disco duro.

EL SOFTWAREEl ordenador, por s mismo, no puede realizar ninguna funcin; es necesario que algo le dirija y organice. Este "algo" son las instrucciones que el programador escribe. Estas instrucciones, agrupadas en forma de programas que son depositados en la memoria del ordenador, forman lo que se denomina "software". El software es el nexo de unin entre el hardware y el hombre.

Tal y como hemos definido el software, ste es un conjunto de programas. La pregunta ahora es: Qu es un programa? Un programa es una secuencia de instrucciones que pueden ser interpretadas por un ordenador, obteniendo como fruto de esa interpretacin un determinado resultado.

Podemos clasificar en software en dos grandes grupos: software de sistema (Sistema Operativo) y software de aplicacin.

Software del Sistema o Sistema Operativo El sistema operativo es aquel conjunto de programas cuyo objeto es facilitar el uso eficiente de la computadora. Este conjunto de programas administra los recursos del sistema (hardware).El sistema operativo se puede dividir en programas de control y programas de servicio. Los programas de control son los que van orientados a facilitar, automatizar y mejorar el rendimiento de los procesos en el ordenador (simultaneidad de operacin de perifricos, tratamiento de errores, etc.); como ejemplo se tiene al administrador de tareas de windows. Los programas de servicio o de proceso son los que van orientados a proporcionar facilidades de comunicacin con el usuario (Ejemplo: aplicaciones como el explorador de windows)

Software de AplicacinEl software de aplicacin est constituido por aquello programas que hacen que el ordenador coopere con el usuario en la realizacin de tareas tpicamente humanas, tales como gestionar una contabilidad, escribir un texto, hacer grficos y diagramas, realizar clculos repetitivos, etc. Algunos ejemplos de software de aplicacin son: procesadores de texto (Word), hojas de clculo (Excel), sistemas de bases de datos (Access), etc.La diferencia principal entre los programas de aplicacin y el sistema operativo estriba en que los del sistema operativo suponen una ayuda al usuario para relacionarse con el ordenador y hacer un uso ms cmodo del mismo, mientras que los de aplicacin son programas que cooperan con el usuario para la realizacin de tareas que anteriormente haban de ser llevadas a cabo nicamente por el hombre (sin ayuda de ordenador). Es en estos programas de aplicacin donde se aprecia de forma ms clara la ayuda que puede suponer un ordenador en las actividades humanas, ya que la mquina se convierte en un auxiliar del hombre, liberndole de las tareas repetitivas.

LENGUAJES

Lenguaje es el empleo de notaciones, seales y vocales (voz, palabras) para expresar ideas, comunicarse, y establecer relaciones entre los seres humanos. Un lenguaje no slo consta de palabras, sino tambin de su pronunciacin y los mtodos para combinar las palabras en frases y oraciones; los lenguajes se forman mediante combinaciones de palabras definidas en un diccionario terminolgico previamente establecido. Las combinaciones posibles deben respetar un conjunto de reglas sintcticas establecidas, a ello se le conoce con el nombre de Sintaxis. Adems, las palabras deben tener determinado sentido, deben ser comprendidas por un grupo humano en un contexto dado, a ello se le denomina Semntica.

TIPOS DE LENGUAJES

Aunque existen muchas clasificaciones, en general se puede distinguir entre dos clases de lenguajes: los lenguajes naturales (ingles, alemn, espaol, etc.) y los lenguajes artificiales o formales (matemtico, lgico, computacional, etc.). Tanto el lenguaje natural como el lenguaje artificial son humanos. El primero es natural porque se aprende (o adquiere) inconsciente e involuntariamente. Ningn beb decide aprender o no la lengua que hablan sus padres, y ningn padre sienta a su hijo y le ensea las reglas sintcticas de su lengua. Las personas hablan y se entienden, pero generalmente no se cuestionan las reglas que utilizan al hablar. Por otra parte, los lenguajes artificiales s se aprenden de manera voluntaria y conscientemente. Un ejemplo de lenguaje artificial son los lenguajes de programacin utilizados para desarrollar programas informticos.

TIPOS DE LENGUAJES

Un Lenguaje de Programacin es un conjunto de reglas, notaciones, smbolos y/o caracteres que permiten a un programador poder expresar el procesamiento de datos y sus estructuras en la computadora. Cada lenguaje posee sus propias sintaxis. Tambin se puede decir que un programa es un conjunto de rdenes o instrucciones que resuelven un problema especfico basado en un Lenguaje de Programacin.

Existen varias clasificaciones para los lenguajes de programacin.

Clasificacin de los Lenguajes de ProgramacinLos programadores escriben instrucciones en diversos lenguajes de programacin. La computadora puede entender directamente algunos de ellos, pero otros requieren pasos de traduccin intermedios. Hoy da se utilizan cientos de lenguajes de computadora.

Los Lenguajes de Programacin pueden clasificarse de acuerdo con su uso en:1. Lenguajes desarrollados para el clculo numrico. Tales como FORTRAN, Mathematica y Matlab.2. Lenguajes para sistemas. Como C, C++ y ensamblador.3. Lenguajes para aplicaciones de Inteligencia Artificial. Tales como Prolog, y Lisp.

Tambin se pueden clasificar de acuerdo con el tipo de instrucciones de que constan. En esta clasificacin se tiene al lenguaje mquina, al lenguaje ensamblador y al lenguaje de alto nivel. Se presenta a continuacin una descripcin de cada uno de ellos.

Lenguaje mquina (Binario)Una computadora slo puede entender el lenguaje mquina. El lenguaje de mquina ordena a la computadora realizar sus operaciones fundamentales una por una. Dicho lenguaje es difcil de usar para lar persona porque trabajar con nmeros no es muy cmodo adems de que estos nmeros estn en formato binario.

Lenguajes de bajo nivel (ensamblador)Para facilitar y agilizar su labor a los programadores, se buscaron nuevos lenguajes. Cuando abstraemos los opcodes y los sustituimos por una palabra que sea una clave de su significado, se tiene el concepto de Lenguaje Ensamblador. As, el lenguaje ensamblador representa las acciones del ordenador mediante pequeas abreviaturas de palabras en ingls. Podemos entonces definir al Lenguaje Ensamblador de la siguiente forma: Lenguaje Ensamblador consiste en asociar a los opcodes palabras clave que faciliten su uso por parte del programadorNo obstante, el lenguaje ensamblador requiere de muchas instrucciones para realizar simples operaciones.

Lenguajes de alto nivelPara acelerar aun ms el proceso de programacin se desarrollaron los lenguajes de alto nivel, en los que se puede escribir un slo enunciado para realizar tareas sustanciales. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que asemejan al ingls cotidiano y contiene notaciones matemticas de uso comn. El concepto de lenguaje de alto nivel naci con el lenguaje FORTRAN (FORmula TRANslation) que, como su nombre indica, surgi como un intento de traducir frmulas matemticas al lenguaje ensamblador y por consiguiente al lenguaje de mquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes que siguen el mismo concepto: buscar la mayor abstraccin posible y facilitar la vida al programador, aumentando la productividad.

EJEMPLOS DE TIPOS DE LENGUAJES

Lenguaje Mquina

100001010101010100100101010100100011100101110

Lenguaje de Nivel Bajo (Ensamblador)

LOAD R1, (B)LOAD R2, (C)ADD R1, R2STORE (A), R1

Lenguaje de Alto Nivel

A = B + C;

HISTORIA DE LOS LENGUAJES DE PROGRAMACIONSe presentan a continuacin datos relevantes de algunos de los lenguajes de programacin de mayor importancia histrica.

FORTRANFORTRAN es el ms viejo de los lenguajes de alto nivel. Fue diseado por IBM en 1950. El idioma se hizo tan popular en los 60s que otros desarrolladores empezaron a producir sus propias versiones y esto llev a una gran cantidad de dialectos (en 1963 haba 40 compiladores de FORTRAN diferentes). En 1972 se cre FORTRAN66, como una forma de estandarizar la estructura del lenguaje. Luego, en 1980, se estableci una norma oficial para el lenguaje avalada por la Organizacin de Normas Internacionales (ISO). Tal versin es normalmente conocida como FORTRAN 77 (dado que el proyecto final se complet en 1977). En 1991 surge FORTRAN90, un desarrollo mayor del idioma pero que incluye todos los elementos de FORTRAN77 para facilitar la compatibilidad. Finalmente, en 1997, surge FORTRAN95 o High Performance Fortran (HPF).

BASICBASIC es la abreviacin de Beginners All-purpose Symbolic Instruction Code. Basic fue desarrollado en la Universidad de Dartmouth en 1964 bajo la direccin de J. Kemeny y T. Kurtz. Surgi como un idioma simple de aprender y fcil de traducir. En los 70s, cuando se cre la computadora personal Altair, Bill Gates y Paul Allen implementaron su propia versin de Basic en dicha computadora. Con ello comenz el futuro de BASIC y de la PC. En ese tiempo, Gates era estudiante de Harvard y Allen era un empleado de Honeywell. La versin BASIC de Gates ocupaba un total de 4KB de memoria incluyendo el cdigo y los datos que se usaron para el cdigo fuente. Luego Gates implement BASIC en otras plataformas (Apple, Comodor y Atari) y fue a partir de entonces que la corporacin de Microsoft empez su reinado en el mundo de las PC. Ms tarde en los 70s, surgi el sistema operativo MS-DOS de Bill Gates que inclua un intrprete de BASIC. La versin distribuida con MS-DOS era GW-BASIC y poda ser ejecutada en cualquier mquina que pudiera ejecutar DOS.CEl lenguaje C rene caractersticas de programacin tanto de los lenguajes ensambladores como de los lenguajes de alto nivel; este lenguaje posee gran podero basado en sus operaciones a nivel de bits (propias de ensambladores) y la mayora de los elementos de la programacin estructurada de los lenguajes de alto nivel. Por ello es que C ha sido el lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales de la programacin de computadoras. En 1970 Ken Thompson de los laboratorios Bell cre la primera versin del lenguaje, la cual poda ejecutarse en el sistema operativo UNIX; a este lenguaje se le llam lenguaje B y tena la desventaja de ser lento. En 1971 Dennis Ritchie, con base en el lenguaje B, desarroll NB que luego cambi su nombre por C. Su diseo incluy una sintaxis simplificada, la aritmtica de direcciones de memoria (permite al programador manipular bits, bytes y direcciones de memoria) y el concepto de apuntador. Adems, al ser diseado para mejorar software de sistemas, se busc que generase cdigos eficientes y uno portabilidad total, es decir el que pudiese correr en cualquier mquina. Logrados los objetivos anteriores, C se convirti en el lenguaje preferido de los programadores profesionales.

C++En 1980 Bjarne Stroustrup, tambin de los laboratorios Bell, adicion al lenguaje C las caractersticas de la programacin orientada a objetos (incluyendo la ventaja de una biblioteca de funciones orientada a objetos) y lo denomin C con clases. Para 1983 dicha denominacin cambi a la de C++.

MATLABCleve Moler escribi el MATLAB original en FORTRAN, durante varios aos. Los algoritmos matriciales subyacentes fueron proporcionados por los muchos integrantes de los proyectos LINPACK y EISPACK. El MATLAB actual fue escrito en C por The Mathworks. La primera versin fue escrita por: Steve Bangert, que escribi el intrprete parser Steve Kleiman que implement los grficos John Little y Cleve Moler que escribieron las rutinas de anlisis, la gua de usuario y la mayora de los ficheros .m. MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemtico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M). Est disponible para las plataformas Unix, Windows y Apple Mac OS X.Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de datos y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI). Adems, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets).Es un software muy usado en universidades y centros de investigacin y desarrollo. En los ltimos aos ha aumentado el nmero de prestaciones, como la de programar directamente procesadores digitales de seal o crear cdigo VHDL.

CODIGO ASCII

Existe una equivalencia en informtica entre los nmeros naturales entre 0 y 255 (posibles valores de un byte) y los caracteres, de forma que a cada nmero le corresponde una letra, smbolo o cdigo. La equivalencia ms utilizada es la tabla ASCII (American Standard Code for Information Interchange). Cada caracter (por ejemplo la letra A) tiene asignado un nmero por el ordenador de forma que podemos referenciarlo mediante dicho nmero. Por ejemplo, la letra A tiene por cdigo de identificacin el nmero 65, la B el 66, el 2 el 50, etc. Se proporciona aqu una copia de esta tabla para su referencia.

Para obtener un carcter a travs del teclado, presione la tecla Alt y, simultneamente (sin soltar la tecla), presione el nmero de cdigo correspondiente.

3277M122z167212

33!78N123{168213

3479O124|169214

35#80P125}170215

36$81Q126~171216

37%82R127-172217

38&83S128173218

39'84T129174219

40(85U130175220

41)86V131176221

42*87W132177222

43+88X133178223

44,89Y134179224

45-90Z135180225

46.91[136181226

47/92\137182227

48093]138183228

49194^139184229

50295_140185230

51396`141186231

52497a142187232

53598b143188233

54699c144189234

557100d145190235

568101e146191236

579102f147192237

58:103g148193238

59;104h149194239

60107k152197242

63?108l153198243

64@109m154199244

65A110n155200245

66B111o156201246

67C112p157202247

68D113q158Pt203248

69E114r159204 249

70F115s160205250

71G116t161206251

72H117u162207252N

73I118v163208253

74J119w164209254

75K120x165210

76L121y166211

Note que los cdigos entre 0 y 31 son caracteres de control y se suelen llamar "no imprimibles", pues su equivalencia no es un caracter sino una determinada accin. Por ejemplo, el cdigo 13 es equivalente a la pulsacin de ENTER. Brevemente, los ms interesantes son:

cdigoequivale cdigoequivale

07beep (pitido del altavoz del PC) 27ESC (tecla escape)

08Backspace28 cursor a la derecha

09Tab (tabulacin) 29cursor a la izquierda

10line feed (avance de lnea) 30cursor arriba

13CR (retorno de carro)31cursor abajo

NOTA:Los cdigos ASCII a partir del 127 son definibles y dependen de cada mquina. Los representados aqu corresponden con los que son imprimibles desde HTML. En una IBM PC en MS-DOS, por ejemplo, estos cdigos pueden ser distintos a los aqu representados.

EJERCICIOS PROPUESTOS

1. Destapar una computadora usada y describir sus partes principales.

2. Hacer un diagrama de rbol y describir los tipos de programas (software) que actualmente se vienen usando en el centro de computo de la F.I.Q.

3. Hacer una decripcin de los perifricos de un equipo de computo.

4. Describa el Sistema Operativo instalado en las PC del centro de cmputo de la FIQ?

5. Que es Software libre?

6. El Hardware puede funcionar sin el Software?

7. Describa la utilidad de un Sistema Operatvo

8. En una PC puede instalarse 2 sistemas operativos?

9. Si en mi teclado no encuentro un smbolo, como puedo obtenerlo?

10. Decriba 2 unidades de almacenamiento secundario.

EVALUACIN

1. Cuales son las partes principales de una computadora?

2. Describa los principales lenguajes de programacin

3. Hacer una decripcin de los perifricos de un equipo de computo.

4. Describa el Sistema Operativo LINUX.

5. Describa el sistema operativo que tienen las computadoras del centro de computo dela FIQ.

6. En que tipo de memoria se almacenan cuando se realiza un trabajo en una computadora? Describa.

7. Describa la utilidad de los antivirus

8. Que diferencia existe entre un Sistema Operativo, un procesador de textos y un lenguaje de programacin?

9. Cul es la utilidad que tienen los cdigos ASCCI?

10. Cul es la unidad de almacenamiento que utiliza?

Bibliografa Referencial

1. Chapra, Steven Mtodos Numricos para Ingenieros. Editorial Mc. Graw Hill. Mxico. 2004.2. Nakamura, Shoichiro Analisis Numrico y Visualizacin con Matlab. Editorial Prentice may. Mxico. 1997.3. Morales Marchena, Hern. Mtodos numricos y Visualizacin Grfica Editorial Megabit. Peru. 2005.4. Perez, Cesar Matlab y sus Aplicaciones en las Ciencias y la Ingeniera Editores Prentice. Espaa. 2002 .5. Vasquez Paragulla, Julio Diseo de Programacin Edit. San Marcos PERU . 2000.6. KERLINGER, F. N. Y LEE, H. B. Investigacin del Comportamiento: Mtodos de Investigacin en ciencias sociales. Mc Graw Hill Interamericana Editores. Mxico. 2002.

CAPITULO II

ALGORITMOS Y DIAGRAMAS DE FLUJO

OBJETIVOS: Explicar los algoritmos y diagramas de flujo como parte de un proceso de programacin para cualquier lenguaje de programacin.

CONTENIDOS: Pasos para resolver un problema, algoritmos, digramas de flujos.

PASOS PARA LA SOLUCION DE PROBLEMASEl proceso de resolucin de un problema con una computadora conduce a la escritura de un programa y a su ejecucin en la misma. Aunque el proceso de disear programas es esencialmente un proceso creativo, se pueden considerar tambin como una serie de fases o pasos comunes que generalmente deben seguir todos los programadores.Las siguientes son las etapas que se deben cumplir para resolver con xito un problema de programacin:1. Definicin del problema 2. Anlisis del problema 3. Seleccin de la mejor alternativa 4. Crear Diagrama de Flujo5. Codificacin 6. Compilacin 7. Pruebas8. Documentacin externa

Definicin del ProblemaEst dada por el enunciado del problema, el cual debe ser claro y completo. Es importante que conozcamos exactamente que se desea de la computadora; mientras que esto no se comprenda no tiene caso pasar a la siguiente etapa.

Anlisis del ProblemaEntendido el problema (que se desea obtener de la computadora), para resolverlo es preciso analizar: Los datos o resultados que se esperan. Los datos de entrada que se deben suministrar. El proceso al que se requiere someter dichos datos a fin de obtener los resultados esperados. Frmulas, ecuaciones y otros recursos necesarios.

Una recomendacin muy prctica es el que nos pongamos en el lugar de la computadora, y analizar que es necesario que me ordenen y en que secuencia para poder producir los resultados esperados.

Seleccin de la Mejor Alternativa Analizado el problema posiblemente tengamos varias formas de resolverlo; lo importante es determinar cual es la mejor alternativa. Esto es, la que produce los resultados esperados en el menor tiempo y al menor costo.

Crear Diagrama de FlujoUna vez que sabemos como resolver el problema, pasamos a dibujar grficamente la lgica de la alternativa seleccionada. Eso es precisamente un Diagrama de Flujo: la representacin grfica de una secuencia lgica de pasos a cumplir por la computadora para producir un resultado esperado. La experiencia nos ha demostrado que resulta muy til trasladar esos pasos lgicos planteados en el diagrama a frases que indiquen lo mismo; es decir, hacer una codificacin del programa pero utilizando instrucciones en Espaol, como si le estuviramos hablando a la computadora. Esto es lo que se denomina Pseudocdigo. Cuando logremos habilidad para desarrollar programas, es posible que no sea necesario elaborar ni el diagrama de flujo ni el pseudocdigo del programa.

CodificacinUna vez que hayamos elaborado el diagrama, codificamos el programa en el lenguaje de programacin seleccionado. Esto es, colocamos cada paso del diagrama en una instruccin o sentencia utilizando un lenguaje que la computadora reconoce. Este programa es el que se conoce como Cdigo Fuente (Source Code).Todos los lenguajes de programacin proveen facilidades para incluir lneas de comentarios en los programas. Estos comentarios aclaran lo que se ordena a la computadora y facilitan la compresin del programa. Puesto que estos comentarios no se toman cuenta como instrucciones y aparecen en los listados del programa, resulta muy conveniente agregar abundantes comentarios a todo programa que codifiquemos. Esto es lo que se denomina Documentacin Interna.

CompilacinUtilizamos ahora un programa Compilador, el cual analiza todo el programa fuente y detecta errores de sintaxis ocasionados por fallas en la codificacin. Las fallas de lgica que pueda tener nuestro programa fuente no son detectadas por el compilador. Cuando no hay errores graves en la compilacin, el compilador traduce cada instruccin del cdigo fuente a instrucciones propias de la mquina (Lenguaje de Maquina), creando el Programa Objeto. Cuando hay errores, stos se deben corregir sobre el mismo programa fuente. El paso de compilacin se repite hasta eliminar todos los errores y obtener el programa ejecutable.

PruebasCuando tenemos el programa ejecutable (en lenguaje de maquina) ordenamos al computador que lo ejecute, para lo cual suministramos datos de prueba. Los resultados obtenidos se analizan para identificar cualquiera de las siguientes situaciones: La lgica del programa esta bien, pero hay errores sencillos, los cuales se corrigen modificando algunas instrucciones o incluyendo unas nuevas; el proceso debemos repetirlo desde el paso 5. Hay errores muy graves ocasionados por fallas en la lgica, y lo ms aconsejable es que regresemos al paso 2 para analizar nuevamente el problema y repetir todo el proceso. No hay errores y los resultados son los esperados. En este caso, el programa lo podemos guardar permanentemente para usarlo cuando necesitemos ejecutarlo nuevamente.

Documentacin ExternaCuando el programa ya se tiene listo para ejecutar, es conveniente que hagamos su documentacin externa. Una buena documentacin externa incluira, por ejemplo: Enunciado del problema Narrativo con la descripcin de la solucin Descripcin de las variables utilizadas en el programa, cada una con su respectiva funcin Resultados de la ejecucin del programa

ALGORITMOS Y DIAGRAMAS DE FLUJO

AlgoritmoUn algoritmo es un conjunto de acciones que determinan la secuencia de los pasos a seguir para resolver un problema especfico. Sus pasos deben estar definidos con precisin de forma que no existan ambigedades que den origen a elegir una opcin equivocada. Los algoritmos son finitos; es decir, su ejecucin termina en un nmero determinado de pasos. La mayora de los algoritmos de utilidad al programador poseen 3 partes principales:Los algoritmos pueden representarse a travs de un conjunto de palabras por medio de las cuales se puede representar la lgica de un programa. Este conjunto de palabras constituyen lo que se conoce como pseudocdigo. Adems, los algoritmos se pueden representar grficamente a travs de un diagrama de flujo. Ambas herramientas se describen a continuacin.

Diagramas de flujoUn diagrama de flujo es una representacin grfica de un algoritmo o de una parte del mismo. La ventaja de utilizar un diagrama de flujo es que se le puede construir independientemente del lenguaje de programacin, pues al momento de llevarlo a cdigo se puede hacer en cualquier lenguaje. Dichos diagramas se construyen utilizando ciertos smbolos de uso especial como son rectngulos, valos, pequeos crculos, etc.; estos smbolos estn conectados entre s por flechas conocidas como lneas de flujo. A continuacin se presentan estos smbolos y su significado.

Smbolos y su SignificadoTerminal. Representa el inicio y fin de un programa.

Proceso. Son acciones que el programa tiene que realizar

Decisin. Indica operaciones lgicas o de comparacin.

Entrada. Nos permite ingresar datos.

Salida. Es usado para indicar salida de resultados

Selector mltiple. Representa una decisin con mltiples alternativas.

Conector. Enlaza dos partes cualesquiera de un programa

Lnea de flujo. Indica direccin de flujo del diagrama. Las flechas de flujo no deben cruzarse. Los diagramas se leen de arriba hacia abajo y de izquierda a derecha.

Conector fuera de pgina. Representa conexin entre partes del algoritmo representadas en pginas diferentes.

PseudocdigoA continuacin se muestran algunos ejemplos de palabras utilizadas para construir algoritmos en pseudocdigo. PALABRAUTILIZACIN

ABREAbre un archivo

CASOSeleccin entre mltiples alternativas

CIERRACierra un archivo

ENTONCES Complemento de la seleccin SI - ENTONCES

ESCRIBEVisualiza un dato en pantalla

FINFinaliza un bloque de instrucciones

HASTACierra la iteracin HAZ HASTA

HAZInicia la iteracin HAZ HASTA

INICIOInicia un bloque de instrucciones

LEERLeer un dato del teclado

MIENTRAS Inicia la iteracin mientras

NONiega la condicin que le sigue

ODisyuncin lgica

O - BIENComplemento opcional de la seleccin SI - ENTONCES

PARAInicia un nmero fijo de iteraciones

SIInicia la seleccin SI-ENTONCES

USUALOpcional en la instruccin CASO

YConjuncin lgica

{Inicio de comentario

}Fin de comentario

> 4*5+6*22+2*99Ans= 430

Como otra posible alternativa el calculo, se puede resolver almacenando informaciones en variables de matlab>> A= 4;>> B=2;>>SUMA=A + BSUMA = 6

El punto y coma al final de la lnea, le dice a matlab que evalu la lnea pero que no nos diga la respuesta. >> N1=12;>> N2=14;>>promedio=(N1+N2)/2promedio = 13

>>3^2-5-6/3*2>>3^2-5-6/(3*2)

OPERADORES ARITMETICOS Y LOGICOS

OPERADORFUNCION QUE CUMPLE

+Suma de escalares, vectores o matrices

-Resta de escalares, vectores o matrices

*Producto de escalares o matrices

.*Producto de escalares o de vectores

/Cociente escalar o B/A=B*inv(A), donde A y B son matrices

./A./B=[A(i,j)/B(i,j)], donde A y B son vectores [dim(A)=dim(B)]

^Potencia de escalares o potencia escalar de matriz (Mp)

. ^Potencia de vectores (A.^B)=[A(i,j)B(i,j)],donde A y B son vectores

- = a -= b Establece la condicin de a b.

> a > b Establece la condicion de a mayor que b

= a >= b Establece la condicion de a mayor o igual que b

X=[4,2,6]; Y=[2,5,3];>>a=X+Y>>b=X-Y>>c=X.*Y

Comandos de Ayuda

Help: Para saber el significado de un comando digite help, seguido del comando del cual se desea obtener informacion.

>>help quit>>help + % nos permite visualizar caracteres y operadores especialesdel matlab.>>what % produce una lista de archivo.>>who % produce una lista de las variables del espacio de trabajo actual.>>doc help % permite visualizar el documento de ayuda.

FUNCIONES BASICAS

Variables

En Matlab como en cualquier leguaje de programacion se utilizan variables, bajo ciertas reglas:No pueden comenzar con un numero, aunque si pueden tener numeros en su estructura.La mayusculas y minusculas se diferencian en los nombres de las variables.Los nombres no pueden utilizar operadores ni punto. No es valido usar / * - + . ; : Una variable puede tener hasta 31 caracteres.

>>V=5;>>v=2;>>producto=V*v

La variable V valdr 5 mientras no se le cambie su valor mediante una nueva asignacin, una vez declarada la variable podemos utilizarla en los clculos.>>r=5;>>area=2*pi*rarea = 31.4159

>>clear r % borra simplemente la variable r de la memoria de trabajo >>clear r area % borra ambos r y area. >>clear % borra todas las variables usadas de la memoria.>>clc % limpia la informacion de la pantalla de comandos

Matlab tiene variables especiales que son las siguientes:VariablesValor

AnsNombre por defecto de las variables usada por los resultados

PiRazn de una circunferencia a su dimetro

EpsNmero mas pequeo tal que, cuando se le suma 1, crea un numero en coma flotante en el computador mayor que 1

InfInfinito, p. e.,1/0

NaNMagnitud no numrica (Not-a-Number), p.e.,0/0

i y jImaginario i = j =

realminEl nmero real positivo ms pequeo que es utilizable 2-1022

RealmaxEl nmero real positivo ms grande que es utilizable (2-e) 2 1023

Formatos de visualizacin de nmeros

Es posible modificar el formato numrico por defecto especificando un formato numrico diferente usando la opcin numerical format en el men option o escribiendo la orden apropiada en matlab.

Orden de matlabComentarios

Format shortVisualizacin por defecto con 4 cifras decimales

Format short e4 decimales + la potencia de 10 necesaria

Format longOfrece el resultado con 16 cifras decimales

Format long e 16 decimales + la potencia de 10 necesaria

Format hex Hexadecimal

Format bank2 dgitos decimales

Format +Positivo, negativo o cero

Format ratAproximacin racional

vpaoperaciones nOfrece el resultado con n digitos decimales exactos

digits(n)Ofrece los resultados con n digitos exactos

Es importante observar que matlab no cambia la representacin interna de un nmero cuando se escogen diferentes formatos; solo se modifica la visualizacin del nmero.>>pians = 3.1416>>format long>>pians =3.14159265358979

>>170/13>>format long; 174/13>>format long e; 174/13>>format short e; 174/13>>format hex; 174/13>>format bank; 174/13>>format hex; 174/13>>vpa 74/13 10 % muestra el resultado con 10 digitos decimales exactos>>digits(20);vpa 74/13 % muestra el resultado con 20 dgitos decimales exactos

Comando de lectura y escritura

input .- Permite el ingreso de datos al programa a travez del teclado asignandole a una variable, esta orden puede usarse con un mensaje en la linea de comandos.

>> x = input (' ');>> n = input ('ingrese un numero:');>> N = input ('ingrese un nombre:', 's') % s indica que la entrada que se hara por teclado es una cadena

fprintf .- Permite la visualizacion de un valor numerico o el resultado de una expresion guardada por el usuario.>> vol = 50;>> fprintf (' el volumen de la esfera es : %12.0f \n', vol);\n' indica que la impresin de la variable vol sera en la siguiente linea.%12.0f formato de un numero entero.%12.5f formato de un numero real con 5 decimales.

disp .- Permite la visualizar en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre. En realidad, disp siempre imprime vectores y/o matrices, las cadenas de caracteres se consideran un caso particular de vectores.>> disp (' Esto es una prueba ' );>> disp ( pi );>> disp (' Programa terminado ' );>> A = rand(4,4)>> disp ( A )

Funciones Matemticas

Una lista parcial de las funciones comunes que posee Matlab se muestra en la tabla que sigue. la mayora de estas funciones se utilizan de la misma forma en que ustedes las escribe matemticamente:>>a=3;>>b=4;>>hipot=sqrt(a^2+b^2)hipot = 5

>>x=sqrt(2)/2 x = 0.7071

>> y=asin (x) y = 0.7854

>> y_deg=y*180/pi y_deg= 45.0000

Estas ordenes encuentran el ngulo donde la funcin seno tiene un valor de /2Mientras que su calculadora puede trabajar en grados o radianes, MATLAB solo opera en radianes, donde 2 radianes es igual a 360 grados.

>> y=sqrt(3^2+4^2) % muestra que 3-4-5 son lados de un tringulo rectngulo >> y=rem(23,4) % nos muestra el resto de 23/4>>x=2.6, y1=fix(x), y2=floor(x), y3=ceil(x), y4=round(x) x = 2.6000 y1 = 2 y2 = 2 y3 = 3 y4 = 3

Funciones Trigonometricas

sin(x)Seno de x

asin(x)Arco seno de x

abs(x)Valor absoluto o magnitud de un numero complejo

sinh(x)Seno hiperbolico de x

asnh(x)Arcoseno hiperbolico de x

cos(x)Coseno de x

acos(x)Arcocoseno de x

cosh(x)Coseno hiperblico de x

acosh(x)Arco coseno hiperblico de x

tan(x)Tangente de x

atan(x)Arcotangente de x

tanh(x)Tangente hiperbolico de x

atanh(x)Arcotangente hiperbolico de x

cot(x)Cotangente de x

sec(x)Secante de x

csc(x)Cosecante de x

>> x=[1,2,3 ; 9,8,7];>> sin(x)ans =

0.8415 0.9093 0.1411 0.4121 0.9894 0.6570

los corchetes se utilizan para definir una variable con multiples valores

>> x=[0.8, 0.9, 0.1; 0.8, 0.9, 0.1; 0.4, 0.9, 0.6];>> z=asin(x)

>> y=sech(x)

Otras Funciones Matematicas

Abs(x)Valor absoluto de x

sqrt(x)Ruiz cuadrada de x

real(x)Parte real de un numero complejo x

imag(x)Parte imaginaria de un numero complejo x

sign(x)Funcin signo: devuelve el signo del argumento ,p.e.,sign(1.2)=1, sing(-23.4)=-1, sing(0)=0

exp(x)Exponencial ex

log(x)Logaritmo natural de x

log10(x)Logaritmo decimal de x

log2(x)Logaritmo en base 2 de x

min(x)Devuelve el valor minimo de un arreglo x

max(x)Devuelve el valor maximo de un arreglo x

sort(x)Ordena elementos del arreglo x ascendentemente

Sum(x)Suma de todos los elementos de un arreglo x

Num2str(x)Convierte en cadena el numero x

Str2double(x)Convierte en numero real la cadena x

ceil(x)Redondea hacia mas infinito

conj(x)Complejo conjugado

angle(x)Angulo de un numero complejo

Fix(x)Redondea hacia cero

floor(x)Redondea hacia menos infinito

rem(x,y)Restos despus de la divisin: rem (x,y) da resto de x/y

round(x)Redondea hacia el entero mas prximo

>> x=[-1,5,-3, - 9];>> abs(x)

>> x=3 + 2i;>> imag(x)>> real(x)

>> x=[2,1,7, 0];>> sort(x)>> sort([2,1,7, 0]')

Nmeros complejos

Para ilustrar los nmeros complejos, considere la ecuacin cuadrtica ax2 +bx+c=0.Los valores de x donde esta ecuacin es cierta, i.e.. las races de estas ecuaciones vienen dadas por:

x1,x2 =

si a=1, b=5 y c=6, la solucin se puede encontrar utilizando MATLAB como:>>a=1; b=5; c=6;>>x1 =(-b+sqrt(b^2-4*a*c))/(2*a)x1 = -3>>x2 =(-b-sqrt(b^2-4*a*c))/(2*a)x2 = -2>>a*x1 ^2+b*x1 +c %sustituir x1 para comprobar respuesta ans= 0>>a*x2 ^2+b*x2 +c %sustituir x2 para comprobar la respuesta ans= 0

Las dos ltimas rdenes se utilizaron para confirmar los resultados. En este caso el termino de la raz cuadrada es positivo y las dos races son nmeros reales. Sin embargo, si a=1, b=4, c=13 las soluciones son:

x1= -2+3

x2= -2-3

El trmino no se puede simplificar ms y como resultado de esto se dice que las soluciones son complejas. Los trminos -2 en x1 y x2 son las partes real de la solucin. Los trminos 3 y -3 son las partes imaginarias de la soluciones.

>>a=1; b=4; c=13;>>x1 =(-b+sqrt(b^2-4*a*c))/(2*a)x1 = -2.0000 + 3.0000i>>x2 =(-b-sqrt(b^2-4*a*c))/(2*a)

x2 = -2.0000 - 3.0000i>>a*x1 ^2+b*x1 +c %sustituir x1 para comprobar respuestaans= 0>>a*x2 ^2+b*x2 +c %sustituir x2 para comprobar respuestaans= 0

En ingeniera normalmente se asocia la letra j en lugar de la i con , se puede emplear tambin esta para representar la parte imaginaria. Ejemplos de los nmeros complejos son:>>c1=1-2i>>c1=1-2j % j tambin funciona>>c2=3*(2-sqrt(-1)*3)>>c3=sqrt(-2)>>c4=6+sin(.5)*i>>c5=6+sin(.5)*j >>c6= (c1+c2)/c3 % de los datos anterioresc6= -7.7782 -4.9497i>>check_it_out=i^2 %sqrt(-1) al cuadrado debe ser -1!Check_it_out= -1.0000 + 0.0000i>>check_it_out=real(check_it_out) %muestra la parte real check_it_out= -1En general, operaciones sobre nmeros complejos conduce a nmeros complejos. As pues, incluso aunque i2 = -1 es estrictamente real, MATLAB mantiene la parte imaginaria igual a cero. Tal como se muestra en la, la funcin real, MATLAB extrae la parte real de un nmero complejo.

Funciones Reales

FuncinDescripcin

eval(f)Evala una funcin en los valores de x.

fplot(f, [a,b] )Grafica la funcin en el intervalo [a,b]

fzero(f, a )Calcula la raiz de la funcin f, partiendo del valor a.

trapz(x,f)Calcula el are de la regin plana limitada por f en el intervalo [a,b], donde a es el primer valor de x y b el ltimo valor de x, x debe ser una variable con mltiples valores ordenados en orden creciente.

>>funcion= '3*x.^2-5';>>x=[1 2 4];>>eval(funcion)

ans = -2 7 43

>>fplot(funcion,[0,4]); % grafica la funcin

>>z=fzero(funcion,2) % calcula la raiz partiendo de 2

ans = 1.2910

>> x=[0 0.2 0.4 0.6 0.8 1] % tambien puede ser x=[0:0.1:1] >> funcion= x.^2>> area=trapz(x,funcion)

area = 0.3400>> funcion= 'x.^2'>>fplot(funcion,[0,1]); % grafica la funcin

MATRICES Y ARREGLOS

Arreglo.- Es un conjunto de nmeros, ordenados en filas y columnas.

>> x = [1,4,5,8; 5,0,0,2; 0,1,-7,3] % crea un arreglo de 3 filas por 4 columnas

x = 1 4 5 8 5 0 0 2 0 1 -7 3

>> x = [1,2,10,3] % crea un arreglo unidimensional

>> x (3) % nos devuelve el elemento ubicado en la tercera posicin.

>> x = [1; 8; 3; 4] % crea un arreglo en una columna.

>> x = 1 : 0.5: 4 % crea un arreglo de una razon constante.

>> x(8) = 6 % adiciona un elemento a la matriz x en la octava posicin.

Arreglos Bidimensionales

>> x = [1,4,5,8; 5,0,0,2; 0,1,-7,3] % crea un arreglo de 3 filas por 4 columnas

>> x(2,3) % visualiza el elmento de la segunda fila y tercera columna.

>> x(1,:) % visualiza todos los elementos de la primera fila.

>> x(:,3) % visualiza todos los elementos de la tercera columna.

Operadores Aritmeticos de Arreglos

Adicin de Arreglos.- Realiza la suma de los elementos de los arreglos de acuerdo a su posicin.

>> a = [1,4; 5,2] >> b = [2,1; 3,4] >> c = a + b

c= 3 5 8 6

>> b = a +2 % suma 2 unidades a cada elemento del arreglo. Sustraccin de Arreglos

>> a = [1,4; 5,2] >> b = [2,1; 3,4] >> d = a - b

Multiplicacin de Arreglos

>> a = [1,4; 5,2; 3,7] >> b = [2,1; 3,4; 2,6] >> e = a .* b

Multiplicacin de un Arreglos por un nmero

>> a = [1,4; 5,2; 3,7] >> f = -2 * a

Divisin de Arreglos.- realiza el cociente de cada elemento de los arreglos de acuerdo a su posicin.

>> a = [1,4; 5,2; 3,7] >> b = [2,1; 3,4; 2,6] >> g = a . / b

Matriz.- Es un arreglo rectangular de nmeros reales o complejos ordenados en filas y columnas.

Producto de Matrices>> F=[3 -2 7; 6 5 4; 0 4 9] % matriz de orden 3x3F = 3 -2 7 6 5 4 0 4 9

>> G=[1 7; 0 4; 2 9] % matriz de orden 3x2G = 1 7 0 4 2 9

>> H=F*GH = 17 76 14 98 18 97

3(1)-2(0)+7(2)=176(1)+5(0)+4(2)=140(1)+4(0)+9(2)=183(7)-2(4)+7(9)=766(7)+5(4)+4(9)=980(7)+4(4)+9(9)= 97

otro ejemplo>> A=[2 3 1; 1 -1 1; 0 2 2]>> B=[1 2 1; -1 2 -1; 2 0 2]>> C=A*BC = 1 10 1 4 0 4 2 4 2

Transpuesta de una Matriz .- La matriz transpuesta se obtiene intercambiando filas por columnas.

>> A=[1 -3 0 -2; 3 -12 -2 -6; -2 10 2 5; -1 6 1 3]

A = 1 -3 0 -2 3 -12 -2 -6 -2 10 2 5 -1 6 1 3

>> Y=A'

Y = 1 3 -2 -1 -3 -12 10 6 0 -2 2 1 -2 -6 5 3

>> I=[1 0 0; 0 1 0; 0 0 1] % matriz identidad de tercer orden

Inversa de Matrices

>> B=[22 -6 -26 17; -17 5 20 -13; -1 0 2 -1; 4 -1 -5 3]

B = 22 -6 -26 17 -17 5 20 -13 -1 0 2 -1 4 -1 -5 3

>> Y=inv(B)Y = 1.0000 2.0000 3.0000 4.0000 2.0000 3.0000 1.0000 2.0000 1.0000 1.0000 1.0000 -1.0000 1.0000 0 -2.0000 -6.0000

Determinante de una Matriz

>> a=[4 -3; 1 2]; >> d=det(a)d = 11

>> A=[3 -1 0 2; -1 -2 3 4; 7 4 4 0; 1 0 0 5]; >> D=det(A)D = -401

>> a=[28 25 38; 42 38 65; 56 47 83]>> det(a)ans = 770

>> a=[1/2 1/2 1 1/2; -1/2 1/2 0 1/2; 2/3 1/3 1/3 0; 1/3 1 1/3 0]>> det(a)ans = 0.1667

Rango de un Matriz: .- El rango de una matriz es igual al nmero de filas no nulas que quedan en la ltima iteracin de las sucesivas transformaciones elementales que se hacen con la matriz.

>> C=[0 -2 4;1 4 -5;3 1 7;0 1 -2;2 3 0]>> Z=rank(C)Z = 2

Matrices especiales:

eye(m): Genera una matriz identidad de orden m x m.

>> A=eye(3)A = 1 0 0 0 1 0 0 0 1

zeros(m,n): Genera una matriz m x n.>> B=zeros(3,2)B = 0 0 0 0 0 0

ones(m,n): Genera una matriz de unos de orden m x n.

>> A=ones(2,3)A = 1 1 1 1 1 1

magic(n): Genera una matriz cuya suma de los elementos de sus filas, columnas y diagonales da como resultado un mismo valor.

>> A=magic(3)A = 8 1 6 3 5 7 4 9 2

>> A=magic(4)A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

Funciones en Matrices :

diag(A).- Devuelve los elementos de la diagonal de una matriz cuadrada.

>> A=[1 -3 0;3 -2 -6;10 2 5]A = 1 -3 0 3 -2 -6 10 2 5

>> B=diag(A)B = 1 -2 5 sum(A).- Devuelve la suma obtenida en cada una de las columnas de la matriz A.

>> A=[1 -3 0;3 -2 -6;10 2 5]A = 1 -3 0 3 -2 -6 10 2 5

>> H=sum(A)H = 14 -3 -1rand(n).- Genera una matriz de orden n x n en forma aleatoria, donde sus cuyos elementos son uniformemente distribuidos en el intervalo (0,1).

>> Y=rand(3)Y = 0.0196 0.8318 0.4289 0.6813 0.5028 0.3046 0.3795 0.7095 0.1897

rref(A).- Devuelve en forma cannica la matriz A.

>> A=[1 -3 0;3 -2 -6]A = 1 -3 0 3 -2 -6

>> S=rref(A)S = 1.0000 0 -2.5714 0 1.0000 -0.8571

find(A).- Devuelve los ndices de los elementos de la matriz A que no son cero, enumerndolos en forma vertical.

>> A=[12 -31 0;13 0 -16]A = 12 -31 0 13 0 -16>> G=find(A)G = 1 2 3 6

cross(u,v).- Calcula el producto vectorial entre dos vectores u y v de R3.

>> u=[2 -5 1]>> v=[3 1 -4]>> cross(u,v)ans = 19 11 17

eig(A).- Calcula los valores y vectores propios de la matriz A.

>> A=[1 2; 3 4]

>> [V, D]= eig(A)V = -0.8246 -0.4160 0.5658 -0.9094

D = -0.3723 0 0 5.3723

Donde V es una matriz que contiene a los vectores propios ordenados en columnas y D es una matriz diagonal que contiene los valores propios.

length(u).-Calcula la dimensin del vector u.

>> u=[13 -5 1]>> length(u)ans = 3

size(A).- Calcula la dimensin de la matriz A.

>> A=[4 1 3;-5 2 1]>> size(A)ans = 2 3

>> D=[3;1;0;15;8]>> size(D)ans = 5 1

GRAFICA DE UNA MATRIZ:

>> b=[3 4 5 6 8 6 5 6 7]>> plot(b)>> grid on>> title('Grafico de una matriz')

Concatenacion de Matrices: Es un proceso para generar un matriz nueva uniendo uno o mas matrices con el operador [ ].

>> A=[1 2 -5; 2 1 7]>> B=[3 9; 0 1]>> C=[A,B] % concatena horizontalmente las matrices D y E

C = 1 2 -5 3 9 2 1 7 0 1

>> D=[6 -1 5;0 1 12]>> E=[3 2 2; 6 1 7; 5 2 -8]>> F=[D; E] % concatena verticalmente las matrices D y EF = 6 -1 5 0 1 12 3 2 2 6 1 7 5 2 -8

Funciones de concatenacin de matrices:

horzcat.- Concatena matrices horizontales.

>> A=[8 1 6;3 5 7];;>> B=[4 13 2 1;6 7 0 11];>> horzcat(A,B)ans = 8 1 6 4 13 2 1 3 5 7 6 7 0 11

vercat.- Concatena matrices verticalmente.

>> A=[8 1 6;3 5 7;4 9 2];>> B=[4 13 1;6 0 11];>> C=vertcat(A,B)C = 8 1 6 3 5 7 4 9 2 4 13 1 6 0 11

EJEMPLOS ILUSTRATIVOS

1. Presentacin de la matriz de Hilbert de orden 2 con cinco dgitos decimales.>> vpa(hilb(2),5) ans = [ 1., .50000][ .50000, .33333]

2. Definimos una matriz simbolia y calculamos su determinante.>> syms a x >> A=[cos(a*x),sin(a*x);-sin(a*x),cos(a*x)]A =[ cos(a*x), sin(a*x)][ -sin(a*x), cos(a*x)]>> det(A)ans =cos(a*x)^2+sin(a*x)^2

3. Calculamos la inversa de la matriz anterior.>> inv(A)ans = [ cos(a*x)/(cos(a*x)^2+sin(a*x)^2), -sin(a*x)/(cos(a*x)^2+sin(a*x)^2)][ sin(a*x)/(cos(a*x)^2+sin(a*x)^2), cos(a*x)/(cos(a*x)^2+sin(a*x)^2)]4. Resolvemos la ecuacin x4+1=0 y presentamos el resultado en escritura matemtica habitual.>> solve('x^4+1=0')ans = 1/2*2^(1/2)+1/2*i*2^(1/2) -1/2*2^(1/2)+1/2*i*2^(1/2) 1/2*2^(1/2)-1/2*i*2^(1/2) -1/2*2^(1/2)-1/2*i*2^(1/2)>> pretty(solve('x^4+1=0')) [ 1/2 1/2 ] [ 1/2 2 + 1/2 i 2 ] [ ] [ 1/2 1/2 ] [- 1/2 2 + 1/2 i 2 ] [ ] [ 1/2 1/2 ] [ 1/2 2 - 1/2 i 2 ] [ ] [ 1/2 1/2 ] [- 1/2 2 - 1/2 i 2 ]

5. Calcular mediante los mtodos aproximados de Simpson y lobato la integral siguiente

Para la solucin mediante el mtodo de Simpson tenemos:>> quad(inline('2+ sin(2*sqrt(x))'),1,6)ans = 8.1835

Para la solucin mediante el mtodo de lobato tenemos:>> quadl (inline('2+ sin (2*sqrt (x))'),1,6)ans = 8.1835

6. Calcular el rea comprendida bajo la curva normal (0,1) entre los limites -1.96 y 1.96Se trata de calcular el valor de la integral

El clculo se realiza mediante matlab utilizando el mtodo aproximado de lobato como sigue:

>> quadl(inline('exp(-x.^2/2)/sqrt(2*pi)'),-1.96,1.96)ans = 0.9500

7. Calcular el volumen del hemisferio definido en [-1,1] x[-1,1] por la funcin f(x,y)=

>> dblquad(inline('sqrt(max(1-(x.^2+y.^2),0))'),-1,1,-1,1)ans = 2.0944

El clculo tambin pudo haberse hecho asi:

>> dblquad(inline('sqrt(1-(x.^2+y.^2)).*(x.^2+y.^2> a=[2, -3, 0, 5]>> y=polyval(a,4)

6. Que realiza los siguientes comandos?>> x=[1 2 4 5 7];>> y=[5 3 6 7 4];>> a=polyfit(x,y,2);

7. Que realiza el siguiente comando?>> u=diff(f)

8. Que realiza el siguiente comando?>> v=int(f)

9. Que realiza el siguiente comando?>> r=int(f, 0, 2)

10. Dar un ejemplo de aplicacin con cada uno de los siguientes comandos?>>input>>disp

Bibliografia Referencial

1. Nakamura, Shoichiro Analisis Numrico y Visualizacin con Matlab. Editorial Prentice may. Mxico. 1997.2. Morales Marchena, Hern. Mtodos numricos y Visualizacin Grfica Editorial Megabit. Peru. 2005.3. Perez, Cesar Matlab y sus Aplicaciones en las Ciencias y la Ingeniera Editores Prentice. Espaa. 2002 .

CAPITULO IV

GRAFICAS CON MATLAB

OBJETIVOS: El participante aprender a hacer grficos con el Matlab

CONTENIDOS: Graficos en el plano, graficos bidimensioanles y grficos tridimensionales.

Matlab ofrece una gama amplia de opciones a la hora de realizar representaciones grficas. Permite realizar grficos de curvas planas y superficies, posibilitando la agrupacin y superposicin.

Grficos en el Plano

ComandosDescripcin

plot(x,y)Grafica el conjunto de puntos (x,y) en un sistema cartesiano

bar(x,y)Grafico de barras vertical, donde y representa la frecuencia y x define los espacios en el eje x.

barh(x,y)Grafico de barras horizontal.

stem(x,y)Grafico de bastones verticales.

stairs(x,y)Grafica una curva escalonada.

polar(x,y)Dibuja una curva en coordenadas polares. y=y(x)

pie(x)Realiza el grafico de sectores relativo al vector x.

rose(x)Dibuja el histograma angular relativo al vector x.

Los grficos son una poderosa forma visual de interpretar datos. Realizar la grfica de una funcin seno durante un perodo, por ejemplo:

y = sin(x) para 0 x = linspace(0,2*pi,30) ; % crea 30 puntos entre 0 y 2pi. >> y = sin(x); % calcula el seno de los puntos en x. >> plot(x,y) % la orden plot genera una grafica :

Se pueden graficar al mismo tiempo muchas curvas suministrando parejas adicionales de argumentos a plot.

>> x = linspace(0,2*pi,30) ; >> y = sin(x); >> z = cos(x) ; >> plot(x,y,x,z)

El siguiente ejemplo ilustra la identidad trigonomtrica 2sin(a)cos(a) = sin2(a). La grfica de 2sin(a)cos(a) se representa utilizando lneas i trazos.

>> plot(x,y,x,2*y.*z,'r*')>> grid % para colocar una rejilla en los puntos marcados sobre los ejes>> xlabel(Variable Independiente x) % para colocar una etiqueta sobre el eje x >> ylabel ( Variable dependiente) % para colocar una etiqueta sobre el eje y >> title ( 2sin(x)cos(x) = sin(2x) ) % para colocar un titulo sobre la grafica actual

Estilo de lneas, marcadores y colores

Con MATLAB se puede especificar los colores y los estilos de lnea que necesita dando un argumento adicional a plot despus de cada pareja de arrays de datos. El argumento opcional adicional es una cadena de caracteres formada por 1, 2 3 caracteres de la tabla siguiente:

Smbolo ColorSmbolo Estilo de lnea

y amarillo m magenta c turquesa r rojo g verde b azul w blanco k negro. puntoo crculox marca - x+ ms* estrella* lnea slida: lnea punteada-. lnea punto-raya-- lnea de trazos

>> plot(x,y,'bo',x,z,'r--',x,y,'k*',x,z,'c.')

Para aadir una etiqueta identificandola curva del seno en la localizacin (2.5,0.7):

>> text (2.5,0.7,sin(x))

>> x=-1 :0.1 :5;>> y=sin(x.^2);>> plot(x,y)>> grid on>> title('grafico de y=sin(x.^2)')

histograma de una curva en forma de campana de datos gausianos:

>> x=-3 :0.2 :3;>> y=exp(-x.^2);>> bar(x,y)>> grid on>> title('grafico de Barras')

>> x=-2.9:0.2:2.9; % especifica los elementos a usar>> y=randn(5000,1); % crea 5000 puntos aleatorios>> hist(y,x) % dibuja el histograma>> title('Histograma de Datos Gausianos')

>> x=-3 :0.2 :3;>> y=cos(-x.^3)-2*x+1;>> barh(x,y);>> grid on>> title('grafico Barras Horizontal')

>> x=0 :0.2 :10;>> y=sin(x);>> stairs(x,y);>> grid on>> title('grafico tipo stairs')

grficos en coordenadas polares utilizando la orden polar (t, r), donde t es el vector de ngulos en radianes, r es el radio vector

>> t=0 : .01 : 2*pi;>> r=sin(2*t).*cos(2*t);>> polar(t,r)>> title('Coordenadas Polares de: sin(2t)cos(2t))

>> y=randn(50,1); % crea algn dato aleatorio>> stem(y,':') % dibuja una grfica stem con lnea punteada>> title('Grafico Stern de datos aleatorios')

Una grfica puede incluir barras de error en los puntos. errorbar (x, y, e) representa. la grfica del vector x frente al vector y con barras de error especificadas por el vector e. Todos los vectores deben tener la misma longitud. Para cada punto (xi,yi), se dibuja una barra de error una distancia ei por encima y ei por debajo del punto.

>> x=0:0.1:2; % crea un vector>> y=erf(x); % y es la funcin error de x>> e=rand(size(x) )/10; % genera valores de error aleatorios>> errorbar(x,y,e) % crea la grfica>> title('Errorbar Plat')

Se pueden representar datos complejos usando compass y feather. Compass (z) dibuja una grfica que visualiza el ngulo y la magnitud de los elementos complejos de z como flechas que emanan del origen. Feather (z) representa los mismos datos usando flechas que emanan de puntos igualmente espaciados sobre una lnea horizontal.

compass (x,y) y feather (x,y)son equivalentes a compass (x+i*y) y feather (x+i*y).

>> z=eig(randn(20,20));>> compass (z)>> title('Compass Plot of the Eigenvalues of a Random Matrix')

>> feather (z)>> title (Feacther Plot of Eigenvalues of a Random Matrix)

La orden subplot (m, n, p) subdivide la ventana de la figura actual en una matriz mxn de las reas de representacin grfica y escoge como activa el rea p-sima. Las subgrficas se numeran de izquierda a derecha a lo largo de la lila superior, luego la segunda fila, etc. por ejemplo:

% ejemplo de Grafico en multiples ejes

>> x=linspace(0,2*pi,30); >> y=cos(x);>> z=sin(x);>> a=y.*z+58;>> f=tan(x);>> g=z+a+f;>> u=y.*z.*a;>> subplot(3,2,1), plot(x,y,'r-'), title( 'Grafico No 1' );>> subplot(3,2,2), plot(x,z,'mo'), title( 'Grafico No 2' );>> subplot(3,2,3), plot(x,a,'g*'), title( 'Grafico No 3' );>> subplot(3,2,4), plot(x,f,'b+'), title( 'Grafico No 4' );>> subplot(3,2,5), plot(x,g,'k--'), title( 'Grafico No 5' );>> subplot(3,2,6), plot(x,u,'c:'), title( 'Grafico No 6' );

Grfica de Superficies

Plot3(x,y,z) : Realiza una grafica de un conjunto de puntos x,y,z en un sistema de 3 dimensiones.

El ejemplo siguiente genera una grafica 3-D con una rejilla.

>> x = linspace(0,2*pi,30) ; % crea 30 puntos entre 0 y 2pi.>> y = sin(x); % calcula el seno de los puntos en x.>> z = cos(x) ; >> plot3(y,z,x), grid

>> t = -8:0.2:8 ; % crea puntos entre -8 y 8.>> x = t; >> y = 3-t ; >> z=cos(t);>> plot3(x,y,z), grid

mesh(x,y,z) : Grafica una superficie explicita z=f(x,y) con los arreglos x, y e z.

>> [x,y] = meshgrid(-2:0.2:2);>> z = x.*exp(-x.^2-y.^2)>> mesh(x,y,z)>> title('Z=X.*exp(-x. ^2 y.^2)');

cylinder('f') : Grafica una superficie de revolucin generada por la rotacin de la funcin f=f(t) en el intervalo definido para t.

explicita z=f(x,y) con los arreglos x, y e z.

>> t = 0:0.2:7;>> cylinder(2+sin(t));>> title(' 2 + sin( t )');>> xlabel('eje x'); ylabel('eje y'); zlabel('eje z')

EJERCICIOS PROPUESTOS

1. Realizar el siguiente grfico.

function y=prueba(x)y = 1./((x-.3).^2+.01)+1./...((x-.9).^2+.04)-6;

>> x=-1:0.1:2;>> plot(x,prueba(x))

2. Realizar el siguiente grfico con los datos que Ud. sugiera.

3. Ingrese los datos para realizar el siguiente grfico.

EVALUACION

1. Realizar el grafico en coordenadas polares de la siguiente ecuacin:

2. Grfica la circunferencia con centro en el origen:

3. Grafica la siguiente hiprbola con eje focal en el eje x:

4. Grfica la siguiente parbola con el eje focal en x:

5. Grfica la elipse con el eje focal x:

6. Grfica la siguiente funcin:

7. Grfica la siguiente funcin:

f(z) = z2

8. Grfica los resultados de unas elecciones con 5 participantes en un grfico tipo pastel.

9. Realiza con los datos anteriores un diagrama de sectores 3D.

10. Realizar un grfico para generar un histograma con 1000 nmeros aleatorios siguiendo la normal N(0; 1)

Bibliografa Referencial

1. Perez, Cesar Matlab y sus Aplicaciones en las Ciencias y la Ingeniera Editores Prentice. Espaa. 2002 .2. Nakamura, Shoichiro Analisis Numrico y Visualizacin con Matlab. Editorial Prentice may. Mxico. 1997.3. Morales Marchena, Hern. Mtodos numricos y Visualizacin Grfica Editorial Megabit. Peru. 2005.

CAPITULO V

PROGRAMACION EN MATLAB

OBJETIVOS: El participante aprender a hacer programas en el Matlab

CONTENIDOS: Estructuras de control secuencial, bucles, bifurcaciones, sentencia if end, for end, while end, case end,

PROGRAMACIN INFORMTICAProgramacin informtica, accin de programar, es decir, de establecer una serie de instrucciones para que el ordenador o computadora ejecute una tarea.Previamente hay que realizar una serie de trabajos que tienen por objeto la definicin de la tarea, el anlisis de la informacin que se quiere obtener (informacin de salida) y de los datos que se precisan para ello (informacin de entrada), y el establecimiento del algoritmo, o procedimiento de clculo, que va a permitir transformar una informacin en otra. Para esta labor de anlisis, el programador utiliza una serie de herramientas, entre las que destacan los diagramas de flujo y las tablas de decisin.Resuelto del problema desde el punto de vista lgico, se utiliza un lenguaje de programacin para codificar la secuencia de instrucciones que el ordenador debe ejecutar para realizar la tarea.Escrito el programa, hay que verificarlo, es decir, someterlo a pruebas que determinen si puede realizar la tarea prevista, lo que se consigue simulando situaciones que se puedan comprobar; a esto se le denomina depuracin. Una vez verificado, el programa se debe optimizar, con el fin de utilizar los recursos del sistema del modo ms eficiente.

PROGRAMACIN EN MATLAB

MATLAB es una aplicacin que se puede programar muy fcilmente. De todas formas, como lenguaje de programacin pronto ver que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas...). Se comenzar viendo las bifurcaciones y bucles, y la lectura y escritura interactiva de variables, que son los elementos bsicos de cualquier programa de una cierta complejidad, previo a ingresar a esta este capitulo se considera que ya se cuenta con los conocimientos bsicos del matlab.

Bifurcaciones y bucles

MATLAB posee un lenguaje de programacin que como cualquier otro lenguaje dispone de sentencias para realizar bifurcaciones y bucles.

Las bifurcaciones permiten realizar una u otra operacin segn se cumpla o no una determinada condicin. La Figura muestra tres posibles formas de bifurcacin.

Los bucles permiten repetir las mismas o anlogas operaciones sobre datos distintos. el Matlab utiliza la palabra end para finalizar el bucle.

La Figura muestra dos posibles formas de bucle, con el control situado al principio o al final del mismo. Si el control est situado al comienzo del bucle es posible que las sentencias no se ejecuten ninguna vez, por no haberse cumplido la condicin cuando se llega al bucle por primera vez.

Sin embargo, si la condicin est al final del bucle las sentencias se ejecutarn por lo menos una vez, aunque la condicin no se cumpla. Muchos lenguajes de programacin disponen de bucles con control al principio (for y while en C/C++/Java) y al final (do while en C/C++/Java).

En MATLAB no hay bucles con control al final del bucle, es decir, no existe la construccin anloga a do... while.

Las bifurcaciones y bucles no slo son tiles en la preparacin de programas o de ficheros *.m. Tambin se aplican con frecuencia en el uso interactivo de MATLAB, como se ver ms adelante en algunos ejemplos.

FUNCIN INPUT

La funcin input permite imprimir un mensaje en la lnea de comandos de MATLAB y recuperar como valor de retorno un valor numrico o el resultado de una expresin tecleada por el usuario.

>> n = input('Teclee el nmero de ecuaciones:' )Teclee el nmero de ecuaciones: 5n = 5

Otra posible forma de esta funcin es la siguiente (obsrvese el parmetro 's'):

>> nombre = input('Cmo te llamas?','s') %s indica que la entrada que se hara por teclado es una cadena.

Cmo te llamas? Walter Fuentes Lopeznombre = Walter Fuentes Lopez

En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que se almacena en la cadena nombre. As pues, en este caso, si se teclea una frmula, se almacena como texto sin evaluarse.

FUNCIN DISP

La funcin disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre.

En realidad, disp siempre imprime vectores y/o matrices: Las cadenas de caracteres son un caso particular de vectores. Considrense los siguientes ejemplos de cmo se utiliza:

>> disp(' El programa ha terminado ')>> A= rand(4,4)>> disp(A)

Ejectense las sentencias anteriores en MATLAB y obsrvese la diferencia entre las dos formas de imprimir la matriz A.

>> a=[1:10];>> b=[-10:-1];>> disp([a;b])

Da como salida:

1 2 3 4 5 6 7 8 9 10-10 -9 -8 -7 -6 -5 -4 -3 -2 -1

SENTENCIA IF ELSE END

En su forma ms simple, la sentencia if se escribe en la forma siguiente:

if condicin sentenciasend

Existe tambin la bifurcacin mltiple, en la que pueden concatenarse tantas condiciones como se desee, y que tiene la forma:

if condicin1bloque de instrucciones 1else if condicin 2bloque de instrucciones 2else if condicin nbloque de instrucciones nelse % opcin por defecto para cuando no se % cumplan las condiciones 1,2,nbloque de instrucciones finalend endend

En esta estructura se ejecuta solamente el primer bloque de instrucciones cuyo valor lgico sea uno. Si ninguno de los valores lgicos que aparecen es uno entonces MATLAB ejecuta el bloque de instrucciones final.

Donde la opcin por defecto else puede ser omitida: si no est presente no se hace nada en caso de que no se cumpla ninguna de las condiciones que se han chequeado.

Una observacin muy importante: la condicin del if puede ser una condicin matricial, del tipo A==B, donde A y B son matrices del mismo tamao. Para que se considere que la condicin se cumple, es necesario que sean iguales dos a dos todos los elementos de las matrices A y B (aij = bij, 1 i m, 1 j n).

Basta que haya dos elementos aij y bij diferentes para que las matrices ya no sean iguales, y por tanto las sentencias del if no se ejecuten. Anlogamente, una condicin en la forma A-=B exige que todos los elementos sean diferentes dos a dos (aijbij, 1 i m, 1 j n).

Basta que hubiera dos elementos aij y bij iguales para que la condicin no se cumpla. En resumen:

if A == B exige que todos los elementos sean iguales dos a dos.

if A ~= B exige que todos los elementos sean diferentes dos a dos.

Como se ha dicho, MATLAB dispone de funciones especiales para ayudar en el chequeo de condiciones matriciales. Por ejemplo, la funcin isequal (A, B) devuelve un uno si las dos matrices son idnticas y un cero en caso de que difieran en algo.

Ejemplo con If End

1) Programa que determina si el nmero ingresado por teclado es positivo, negativo o cero.

n=input(' ingresa un numero :');if n==0; ' el numero es CERO 'else if n>0 ' el numero es POSITIVO ' else ' el numero es NEGATIVO ' endend

2) Programa que determina si el nmero ingresado por teclado es par o impar.

n=input(' ingresa un numero :');if n==0; fprintf (' el numero ingresado es CERO ')else if rem(n,2)==0; %obtiene el resto de dividir n entre 2 fprintf (' el numero es PAR ') else fprintf (' el numero es IMPAR ') endend

4. SENTENCIA FOR END

La sentencia for repite un conjunto de sentencias un nmero predeterminado de veces. La siguiente construccin ejecuta sentencias con valores de i de 1 a n, variando de uno en uno.

for i = 1 : n sentenciasend

for i = vector valores sentenciasend

Donde vector valores es un vector con los distintos valores que tomar la variable i.

v=[a, a^2,a^3]for a = 0 : 1 : t

for var = vectorfor a=0 : 1 : t sentencia 1 sentencia 2v=[a, a^2,a^3] . . . sentencia nendend

En el siguiente ejemplo se presenta el caso ms general para la variable del bucle (valor _ inicial: incremento: valor _ final); el bucle se ejecuta por primera vez con i =n, y luego i se va reduciendo de 0.2 en 0.2 hasta que llega a ser menor que 1, en cuyo caso el bucle se termina:

for i = n : -0.2:1 sentenciasend

En el siguiente ejemplo se presenta una estructura correspondiente a dos bucles anidados. La variable j es la que vara ms rpidamente (por cada valor de i, j toma todos sus posibles valores):

for i = 1 : m for j = 1 : nsentencias endend

Una ltima forma de inters del bucle for es la siguiente (A es una matriz):

for i = A sentenciasend

En la que la variable i es un vector que va tomando en cada interaccin el valor de una de las columnas de A.

Cuando se introducen interactivamente en la lnea de comandos, los bucles for se ejecutan slo despus de introducir la sentencia end que los completa.

El siguiente ejemplo creara un bucle que despus realizar una suma de los 5 primeros nmeros.

1 12 3 3 6 4 10 5 15En un archivo m-file: salida

s=0;for n=1:5 s=n+s; disp([n s ])end

Realizar un programa haciendo uso de la instruccin for... end, para que presente en pantalla la tabla de la suma de un nmero que se ingrese por teclado.

ingrese n:11 0 11 1 21 2 31 3 41 4 51 5 61 6 71 7 81 8 91 9 10 1 10 11 1 11 12 1 12 13En un archivo m-file:

n=input('ingrese n:');for i=0:12; s=n+i; disp([n,i,s])end

En un archivo m-file: para presentar la tabla de la resta

ingrese el numero:5 5 5 0 6 5 1 7 5 2 8 5 3 9 5 4 10 5 5 11 5 6 12 5 7 13 5 8 14 5 9 15 5 10 16 5 11 17 5 12

clcn=input('ingrese el numero:');for m=n:n+12; d=m-n; disp([m n d])end

5. SENTENCIA WHILEEl bucle while o bucle mientras es una estructura de la mayora de los lenguajes de programacin estructurados cuyo propsito es repetir un bloque de cdigo mientras una condicin se mantenga verdadera.Java. Su sintaxis es la siguiente:

While condicinSentenciasend

Donde condicin puede ser una expresin vectorial o matricial.

Las sentencias se siguen ejecutando mientras haya elementos distintos de cero en condicin, es decir, mientras haya algn o algunos elementos true.

El bucle se termina cuando todos los elementos de condicin son false (es decir, cero).

EjemploS ilustrativoS

Programa que te permite obtener un tabla de multiplicacin

ingrese el nmero:55 1 55 2 105 3 155 4 205 5 255 6 305 7 355 8 405 9 455 10 505 11 555 12 60

clcn=input('ingrese el nmero:');while n