Sie sind auf Seite 1von 6

Sección B.- Diseña los siguientes programas en Python.

1.- Diseña un programa que a partir de tres coordenadas 2D diferentes encuentra una
parábola que pasa exactamente por cada una de las coordenadas. Utiliza interpolación de
Lagrange para resolver el problema. Muestra el resultado en forma gráfica.
1 from scipy.interpolate import lagrange
2 import matplotlib.pyplot as plt
3 from numpy import arange,sin,pi
4 x=[1,2,4]
5 y=[2,3,-1]
6 p=lagrange(x,y)
7
8 print(p)
9
10plt.ion()
11plt.plot(x,y,"o")
12plt.grid(True)
13plt.xlabel("x")
14plt.ylabel("y")
15plt.show()
16plt.ion()
17plt.plot(x,y)
18plt.grid(True)
19plt.xlabel("x")
20plt.ylabel("y")
21plt.show()
22
23x=np.linspace(0,5,100)
24plt.plot(x,p(x))
25plt.grid(True)
26plt.xlabel("x")
27plt.ylabel("y")
28plt.show()
2.- Sea f (x) = ex + x . Diseña un programa que solicita al usuario el valor de x, y calcula f ′ (x)
y f ′′ (x) mediante el método de diferencias finitas.
1 import math
2 x=float(input("dame el valor de x"))
3 h=float(input("dame el valor de h"))
4
5 def function(x):
6
7 return math.e**x+x
8 def derivate(x):
9 deri=(function(x+h)-function(x-h))/(2*h)
10 return deri
11def derivada(x):
12 deri=(-function(x+h*2)+8*function(x+h)-8*function(x-h)+function(x-h*2))/(12*h)
13 return deri
14def derivada2(x):
15 deri=(function(x-h)-2*function(x)+function(x+h))/(h**2)
16 return deri
17print(derivate(x))
18print(derivada(x))
19print(derivada2(x))

6
3.- Realiza un programa para calcular la integral definida ∫ lnxdx utilizando la regla de
2
Simpson (con n = 100).
1 from math import *
2 import math
3 #Definimos la funcion
4 # n: numero de x
5 #a y b los intervalos de la integral
6 #f: La funcion a integrar
7 def simpson13(n, a, b, f):
8 h = (b - a) / n
9 suma = 0.0
10 for i in range(1, n):
11 x=a+i*h
12 if(i % 2 == 0):
13 suma = suma + 2 * fx(x, f)
14 else:
15 suma = suma + 4 * fx(x, f)
16 suma = suma + fx(a, f) + fx(b, f)
17 rest = suma * (h / 3)
18 return (rest)
19
20def fx(x, f):
21 return eval(f)
22
23n = 100
24a = 2
25b = 6
26f = 'math.log1p(x)'
27
28print(simpson13(n, a, b, f))

4
4.- Diseña un programa que mediante el método de Montecarlo estime ∫ ex dx con 1000
2
puntos aleatorios. Muestra gráficamente todos tus puntos aleatorios sobre la gráfica.
1 from scipy import random
2 import numpy as np
3 import matplotlib.pyplot as plt
4
5 a=2
6 b=4
7 N=1000
8 integral = 0.0
9
10
11def function(x):
12 return np.exp(x)
13
14respuesta=(b-a)/float(N)*integral
15areas=[]
16for i in range(N):
17 xrand=np.zeros(N)
18 for i in range (len(xrand)):
19 xrand[i]=random.uniform(a,b)
20 integral = 0.0
21
22 for i in range(N):
23 integral+=function(xrand[i])
24 respuesta = (b-a)/float(N)*integral
25 areas.append(respuesta)
26x=np.linspace(2,4,1000)
27plt.plot(x,function(x),"o")
28plt.grid(True)
29plt.xlabel("x")
30plt.ylabel("y")
31plt.show()
32
33plt.title("distribucion del area")
34plt.hist(areas,bins=30,ec='black')
35plt.xlabel("areas")
36

1 import numpy as np
2 import math
3 def G(x):
4 return np.exp(x)
5 def montecarlo(G,a,b,M):
6 s=0
7 for i in range(M):
8 s += G(a+(b-a)*np.random.uniform(0,1,1))
9 return ((b-a)/M)*s[0]
10montecarlo(G,2,4,1000)

5.- Diseña un programa que utilice el método de Runge-Kutta de cuarto orden con h = 0.1
para obtener una aproximación de y (1.5) de la ecuación diferencial
dy
dx = 2x−3y + 1
y (1) = 5
1 import numpy as np
2 import matplotlib.pyplot as plt
3 def f(x,y):
4 return 2*x-3*y+1
5 def rungekutta(f,a,b,y0,h):
6 x = np.arange(a,b+h,h)
7 n = len(x)
8 y = np.zeros(n)
9 y[0] = y0
10 for i in range(0,n-1):
11 k1 = f(x[i],y[i])
12 k2 = f(x[i]+h/2,y[i]+h/2)
13 k3 = f(x[i]+h/2,y[i]+h/2)
14 k4 = f(x[i]+h,y[i]+h)
15 y[i+1] = y[i]+(h/6)*(k1+2*k2+2*k3+2*k4)
16 print(i,y[i])
17 plt.plot(x,y)
18 plt.grid(True)
19 plt.xlabel("x")
20 plt.ylabel("y")
21
22 plt.show()
23 rungekutta(f,1,1.5,5,0.1)
Puedes trabajar en equipos de máximo 5 personas. Se entrega sólo un trabajo por equipo.
Recuerda usar la menor cantidad de hojas posibles, ya que una vez que te lo regrese
calificado el profesor tendrás que escanearlo y agregarlo a tu carpeta de evidencias.
Obligatoriamente, debes usar en la primera hoja de tu trabajo el encabezado que aparece en
la siguiente página. La tabla de rúbrica de evaluación será llenada por el profesor al
momento de calificar. Empieza con tu trabajo inmediatamente después de la tabla.

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO


FACULTAD DE ESTUDIOS SUPERIORES ARAGÓN
INGENIERÍA EN COMPUTACIÓN

DR. ARTURO RODRÍGUEZ GARCÍA


MÉTODOS NUMÉRICOS

ALUMNOS:
1.- ______________________________________________________
2.- ______________________________________________________
SERIE 3 3.- ______________________________________________________
4.- ______________________________________________________
5.- ______________________________________________________

Rúbrica de evaluación
Criterio Excelente Sobresaliente Insuficiente Deficiente
4 3 2 1
Limpieza
Trabajo completo
Calidad de contenido

Das könnte Ihnen auch gefallen