+ All Categories
Home > Documents > M5 PROCEDIMIENTOS EN MAPLE (3) -...

M5 PROCEDIMIENTOS EN MAPLE (3) -...

Date post: 19-May-2018
Category:
Upload: vancong
View: 221 times
Download: 2 times
Share this document with a friend
22
0 Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Procedimientos en MAPLE Procedimientos en MAPLE Prof. Carlos Conde L Prof. Carlos Conde L á á zaro zaro Prof. Arturo Hidalgo L Prof. Arturo Hidalgo L ó ó pez pez Prof. Alfredo L Prof. Alfredo L ó ó pez pez Marzo, 2007
Transcript

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

Universidad Politécnica de Madrid Ingeniería de Minas

Procedimientos en MAPLEProcedimientos en MAPLE

Prof. Carlos Conde LProf. Carlos Conde LáázarozaroProf. Arturo Hidalgo LProf. Arturo Hidalgo Lóópezpez

Prof. Alfredo LProf. Alfredo Lóópezpez

Marzo, 2007

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

Universidad Politécnica de Madrid Ingeniería de Minas

Plan de exposiciónPlan 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?

6º. Un ejemplo.

5º. Algunas normas sobre procedimientos que debes conocer

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

Universidad Politécnica de Madrid Ingeniería de Minas

Un PROCEDIMIENTO es un subprograma que calcula el valor de una o varias “variables de salida” en función delos valores que se asignarán (cuando se llame al proce-dimiento) a una o varias “variables de entrada”.

Se llaman ARGUMENTOS del procedimiento al conjunto de las variables , ya sean de “entrada” o “salida”, que seutilizan en el procedimiento.

1. ¿Qué es un Procedimiento en MAPLE?1. ¿Qué es un Procedimiento en MAPLE?

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

Universidad Politécnica de Madrid Ingeniería de Minas

Nombre_procedimiento:= proc ( argumentos )

Sentenciasde MAPLE

(asignaciones,bloques IF,

bucles,.... )

end proc;

El resultado de la última operación que se realice, también es un argumento de salida (sale en Nombre_procedimiento”).

(end proc puede remplazarse por end;)

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

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

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

Universidad Politécnica de Madrid Ingeniería de Minas

Ejemplo:3 5 7 9

( ) ...3! 5! 7! 9!x x x xsen x x= − + − + − ≈

2 2 2 21 1 1 1· 1 · · · ·3! 5! 7! 9!

x x x x x⎛ ⎞⎛ ⎞⎛ ⎞⎛ ⎞⎛ ⎞≈ − − − −⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠⎝ ⎠⎝ ⎠⎝ ⎠⎝ ⎠

> seno9:=proc(x)x*(1.-x^2*(1/6.-x^2*(1/120.-x^2*(1/5040.-x^2*(1/362880)))))end proc;

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

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

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

Universidad Politécnica de Madrid Ingeniería de Minas

NombreficheroDirectorio

> save Nombre_procedimiento, “Dirección y nombre del fichero.m”

Un procedimiento debe guardarse, para poder ser llamadoposteriormente, en un fichero con extensión “.m”

Recomendación: Asignar al nombre del fichero el mismonombre del procedimiento. Y elegir nombres que faci-liten la identificación del proceso programado.

Ejemplo:

> save seno9,"C:/Profes/PMN/C02_03/seno9.m";

> save seno9,"A:/seno9.m";

Nombreprocedimiento

3. ¿Cómo se guarda un Procedimiento ?3. ¿Cómo se guarda un Procedimiento ?

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

Universidad Politécnica de Madrid Ingeniería de Minas

Cuando desde un programa se desea usar un procedimientoalmacenado en un fichero “.m”:

1º) Se lee el fichero

2º) (opcional)Se dan valores a los argumentos de entrada

3º) Se ejecuta el procedimiento

> read “Dirección y nombre del fichero.m”

Ej: > read "C:/Profes/PMN/C02_03/seno9.m";

Ej: > x:=0.27

> resultado:= Nombre_procedimiento (expresiones + variables)

Dan valor a lasvariables de entrada

Nombres de variables de salida

4. ¿Cómo se usa un Procedimiento? (1/2)4. ¿Cómo se usa un Procedimiento? (1/2)

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

Universidad Politécnica de Madrid Ingeniería de Minas

Ejemplo:

[> restart;[> read "A:/seno9.m";[> alpha:=evalf(Pi/2.37);

α:= 1.325566521[> v:=seno9(0.5*alpha-1.);

v:= -.3308618720

4. ¿Cómo se usa un Procedimiento? (2/2)4. ¿Cómo se usa un Procedimiento? (2/2)

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

Universidad Politécnica de Madrid Ingeniería de Minas

1ª) Las variables de salida de un procedimiento pueden tener nombre diferente al ser usadas como parámetrosdel 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óno variable con las que se corresponda han de ser del mismotipo (número, string, array, función, ....).

5. Algunas normas sobre procedimientos (1/8)5. Algunas normas sobre procedimientos (1/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

2ª) Las variables que tengan asignado algún valor en elmomento de llamar a un procedimiento son conside-radas como variables de entrada. Las variables de salida deben ser pasadas al procedimiento sin tenerningún valor asignado.

3ª) El valor de las variables de entrada no puede ser modifi-cado en el procedimiento.

4ª) Las variables que se utilicen en un procedimiento y noformen parte de sus argumentos son consideradas como variables locales y su valor no es transmitido alprograma que llame al procedimiento.

5. Algunas normas sobre procedimientos (2/8)5. Algunas normas sobre procedimientos (2/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

5ª) Las variables locales pueden ser definidas, tras la primera línea del procedimiento, usando la sentencia

local lista de variables locales:

5. Algunas normas sobre procedimientos (3/8)5. Algunas normas sobre procedimientos (3/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

> 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:

Ej:

> 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

5. Algunas normas sobre procedimientos (4/8)5. Algunas normas sobre procedimientos (4/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

6ª) Variables usadas en un procedimiento y que no formanparte de sus argumentos pueden ser declaradas comovariables globales. Su valor (y su nombre) se transmitenentonces al programa que llame al procedimiento

5. Algunas normas sobre procedimientos (5/8)5. Algunas normas sobre procedimientos (5/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

> 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:

Ej:

> 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

5. Algunas normas sobre procedimientos (6/8)5. Algunas normas sobre procedimientos (6/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

7ª) Cuando se lea un procedimiento en un programa, sepuede visualizar el proceso programado usando:

[> print (Nombre_procedimiento);Ej:

> restart;> read "A:/int_simpson.m";> print (int_simpson);

, , ,a b f valorproc ( )global ;pmeddescription ;"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

5. Algunas normas sobre procedimientos (7/8)5. Algunas normas sobre procedimientos (7/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

8ª) Un procedimiento puede llamar a otros procedimientos(que se hayan leído previamente).

5. Algunas normas sobre procedimientos (8/8)5. Algunas normas sobre procedimientos (8/8)

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

Universidad Politécnica de Madrid Ingeniería de Minas

Dados: x, maxiter y ε

MIENTRAS ( ( j < maxiter) Y ( | x – y | > ε ) ) HACER:

FIN BUCLE CONDICIONAL

( )( )

ff

x -yxx

←′

.f( ) - .f(y yy

)f( ) - f

z x x(x)

←1º) 2º) x y

3º) y z 4º) j j+1

j 1

Dada la función f(x)

6. Ejemplo: Algoritmo del método de la secante (1/3)6. Ejemplo: Algoritmo del método de la secante (1/3)

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

Universidad Politécnica de Madrid Ingeniería de Minas

> 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:

6. Ejemplo: Procedimiento sobre el método de la secante (2/3)

6. Ejemplo: Procedimiento sobre el método de la secante (2/3)

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

Universidad Politécnica de Madrid Ingeniería de Minas

Almacenamiento del procedimiento[> save secante,"A:/secante.m":

[> 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

Uso del procedimiento

6. Ejemplo: Almacenamiento y uso del procedimiento del método de la secante (3/3)

6. Ejemplo: Almacenamiento y uso del procedimiento del método de la secante (3/3)

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

Universidad Politécnica de Madrid Ingeniería de Minas

Escribir (y salvar) un procedimiento, llamado soporte_ch, que calcule los (n+1) puntos de un soporte de Chebyshevdados por la fórmula:

(2· 1)·cos ·2 2 (2· 2)i

a b b a ixn

π⎛ ⎞+ − +

= + ⎜ ⎟+⎝ ⎠(i = 0, 1, ..., n)

(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 un soporte dado

0

( )( )

( )

nj

ij i jj i

x xL x

x x=≠

−=

−∏(Datos: n, {xk} (k = 0, ..., n), i) (Resultado: función Li(x) )

7. Ejercicio propuesto (1/2)7. Ejercicio propuesto (1/2)

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

Universidad Politécnica de Madrid Ingeniería de Minas

Escribir (y salvar) un procedimiento, llamado polbasLgr, que calcule TODOS los polinomios de base de Lagrangeen un soporte dado. Para ello utilizará el procedimientoanterior polbasLgr1.

(Datos: n,{xk}(k = 0,..., n)) (Resultado: funciones Li(x) (k = 0,..., n))

Escribir un programa que usando los procedimientos ante-riores calcule el polinomio interpolador de Lagrange de lafunción de Runge f(x) = (1+x2)-1 sobre un soporte de Chebyshev formado por 9 puntos del intervalo [-6, 6].

0

( ) ( )· ( )n

i ii

p x f x L x=

= ∑

7. Ejercicio propuesto (2/2)7. Ejercicio propuesto (2/2)

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

Universidad Politécnica de Madrid Ingeniería de Minas


Recommended