m3 bucles en maple
TRANSCRIPT
![Page 1: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/1.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
BUCLES EN MAPLEBUCLES 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
![Page 2: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/2.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
DefiniciónDefinición
Un cálculo que se repite varias veces, se programamediante una estructura denominada: BUCLE
Para vc desde vinic hasta vfin con incremento incr hacer
Fin del bucle Sentencias que se repiten
vc: variable de controlvinic: valor inicial de la variable vcvfin: valor final de la variable vcincr: incremento con el que se pasa desde vinic hasta vfin
![Page 3: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/3.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Proceso seguido en un bucleProceso seguido en un bucle
vc vinic
vc vinic + incr
vc vinic + 2.incr
...
hasta que vc salga del rango [vinic .. vfin]
sentencias
sentencias
sentencias
![Page 4: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/4.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Programación en MAPLEProgramación en MAPLE
> for vc from vinic to vfin by incr do
od;
NOTA: by incr es opcional cuando incr = 1
Sentencias de MAPLE que se repiten
![Page 5: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/5.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejemplo 1Ejemplo 1
Ejemplo: Calcular el producto escalar de los vectoresu=(u1, u2, u3) y v=(v1, v2, v3)
a) Sin utilizar bucles:[> u := vector(3): v=vector(3):[> pe := u[1]*v[1] + u[2]*v[2] + u[3]*v[3];
b) Utilizando bucles:[> u := vector(3): v=vector(3): pe:=0:> for i from 1 to 3 by 1 do
pe := pe + u[i]*v[i];od;
![Page 6: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/6.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejemplo 1 (cont.)Ejemplo 1 (cont.)
pe = u1v1 + u2v2 + u3v3
i=3 pe = pe + u3v3 ( = u1v1 + u2v2 + u3v3)
El proceso seguido es el siguiente:
pe = 0i=1 pe = pe + u1v1 ( = 0 + u1v1)
i=2 pe = pe + u2v2 ( = u1v1 + u2v2)
![Page 7: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/7.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Los BernoulliLos Bernoulli
Johan1667-1748
Jakob1654-1705
Daniel 1700-1782
…………
Ambos hermanos fueron pioneros en el desarrollo del cálculo diferencial, asícomo otras ramas de la Matemática.
Hijo de Johan. Fue,en opinión de muchos
Autores, el más brillantede la saga Bernoulli.
Además de sus numero-sas contribuciones ala Matemática, fue
pionero en hidrodinámicadescubriendo la
ecuación de Bernoulliestudiada en Mecánica
de Fluidos.
Entre otros temas, analizódiferentes curvas. Y, entre ellas,su preferida fue la llamada “Espiral Milagrosa (o de Bernoulli)”Dejó dispuesto que en la lápida de su
tumba se le grabase una espiral milagrosa.Pero el escultor se equivocó y le grabó
una espiral de Arquímedes. Te proponemosque repares ese error.
![Page 8: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/8.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 1 (La espiral milagrosa) *Ejercicio 1 (La espiral milagrosa) *
(*) o de Jakob Bernoulli
θ
V
ω
ρ
θ = (1/k)·ln(ρ/C)
k = 0.1; V = 50; C = 0.01 ; t = 0, 0.005, 0.01, 0.015, ....., 1
ρ = V.t
y(t) = ρ·sen(θ)x(t) = ρ·cos(θ)
Dibujar la curva para:
![Page 9: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/9.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 1 (cont.)Ejercicio 1 (cont.)
ti = ti-1 + Δt (i = 1, 2, …, n)t0 = 0 tn = 1… …
Δt = tn – t0
nn = 200
n ← 200 k ← 0.1 v ← 50 c ← 0.01x0 ← 0 y0 ← 0 t ← 0
Δt ← 1./n
Para i desde 1 hasta n con paso 1 HACER:
Fin del bucle
1) t ← t + Δt 2) ρ← v·t 3) θ← ln(ρ/c)/k
4) xi ← ρ ·cos(θ) 5) yi ← ρ ·sen(θ)
![Page 10: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/10.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 1 (cont.)Ejercicio 1 (cont.)
[> restart:[> with(plots):[> n:=200: k:=0.1: v:=50: c:=0.01:[> x:=array(0..n): y:=array(0..n):[> x[0]:=0.: y[0]:=0.: t:=0.:[> delta_t:=1/n:
> for i from 1 to n by 1 dot:=t+delta_t:rho:=v*t:theta:=ln(rho/c)/k:x[i]:=rho*cos(theta):y[i]:=rho*sin(theta):
od:
![Page 11: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/11.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Algo más sobre gráficos en MAPLE (1)Algo más sobre gráficos en MAPLE (1)
Hasta ahora hemos utilizado el comando plot de la siguiente manera:
Si queremos representar, por ejemplo, la funciónf(x)=x2 en el intervalo [0,2], hacemos:
[> f:=x->x^2;[> plot(f, 0..1, opciones);
o bien:[> f(x):=x^2;[> plot(f(x), x=0..1, opciones);
![Page 12: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/12.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Algo más sobre gráficos en MAPLE (2)Algo más sobre gráficos en MAPLE (2)
que da como resultado:
![Page 13: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/13.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Algo más sobre gráficos en MAPLE (3)Algo más sobre gráficos en MAPLE (3)
Pero, ¿Cómo podemos representar un conjunto de puntos (x[i], y[i]), i=1,2,…,n?
Volvamos al ejemplo. Si ejecutamos:
[> f:=x->x^2;[> a:=plot(f, 0..1, opciones);
![Page 14: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/14.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Algo más sobre gráficos en MAPLE (4)Algo más sobre gráficos en MAPLE (4)
a:=PLOT(CURVES([[0.,0.],[0.0217…,0.00047…],[0.0407…,0.00166…]…[1.,1.]],COLOUR(RGB,1.0,0.,0.)),AXESLABELS(“”,””),VIEW(0. ..1.,DEFAULT))
obtenemos:
Los números:
[[0.,0.],[0.0217…,0.00047…],[0.0407…,0.00166…]…[1.,1.]]
Forman una SECUENCIA generada automáticamente por el comando plot a partir de f.
![Page 15: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/15.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Algo más sobre gráficos en MAPLE (5)Algo más sobre gráficos en MAPLE (5)
Esta secuencia se puede generar manualmente, resultando la siguiente forma del comando plot:
[>plot(secuencia, opciones);
¡ Se escribe entre corchetes para que el resultado sea una LISTA !
Para crear la secuencia de puntos se utiliza la expresión:
donde f es una expresión y vc una variable que varíaentre vinic y vfin.
[> nombre:=[seq(f(vc), vc=vinic..vfin)]
![Page 16: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/16.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Algo más sobre gráficos en MAPLE (6)Algo más sobre gráficos en MAPLE (6)
El comando:
[> pointplot(secuencia, opciones);
permite dibujar una secuencia de puntos aislados
![Page 17: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/17.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 1 (cont.)Ejercicio 1 (cont.)
[> dibu:=[seq([x[i],y[i]],i=1..n)]:[> plot(dibu, scaling=CONSTRAINED);
![Page 18: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/18.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 1 (cont.)Ejercicio 1 (cont.)[> puntos:=[seq([x[i],y[i]],i=0..n)];[> pointplot(puntos,color=blue,
scaling=CONSTRAINED);
![Page 19: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/19.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 1 (cont.)Ejercicio 1 (cont.)
Volver a ejecutar el programa con los datos:n = 5000, v = 25 , k = -0.1 , c = 0.1
![Page 20: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/20.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 2Ejercicio 2
= ⋅ =∫1 n x-1
n 0A x e dx (n 0,1,...)
⎤= ⋅ − ⋅ = − ⋅⎦ ∫11n x-1 n-1 x-1
n n-10 0A x e n x e dx 1 n A
La integral:
puede calcularse integrando por partes:
= ⋅ = − = =∫ ∫1 1x-1 x-1
1 0 0
1A x e dx 1 e dx 0.367879441...e
NOTA: El planteamiento teórico de este ejemplo se ha tomado de la referencia: SHAMPINE, L.F., ALLEN Jr., R.C. and PRUESS, S. (1997) Fundamentals of numerical computing. Ed. John Wiley & Sons, Inc.
![Page 21: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/21.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 2 (cont.)Ejercicio 2 (cont.)
Determinar el efecto de los errores de redondeo sicalculamos con una precisión de 7 dígitos y suponemosque el cálculo realizado con una precisión de 20 dígitoses el valor exacto.
![Page 22: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/22.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 2 (cont.)Ejercicio 2 (cont.)
0AE 1=1) 1- e 0 = 0.63 A 22) 1206
3) eabs0 = |AE0 – A0| 4) errel0 = |eabs0 / AE0|
−− ii i 115) E AEiA = − ii i-116) A= iA
−i iieabs AE=7 A) ii
i
8 e) abse el =rAE
r
Para i desde 1 hasta n con paso 1 HACER:
Fin del bucle
Notas: Tomar n = 10. Calcular 6) con 7 dígitos y todo lo demás con 20.
![Page 23: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/23.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 2 (cont.)Ejercicio 2 (cont.)[> restart:[> with(plots):[> n:=10: ndigex:=20: ndigap:=7:[> AE:=array(0..n): A:=array(0..n):[> eabs:=array(0..n): errel:=array(0..n):[> AE[0]:=evalf(1-1/exp(1),ndigex):[> A[0]:=evalf(1-1/exp(1),ndigap):[> eabs[0]:=evalf(abs(AE[0]-A[0]),ndigex):[> erel[0]:=evalf(abs(eabs[0]/AE[0]),ndigex):[> for i from 1 to n by 1 do
AE[i]:= evalf(1-i*AE[i-1],ndigex):A[i] := evalf(1-i*A[i-1],ndigap):eabs[i]:=evalf(abs(AE[i]-A[i]),ndigex):erel[i]:=evalf(abs(eabs[i]/AE[i]),ndigex):
od:
![Page 24: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/24.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 2 (cont.)Ejercicio 2 (cont.)
[> d1:=[seq([i,AE[i]],i=1..n)]:[> d2:=[seq([i,A[i]],i=1..n)]:[> d3:=[seq([i,eabs[i]],i=1..n)]:[> d4:=[seq([i,erel[i]],i=1..n)]:[> dibu1:=plot(d1,color=red):[> dibu2:=plot(d2,color=blue):[> dibu3:=plot(d3,color=red):[> dibu4:=plot(d4,color=blue):[> display(dibu1,dibu2);[> display(dibu3,dibu4);
![Page 25: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/25.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio 2 (cont.)Ejercicio 2 (cont.)
ExactaAproximada
Error absolutoError relativo
![Page 26: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/26.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio propuesto 1Ejercicio propuesto 1
Sea una función f(x) derivable en todos los puntos del intervalo real [a,b].Su derivada primera en x* є [a,b] se puede aproximar mediante:
( ) ( ) ( )1 0
1 0
' *f x f x
f xx x−
=−
Sean los puntos de [a,b] equidistantes: 0 1 2 Nx a x x x b= < < < < =…
( ) ( ) ( )1' , 0,1, , 1i ii
f x f xf x i N
h+ −
= = −… b ahN−
=con
Dada la función: ( ) ( )cos( ) sin 22xf x x= ⋅
a) Calcular f’(xi), i = 0, 1, 2, …, N-1, con N = 50 y [a,b] = [-π, π]
b) Representar conjuntamente f(x) y su primera derivada aproximada
![Page 27: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/27.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio propuesto 1Ejercicio propuesto 1
[> restart:[> with(plots):[> f:=x->cos(x/2)*sin(2*x);[> a:=evalf(-Pi); b:=evalf(Pi); N:=50; h:=(b-a)/N;[> x:=array(0..N,[]): df:=array(0..N,[]):x[0]:=a:[> for i from 0 to N-1 do
x[i+1]:=x[i]+h;df[i]:=evalf((f(x[i+1])-f(x[i]))/h):
od:[> ptos:=[seq([x[i],df[i]], i=0..N)]:[> dib1:=plot(ptos,color=blue,thickness=2,
legend="derivada"):[> dib2:=plot(f,-Pi..Pi, thickness=2,color=black,
legend="función"):[> display(dib1,dib2);
![Page 28: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/28.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio propuesto 1Ejercicio propuesto 1
![Page 29: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/29.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio propuesto 2Ejercicio propuesto 2
( )iv 1 3 , i 0,1,2[i] ,...,n= − =La sucesión:
puede aproximarse mediante:
x[0] = 1; 3x[1] 1 ;= − x[i] = 2·(x[i-1] + x[i-2]), (i = 2, 3, ..., n)
Calcúlense los primeros 51 valores exactos y represén-tese en una misma gráfica de puntos los 20 primerosvalores exactos y aproximados utilizando:
a) 8 dígitos significativosb) 24 dígitos significativos
![Page 30: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/30.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio propuesto 2Ejercicio propuesto 2[> restart:[> with(plots):[> n:=50: ndig[1]:=8: ndig[2]:=24:[> v:=array(0..n): x:=array(0..n): [> v[0]:=1.: x[0]:=1.:[> for j from 1 to 2 by 1 do
v[1]:=evalf(1-sqrt(3),ndig[j]): x[1]:=evalf(1-sqrt(3),ndig[j]):for i from 2 to n by 1 do
v[i]:=evalf((1-sqrt(3))^i,ndig[j]):x[i]:=evalf(2*(x[i-1] + x[i-2]),ndig[j]):
od:ptos1:=[seq([i,v[i]], i=0..20)]:ptos2:=[seq([i,x[i]], i=0..20)]:dibu1[j]:=plot(ptos1,color=red):dibu2[j]:=plot(ptos2,color=blue):
od:[> display(dibu1[1],dibu2[1]);[> display(dibu1[2],dibu2[2]);
![Page 31: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/31.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Ejercicio propuesto 2Ejercicio propuesto 2
ExactaAproximada
8 dígitos
ExactaAproximada
24 dígitos
![Page 32: m3 Bucles en Maple](https://reader035.vdocument.in/reader035/viewer/2022081721/553618aa55034676718b4882/html5/thumbnails/32.jpg)
Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas