Mathematica como lenguaje de programación

Documentos relacionados
GUÍA BÁSICA DE SCHEME v.4

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

Principios de Computadoras II

Lenguajes de Programación Programación funcional

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Tema 2.- Expresiones y funciones

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional

Tema 3: Características de la programación funcional. Sesión 6: El paradigma funcional (2)

TUTORIAL PROLOG. Lenguajes de programación Universidad Nacional de Colombia Santiago Carvajal Castañeda Mario Andrés Moreno Norato

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Programación 1 - Práctica 0, recargada.

El lenguaje C. 1. Identificadores, constantes y variables

Programación en Mathematica

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Clase 2: El Lenguaje Python

Tema II: Introducción al Lenguaje Funcional

UNIDAD IV Programación Funcional. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

Introducción a Haskell. Cecilia Manzino

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Aplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca

Los parámetros: son los campos que se comunican a los métodos de los objetos.

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Bloque 1. Conceptos y técnicas básicas en programación

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Universidad Rafael Urdaneta Escuela de Ingeniería de Computación. MSc Jaime Soto. Identificadores, palabras reservadas, delimitadores, comentarios

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Curso de Java Introducción a la Programación II

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Prof. María Alejandra Quintero. Informática Año

Lenguajes de Programación I

Introducción a Python. Cecilia Manzino

UNIVERSIDAD MODULAR ABIERTA FACULTAD DE CIENCIAS ECONOMICAS

Guía 1: Funciones, precedencia y tipado

Funciones y subrutinas

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Entendiendo expresiones lambda en C# con Mono

Expresiones Aritméticas, relacionales y lógicas. Prof. Hilda Contreras Programación 1

Pre-Laboratorio 1 MA-33A : Introducción a Matlab

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

26 de Octubre del 2013

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Tema 2. Concepto de Algoritmo

ESCUELA NACIONAL AUXILIARES DE ENFERMERÍA Manizales TECNOLOGÍA E INFORMÁTICA

Programación: Sistemas unitriangulares inferiores

Un calculadora avanzada... y algo más!

TALLER DE MATEMÁTICAS NOTAS. Toda expresión algebraica del tipo. a n x n + a n 1 x n a 1 x + a 0. es un polinomio de grado n, si a n 0.

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

CENTRO DE BACHILLERATO TECNOLOGICO INDUTRIAL Y DE SERVICIOS NO. 21. Profesor Enrique López Vásquez Algebra

5.3 Tipos de Datos en Prolog

5.3 Tipos de Datos en Prolog

Soluciones a los ejercicios

5 Polinomios. 1. Expresión algebraica. Valor numérico Monomios y polinomios Operaciones con monomios y polinomios 30

Inteligencia Artificial: Prolog

Teoría de autómatas. Un enfoque práctico. Recortables. Thelma Cantú María Gpe. Mendoza

PROGRAMACION PARAMETRICA LENGUAJE DE ALTO NIVEL. MILTRONICS CNC MACHINES Control Centurion 7. Ing. Roberto Spicacci

5.3 Tipos de Datos en Prolog

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Definición Es una directiva using que ayuda al compilador a localizar una clase que se usa en la aplicación.

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programa Nacional de Formación de Informática Material Educativo Computarizado de Algorítmica y Programación

Tema 2. Tipos predefinidos

CAPITULO 2: VARIABLES Y CONSTANTES

Tema 4. Funciones de orden superior

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

1.2 Uso del software como una calculadora. Iniciación a los operadores y almacenamiento de datos.

Licenciatura de Matemáticas Informática I Notación algorítmica - Descripción BNF

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGIA DEPARTAMENTO DE CIENCIAS BASICAS

Fundamentos de programación clase 1: Introducción a la programación

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Programación Declarativa

Fundamentos de Informática 5. Operadores, expresiones (y su aplicación)

Elementos de un lenguaje de programación. Lenguajes de Programación 1

FUNDAMENTOS DE INFORMÁTICA

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Autoestudio 2: Variables y Operadores

Temas preliminares de Métodos Numéricos

Expresiones regulares y distancia de edición.

Cadena de caracteres Numéricas Fecha y hora Booleanas Tipo registro Tipo cursor

Proyecto Unico Interpretador de MiniLogo

Sintaxis de PSeInt Tutorial

ANALÓGICO vs. DIGITAL

Funciones como parámetros, funciones como resultados. Introducción a la Computación Patricia Borensztejn Clase 26

Transcripción:

Chapter 1 Mathematica como lenguaje de programación 1.1 Fundamentos del Lenguaje Expresiones: En Mathematica todo es una expresión. Hay dos tipos de expresiones: Expresiones Normales, las cuales son de la forma: head[part1,par2,...] donde head, part1, part2,... son expresiones. Átomos: los cuales son símbolos, números y strings, por ejemplo: Sin[Log[2.5,7]] Esto es es una función donde Sin y Log son símbolos. RGBColor[1,0,0] que NO es una función. Observación: En Mathematica toda expresión puede ser construida usando átomos, paréntesis cuadrados y comas. In[1]:= a*a + D[a^3,a] Out[1]= 4a^2 1

Cuya fórmula completa es: In[3]:= FullForm[a*a + D[a^3,a]] Out[3]= Times[4,Power[a,2]] Nota: +, -, *, /, entre otros, son llamados Símbolos especiales de entrada, pues por ejemplo cuando se ejecuta 2+3 realmente Mathematica ejecuta Plus[2,3]. Obs: [ ] FullForm[4a^2] (retorna) [ ] Times[4,Power[a,2]] 1.1.1 Átomos Un átomo es, en Mathematica, una expresión que no puede ser quebrada o dividida en expresiones más pequeñas de Mathematica. Hay tres tipos: Símbolos: Un símbolo es una secuencia de letras, dígitos y el caracter $. [In1] a+b-2a [Out2] -a+b Números: Hay cuatro tipos: Enteros Reales Racionales Complejos dddd ddd.ddd integer1/integer2 { FullForm[a+bI] a+bi Complex[a,b] Strings: Un string es una secuencia de caracteres encerrados por... "Hola" 1.1.2 Evaluación de expresiones In[1]:=Trace[Sin[Log[2.5,7]]] {{Log[2.5,7], Log[7] Log[2.5], {{Log[2.5],0.916}, 1 0.916,1.091}, {Log[7], 1.945},1.091,1.945,2.123}, Sin[2.123], 0.851 (*resultado final*) }

1.2 Formas especiales de entrada 1.2.1 Operadores Aritméticos: Símbolos aritméticos 3*2^4 -> Times[3,Power[2,4]] 1.2.2 Operadores Relacionales y Booleanos: Esto son: <, <=, >, >=, ==,!=, && (AND), (OR) Ejemplos: 7 > 4 && 2!= 3 True 5 > 4 > 3 True Observación: %n es equivalente a Out[n]. 1.2.3 Operadores de Asignación: Operador Ejemplo = x=y+z := x:=y+z += x+=y x=x+y -= x-=y x=x-y *= x*=y x=x*y /= x/=y x=x/y

1.3 Llamado a funciones La sintaxis para invocar una función es: f[x] (NO f(x)) Otras formas de invocar funciones son: Notación Prefija: f @ x f[x] f @ g @ h @ x f[g[h[x]]] Notación Postfija: x // f f[x] Sqrt[3] // N N[Sqrt[3]] x // f // g g[f[x]] a+b // f f[a+b] Notación infija: x ~ f ~ y f[x,y] 1.4 Definición de funciones En Mathematica se defienen las funciones como sigue: Z[x_,y_] := x+y La parte Z[x_,y_] se conoce como declaracion y la parte x+y es conocida como cuerpo. El underscore en x_ y y_ son importantes pues indican que x y y son parámetros formales. Estos underscore se conocen como blancos. Invocación: x := 1 y := Log[2] Z[Sqrt[3],2 Pi] Sqrt[3]+2 Pi La definción de Z se pudo hacer de la siguiente manera: Z[x_,y_] = x + y x + y Nota: El valor de retorno de la función es el cálculo que se haga en la última línea la cual no lleva ;. Nota: Los valores de x y y no son alterados dentro de la función.

1.5 Listas Las listas son la estructura de datos básica y fundamental en Mathematica. Ejemplos: {1, x, i+j} (Lista de tres elementos) FullForm[%] List[1, x, Plus[i,j]] En la mayoría de los contextos de Mathematica se requieren listas, por ejemplo: Ejemplos: Plot3D[Sin[xy],{x, 0, Pi},{x, 0, Pi}] In[21]:=S={{a, b}, {c, d}, {e, f }} Out[21]={{a,b},{c,d},{e,f}} In[22]:=S[[1]] Out[22]={a,b} In[23]:=%[[2]] Out[23]= b In[24]:=S[[1,2]] Out[24]=b

1.6 Reglas Una entrada de la forma a b se conoce como regla. ReplaceAll[x+x^2, x -> w] w + w^2 que es equivalente a: x+ x^2 /. x->w (La sustitución es no algebraica) ReplaceAll[x^2+ x^4, x^2-> w+1] 1 + w + x^4 1.7 Tipos El lenguaje de programación de Mathematica, a diferencia de otros lenguajes, es muy débilmente tipificado. En general en las funciones NO se especifican los tipos de los parámetros. Sin embargo el tipos puede ser especificado como sigue: fact[n_integer]:= Product[i,{i,1,n}] cuadrado[n_integer n_real n_rational n_complex] := n^2 funcion[s_list] :=... 1.8 Variables Locales Para evitar efectos colaterales en los programas, se deben usar variables locales, mediantemódulos: Module[Declaraciones, Cuerpo]

1.9 Algoritmo óptimo para calcular series Entrada: x, n, f Calcula: n k=0 f(x, k) Paso 1: k a Paso 2: s 0 Paso 3: T f(a) Paso 4: Repita s s + T T T ( ) f(x,k+1) f(x,k) k k+1 Hasta k = n Calcular n ( 1) k x (2k) cos(x) ; x IR (2k)! k=0 f(x, k + 1) f(x, k) = ( 1) (k+1) x (2k+2) (2k+2)! ( 1) (k) x (2k) (2k)! = ( 1)x 2 (2k + 1)(2k + 2) 1.10 Programación Funcional No se usa asignación ni se usan ciclos. En lugar de esto se usan: Los datos se mueven a través de funciones, mediante el paso de parámetros. Se usa recursividad, Apply y Map. Las funciones tienen como argumento a funciones y retornan funciones. Map y Apply: Map[f,a,b,c] = f[a], f[b], f[c] Apply[f,a,b,c] = f[a,b,c] Promedio[s_list]:=Apply[Plus,s]/Length[s] Promedio[{2,4,9,4,3}] 22/5"

Lo anterior se pudo hacer con ciclos, pero es mecho mejor de esta forma. Through: Aplica una lista de funciones a un argumento. Through[{Sin, Cos, Tan][a]] = {Sin[a], Cos[a], Tan[a]} 1.10.1 Funciones Anónimas (Funciones λ) En muchas situaciones se requiere evaluar una función, pero sin necesidad de darle un nombre, para no llenar la memoria (kernel) de nombres. la sintaxis es: Function[{x}, Cuerpo] Ejemplos: Function[{x},x^2][5] = 25 Function[{x},x^2+y][3,2] = 11 Si se tienen definidas 2 funciones F[x] y G[x] y se desea aplicar la suma de F y G a una lista, la mejor forma de hacerlo es: Map[Function[{x},F[x]+G[x]],a,b,c] = {F[a]+G[a],F[b]+G[b], F[c]+ G[c]} Paradigma de la programación funcional. Trate las estructuras matemáticas como un todo, nunca las descomponga para reconstruirlas luego.