Procedimientos en MAPLE

Universidad Politécnica de Madrid Ingeniería de Minas Procedimientos Procedimientos en en MAPLE MAPLE Prof. Carlos Conde Lázaro Prof. Arturo Hidalgo

21 downloads 302 Views 134KB Size

Recommend Stories


Introducción a las Ecuaciones Diferenciales en Maple
Universidad Diego Portales Facultad de Ciencias de la Ingeniería Enero 2003 Introducción a las Ecuaciones Diferenciales en Maple Jonathan Makuc (Jona

Tutorial básico de Maple
Tutorial básico de Maple Expresiones matemáticas Maple ambién permite escribir las expresiones matamáticas como: Introducción dx 1K v 2 = c2 v

Story Transcript

Universidad Politécnica de Madrid

Ingeniería de Minas

Procedimientos Procedimientos en en MAPLE MAPLE Prof. Carlos Conde Lázaro Prof. Arturo Hidalgo López Prof. Alfredo López Marzo, 2007 Departamento de Matemática Aplicada y Métodos Informáticos

0

Universidad Politécnica de Madrid

Ingeniería de Minas

Plan Plan de de exposición 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. Departamento de Matemática Aplicada y Métodos Informáticos

1

Universidad Politécnica de Madrid

Ingeniería de Minas

1. 1. ¿Qué ¿Qué es es un un Procedimiento Procedimiento en en MAPLE? 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.

Departamento de Matemática Aplicada y Métodos Informáticos

2

Universidad Politécnica de Madrid

Ingeniería de Minas

2. 2. ¿Cómo ¿Cómo se se escribe escribe un un Procedimiento Procedimiento en en MAPLE? MAPLE? (1/2) (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”). Departamento de Matemática Aplicada y Métodos Informáticos

3

Universidad Politécnica de Madrid

Ingeniería de Minas

2. 2. ¿Cómo ¿Cómo se se escribe escribe un un Procedimiento Procedimiento en en MAPLE? MAPLE? (2/2) (2/2) Ejemplo:

x3 x5 x7 x9 sen( x) = x − + − + − ... ≈ 3! 5! 7! 9! ⎛ ⎛1 ⎞⎞ 2 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;

Departamento de Matemática Aplicada y Métodos Informáticos

4

Universidad Politécnica de Madrid

Ingeniería de Minas

3. 3. ¿Cómo ¿Cómo se se guarda guarda un un Procedimiento 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"; Departamento de Matemática Aplicada y Métodos Informáticos

5

Universidad Politécnica de Madrid

Ingeniería de Minas

4. 4. ¿Cómo ¿Cómo se se usa usa un un Procedimiento? Procedimiento? (1/2) (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

Dan valor a las variables de entrada

3º) Se ejecuta el procedimiento > resultado:= Nombre_procedimiento (expresiones + variables) Nombres de variables de salida Departamento de Matemática Aplicada y Métodos Informáticos

6

Universidad Politécnica de Madrid

Ingeniería de Minas

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

Departamento de Matemática Aplicada y Métodos Informáticos

7

Universidad Politécnica de Madrid

Ingeniería de Minas

5. 5. Algunas Algunas normas normas sobre sobre procedimientos 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, ....). Departamento de Matemática Aplicada y Métodos Informáticos

8

Universidad Politécnica de Madrid

Ingeniería de Minas

5. 5. Algunas Algunas normas normas sobre sobre procedimientos 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. Departamento de Matemática Aplicada y Métodos Informáticos

9

Universidad Politécnica de Madrid

Ingeniería de Minas

5. 5. Algunas Algunas normas normas sobre sobre procedimientos 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:

Departamento de Matemática Aplicada y Métodos Informáticos

10

Universidad Politécnica de Madrid

Ingeniería de Minas

5. 5. Algunas Algunas normas normas sobre sobre procedimientos 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 Departamento de Matemática Aplicada y Métodos Informáticos

11

Universidad Politécnica de Madrid

Ingeniería de Minas

5. 5. Algunas Algunas normas normas sobre sobre procedimientos 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

Departamento de Matemática Aplicada y Métodos Informáticos

12

Universidad Politécnica de Madrid

Ingeniería de Minas

5. 5. Algunas Algunas normas normas sobre sobre procedimientos procedimientos (6/8) (6/8) Ej: > 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 Departamento de Matemática Aplicada y Métodos Informáticos

13

Universidad Politécnica de Madrid

Ingeniería de Minas

5. 5. Algunas Algunas normas normas sobre sobre procedimientos procedimientos (7/8) (7/8) 7ª) Cuando se lea un procedimiento en un programa, se puede visualizar el proceso programado usando: [> print (Nombre_procedimiento); Ej: > 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 Departamento de Matemática Aplicada y Métodos Informáticos

14

Universidad Politécnica de Madrid

Ingeniería de Minas

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

Departamento de Matemática Aplicada y Métodos Informáticos

15

Universidad Politécnica de Madrid

Ingeniería de Minas

6. 6. Ejemplo: Ejemplo: Algoritmo Algoritmo del del método método de de la la secante secante (1/3) (1/3) Dada la función f(x)

Dados: x, maxiter y

ε

f (x) y ← xf′ ( x ) jÅ1 MIENTRAS ( ( j < maxiter) Y ( | x – y | > ε ) ) HACER: x.f(y) - y.f(x) 1º) z ← f(y) - f(x)

2º) x Å y

3º) y Å z

4º) j Å j+1

FIN BUCLE CONDICIONAL Departamento de Matemática Aplicada y Métodos Informáticos

16

Universidad Politécnica de Madrid

Ingeniería de Minas

6. 6. Ejemplo: Ejemplo: Procedimiento Procedimiento sobre sobre el el método método de de la la secante 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 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 Departamento de Matemática Aplicada y Métodos Informáticos

18

Universidad Politécnica de Madrid

Ingeniería de Minas

7. 7. Ejercicio Ejercicio propuesto propuesto (1/2) (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: ⎛ (2·i + 1) ⎞ a+b b−a (i = 0, 1, ..., n) xi = + ·cos ⎜ ·π ⎟ 2 2 ⎝ (2·n + 2) ⎠ (Datos: a, b, n) (Resultados {xi} (i = 0, .., n)

Escribir (y salvar) un procedimiento, llamado polbasLgr1, que calcule el i-ésimo polinomio de base de Lagrange en n (x − x ) un soporte dado j Li ( x) = ∏ j =0 ( xi − x j ) j ≠i

(Datos: n, {xk} (k = 0, ..., n), i) (Resultado: función Li(x) ) Departamento de Matemática Aplicada y Métodos Informáticos

19

Universidad Politécnica de Madrid

Ingeniería de Minas

7. 7. Ejercicio Ejercicio propuesto propuesto (2/2) (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,{xk}(k = 0,..., n)) (Resultado: funciones Li(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+x2)-1 sobre un soporte de Chebyshev formado por 9 puntos del intervalo [-6, 6]. n

p ( x) = ∑ f ( xi )·Li ( x) i =0

Departamento de Matemática Aplicada y Métodos Informáticos

20

Universidad Politécnica de Madrid

Ingeniería de Minas

Departamento de Matemática Aplicada y Métodos Informáticos

21

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.