Procedimientos en MAPLE



Documentos relacionados
INTERPOLACIÓN POLINÓMICA POR TRAMOS: Planteamiento

INTERPOLACIÓN (Sobre polinomios)

INTERPOLACIÓN: Introducción

INTERPOLACIÓN: Error en la la interpolación polinómica de Lagrange

UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE MINAS DEPARTAMENTO DE MATEMÁTICA APLICADA Y MÉTODOS INFORMÁTICOS

Programación y Métodos Numéricos Resolución de de ecuaciones no no lineales: Método de de aproximaciones sucesivas

Programación Estructurada

Tema 3. Estructuras de control

Programación y Métodos Numéricos Errores de de redondeo en en la la representación de de números reales: EXPRESIÓN DE NÚMEROS EN BASE 2

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Programación y Métodos Numéricos Resolución de de ecuaciones no no lineales: Método de de bipartición

Departamento de Matemática Aplicada CÁLCULO COMPUTACIONAL. Licenciatura en Química (Curso ) Archivos de órdenes. Programación.

BUCLES EN MAPLE. Prof. Carlos Conde LázaroL Prof. Arturo Hidalgo LópezL Prof. Alfredo LópezL

Diseño Computarizado 15023

Introducción a Fortran

SUBPROGRAMAS. Los subprogramas pueden ser invocados varias veces desde diferentes partes del programa.

UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE MINAS DEPARTAMENTO DE MATEMÁTICA APLICADA Y MÉTODOS INFORMÁTICOS

Programación y Métodos Numéricos Errores de de redondeo en en la la representación de de números reales: INTRODUCCIÓN Y MOTIVACIÓN

Unidad 6. Procedimientos Almacenados y Disparadores

Algorítmica y Lenguajes de Programación. Ficheros

INTRODUCCIÓN A MAPLE

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

EJERCICIOS PROPUESTOS: Interpolación

Soluciones al Examen de Fundamentos de Computadores y Lenguajes

Ejemplo: Paso de polares a cartesianas en el plano. f : [0, ) [0, 2π) R R. coordx : [0, ) [0, 2π) R. coordy : [0, ) [0, 2π) R

9. Subprogramas: Procedimientos 1. TEMA 9: Subprogramas: Procedimientos

Planta Primera. Vivenda. 63,70m² 73,99m² 6,27m²

APÉNDICE A ESCUELA SUPERIOR POLITECNICA DEL LITORAL INSTITUTO DE CIENCIAS MATEMATICAS INGENIERIA EN ESTADISTICA E INFORMATICA

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Lenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

Semántica Denotacional

Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función.

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 (;)

Introducción a la. Programación con

Ficheros. Introducción. Apertura y cierre de ficheros

1.9. SENTENCIAS DE CONTROL DE PROGRAMA

TEORÍA DE CÁLCULO I. Para Grados en Ingeniería. Capítulo 2: Cálculo diferencial de una variable. Domingo Pestana Galván José Manuel Rodríguez García

Empieza con // y termina con la siguiente línea de código. Son ignorados por el programa y no ocupan espacio en memoria.

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa:

Tarea #6. 5. Implemente en Mathematica los algoritmos de integración numérica vistos en clase, se

Estructuras de Control

Laboratorio de Procesamiento Digital de Voz Practica 1. INTRODUCCION DE MATLAB Y MANEJO DE ARCHIVOS DE VOZ

PRACTICA Núm. 2 Resolución numérica de ecuaciones no lineales

Se guardan en archivos con extencion c y los cabezales con extension h

Lección 18: Polinomio de Taylor para funciones de una variable. Introducción al Cálculo Infinitesimal I.T.I. Gestión

Complementos de Matemáticas, ITT Telemática

LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F)

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

Introducción a la Programación

Tema 1: Interpolación. Cá álculo umérico

Interpolación. Javier Segura. February 12, 2012

Introducción a Python. Cecilia Manzino

Capítulo 2: Introducción al lenguaje.

Estructuras de repetición

Dra. Jessica Andrea Carballido

EJERCICIOS PARA EL PRIMER PARCIAL INTRODUCCIÓN A LA PROGRAMACIÓN MSc. Lic. Carla Salazar Serrudo

REM Visualizar por pantalla los números de Fibonacci REM comprendidos dentro de los límites del intervalo [a,b]. REM

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Nombre. lógico. físico. Nombre lógico. a 12. Nombre. program Archivos; var a: file of integer; begin assign(a, arch.dat ); end.

UNIDAD III. Funciones de Entrada y Salida de Datos. Estructuras de Control

Conocimientos previos

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Apellidos:... Nombre:... Examen

LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS

Programación y Métodos Numéricos Interpolación polinómica de de Hermite: PLANTEAMIENTO Y CASO DE PRIMER ORDEN

Nombre. Nombre. físico. Nombre lógico. lógico. a 12. program Archivos; var a: file of integer; begin assign(a, arch.dat ); end.

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

suma de los n>0 primeros números que se lean del teclado. El número n es un dato y es

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE MINAS DEPARTAMENTO DE MATEMÁTICA APLICADA Y MÉTODOS INFORMÁTICOS

Capítulo 3. Subprogramas. 3.1 Subprogramas FUNCTION

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

Tema 3. Estructuras de Datos

LockerRoom MANUAL DE USUARIO

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

LENGUAJES DE PROGRAMACIÓN. Pregunta 1 (3 puntos)

PHP: Lenguaje de programación

SESIÓN DE EJERCICIOS E1

TIPO DE DATO ABSTRACTO (TAD)

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

Laboratorio Tic 2 para el 2do. Parcial

Dra. Jessica Andrea Carballido

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

Integración numérica

Los procedimientos almacenados son nuevas funcionalidades de la versión de MySQL 5.0. Un procedimiento

1. Detalle de los Comandos:

Universidad Autónoma del Estado de México Facultad de Medicina

GENERALIDADES DEL LENGUAJE C

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

LENGUAJES DE PROGRAMACIÓN. Solución al examen de Junio 2014, Primera Semana

Esquemas repetitivos en Fortran 90

Cuadratura Numérica. Javier Segura. J. Javier Segura Cuadratura Numérica

PHP y MySQL. Indice: Switch Bucles For While do...while

PARTE 3: CONCEPTOS BÁSICOS DE PROGRAMACIÓN: QBASIC

Transcripción:

Procedimientos en MAPLE Prof. Carlos Conde LázaroL Prof. Arturo Hidalgo LópezL Prof. Alfredo LópezL Marzo, 2007 0

Plan de de exposición 1º. Qué es un Procedimiento en MAPLE? 2º. Cómo se ESCRIBE un Procedimiento en MAPLE? 3º. Cómo se GUARDA un Procedimiento en MAPLE? 4º. Cómo se UTILIZA un Procedimiento en MAPLE? 5º. Algunas normas sobre procedimientos que debes conocer 6º. Un ejemplo. 1

1. 1. Qué es es un un Procedimiento en en MAPLE? Un PROCEDIMIENTO es un subprograma que calcula el valor de una o varias variables de salida en función de los valores que se asignarán (cuando se llame al procedimiento) a una o varias variables de entrada. Se llaman ARGUMENTOS del procedimiento al conjunto de las variables, ya sean de entrada o salida, que se utilizan en el procedimiento. 2

2. 2. Cómo se se escribe un un Procedimiento en en MAPLE? (1/2) Nombre_procedimiento:= proc ( argumentos ) Sentencias de MAPLE (asignaciones, bloques IF, bucles,... ) end proc; (end proc puede remplazarse por end;) El resultado de la última operación que se realice, también es un argumento de salida (sale en Nombre_procedimiento ). 3

2. 2. Cómo se se escribe un un Procedimiento en en MAPLE? (2/2) Ejemplo: 3 5 7 9 x x x x sen( x) = x + +... 3! 5! 7! 9! 2 1 2 1 2 1 2 1 x 1 x x x x 3! 5! 7! 9! > seno9:=proc(x) x*(1.-x^2*(1/6.-x^2*(1/120.-x^2*(1/5040.-x^2*(1/362880))))) end proc; 4

3. 3. Cómo se se guarda un un Procedimiento? Un procedimiento debe guardarse, para poder ser llamado posteriormente, en un fichero con extensión.m > save Nombre_procedimiento, Dirección y nombre del fichero.m Recomendación: Asignar al nombre del fichero el mismo nombre del procedimiento. Y elegir nombres que faciliten la identificación del proceso programado. Ejemplo: Nombre procedimiento Directorio Nombre fichero > save seno9,"c:/profes/pmn/c02_03/seno9.m"; > save seno9,"a:/seno9.m"; 5

4. 4. Cómo se se usa un un Procedimiento? (1/2) Cuando desde un programa se desea usar un procedimiento almacenado en un fichero.m : 1º) Se lee el fichero > read Dirección y nombre del fichero.m Ej: > read "C:/Profes/PMN/C02_03/seno9.m"; 2º) (opcional)se dan valores a los argumentos de entrada Ej: > x:=0.27 3º) Se ejecuta el procedimiento Dan valor a las variables de entrada > resultado:= Nombre_procedimiento (expresiones + variables) Nombres de variables de salida 6

4. 4. Cómo se se usa un un Procedimiento? (2/2) Ejemplo: [> restart; [> read "A:/seno9.m"; [> alpha:=evalf(pi/2.37); α:= 1.325566521 [> v:=seno9(0.5*alpha-1.); v:= -.3308618720 7

5. 5. Algunas normas sobre procedimientos (1/8) (1/8) 1ª) Las variables de salida de un procedimiento pueden tener nombre diferente al ser usadas como parámetros del procedimiento y al ser utilizado el mismo. Ejemplo: [> int_simpson:= proc(a, b, f, vint)... end proc: [> int_simpson(linf, lsup,g,result): Pero cada parámetro del procedimiento y cada expresión o variable con las que se corresponda han de ser del mismo tipo (número, string, array, función,...). 8

5. 5. Algunas normas sobre procedimientos (2/8) (2/8) 2ª) Las variables que tengan asignado algún valor en el momento de llamar a un procedimiento son consideradas como variables de entrada. Las variables de salida deben ser pasadas al procedimiento sin tener ningún valor asignado. 3ª) El valor de las variables de entrada no puede ser modificado en el procedimiento. 4ª) Las variables que se utilicen en un procedimiento y no formen parte de sus argumentos son consideradas como variables locales y su valor no es transmitido al programa que llame al procedimiento. 9

5. 5. Algunas normas sobre procedimientos (3/8) (3/8) 5ª) Las variables locales pueden ser definidas, tras la primera línea del procedimiento, usando la sentencia local lista de variables locales: 10

5. 5. Algunas normas sobre procedimientos (4/8) (4/8) Ej: > int_simpson:=proc(a,b,f,valor) local pmed: pmed:=(a+b)/2.: valor:=(b-a)*(f(a)+4.*f(pmed)+f(b))/6.: end proc: > save int_simpson,"a:/int_simpson.m"; > restart; > read "A:/int_simpson.m"; > g:=x->4*x^2: > int_simpson(0.,1.,g,resultado): > resultado; 1.333333334 11

5. 5. Algunas normas sobre procedimientos (5/8) (5/8) 6ª) Variables usadas en un procedimiento y que no forman parte de sus argumentos pueden ser declaradas como variables globales. Su valor (y su nombre) se transmiten entonces al programa que llame al procedimiento 12

Ej: 5. 5. Algunas normas sobre procedimientos (6/8) (6/8) > int_simpson:=proc(a,b,f,valor) global pmed: pmed:=(a+b)/2.: valor:=(b-a)*(f(a)+4.*f(pmed)+f(b))/6.: end proc: > save int_simpson,"a:/int_simpson.m"; > restart; > read "A:/int_simpson.m"; > g:=x->4*x^2: > int_simpson(0.,1.,g,resultado): > resultado;pmed; 1.333333334.500000000 13

5. 5. Algunas normas sobre procedimientos (7/8) (7/8) 7ª) Cuando se lea un procedimiento en un programa, se puede visualizar el proceso programado usando: Ej: [> print (Nombre_procedimiento); > restart; > read "A:/int_simpson.m"; > print (int_simpson); proc ( a, b, f, valor) global pmed; description "calculo de una integral por el método de Simpson" ; pmed :=.5000000000 a +.5000000000 b; valor :=.1666666667 ( b a ) ( f( a ) + 4. f( pmed ) + f( b) ) end proc Nota: description sirve para escribir comentarios 14

5. 5. Algunas normas sobre procedimientos (8/8) (8/8) 8ª) Un procedimiento puede llamar a otros procedimientos (que se hayan leído previamente). 15

Dada la función f(x) Dados: x, maxiter y ε f y x - f ( x) ( x) 6. 6. Ejemplo: Algoritmo del método de de la la secante (1/3) (1/3) j 1 MIENTRAS ( ( j < maxiter) Y ( x y > ε ) ) HACER: x.f( y)- y.f( x) 1º) z 2º) x y f( y)- f(x) 3º) y z 4º) j j+1 FIN BUCLE CONDICIONAL 16

6. 6. Ejemplo: Procedimiento sobre el el método de de la la secante (2/3) (2/3) > secante:=proc(xinic,maxiter,eps,f,z,tol,iter) local aux,x,y,j: x:=xinic: y:= x-f(x)/d(f)(x): j:= 1: while ((j<maxiter) and (abs(x-y)<eps)) do aux := (x*f(y)-y*f(x))/(f(y)-f(x)): x := y: y := aux: j := j+1: od: z:=aux: tol:=abs(x-y): iter:=j: end: 17

6. 6. Ejemplo: Almacenamiento y uso del procedimiento del método de de la la secante (3/3) (3/3) Almacenamiento del procedimiento [> save secante,"a:/secante.m": Uso del procedimiento [> restart; [> read "A:/secante.m": [> maxiter:=20:eps:=10.^(-4): f:=x->x^3+4.*x^2+x-10.:x:=0.: [> secante(x,maxiter,eps,f,sol,tol,iter): [> evalf(sol);tol;iter; 1.284277548.000015211 13 18

7. 7. Ejercicio propuesto (1/2) Escribir (y salvar) un procedimiento, llamado soporte_ch, que calcule los (n+1) puntos de un soporte de Chebyshev dados por la fórmula: a+ b b a (2 i+ 1) xi = + cos π 2 2 (2 n + 2) (i = 0, 1,..., n) (Datos: a, b, n) (Resultados {x i } (i = 0,.., n) Escribir (y salvar) un procedimiento, llamado polbaslgr1, que calcule el i-ésimo polinomio de base de Lagrange en un soporte dado n ( x x j ) Li ( x) = ( x x ) j= 0 i j j i (Datos: n, {x k } (k = 0,..., n), i) (Resultado: función L i (x) ) 19

7. 7. Ejercicio propuesto (2/2) Escribir (y salvar) un procedimiento, llamado polbaslgr, que calcule TODOS los polinomios de base de Lagrange en un soporte dado. Para ello utilizará el procedimiento anterior polbaslgr1. (Datos: n,{x k }(k = 0,..., n)) (Resultado: funciones L i (x) (k = 0,..., n)) Escribir un programa que usando los procedimientos anteriores calcule el polinomio interpolador de Lagrange de la función de Runge f(x) = (1+x 2 ) -1 sobre un soporte de Chebyshev formado por 9 puntos del intervalo [-6, 6]. n p( x) = f ( xi) Li( x) i= 0 20

21