Como la variable independiente es tiempo, el evento a buscar se supone sucede en tiempos positivos t>=0, por lo que el valor inicial a la izquierda del intervalo será a=0
Para el caso de b, a la derecha, se usa lo indicado en el enunciado para la pregunta del literal b, donde se indica t ∈ [0, π/2], por lo que b = π/2
[0, π/2]
verificando que exista cambio de signo entre f(a) y f(b)
Los parámetros aplicados en el algoritmo son los desarrollados en el planteamiento del problema e intervalo de búsqueda, con lo que se obtiene los siguientes resultados:
# 1Eva_IIT2009_T1 Movimiento de partícula en planoimport numpy as np
import matplotlib.pyplot as plt
#INGRESO
xt = lambda t: 3*(np.sin(t)**3)-1
yt = lambda t: 4*np.sin(t)*np.cos(t)
fx = lambda t: 3*(np.sin(t)**3)-1 - 4*np.sin(t)*np.cos(t)
a = 0
b = np.pi/2
tolera = 0.001
# intervalo para gráfica
La = a
Lb = b
muestras = 21
# PROCEDIMIENTO# Posicion Falsa
tramo = abs(b-a)
fa = fx(a)
fb = fx(b)
whilenot(tramo<=tolera):
c = b - fb*(a-b)/(fa-fb)
fc = fx(c)
cambio = np.sign(fa)*np.sign(fc)
if cambio>0:
# actualiza en izquierda
tramo = abs(c-a)
a = c
b = b
fa = fc
else:
# actualiza en derecha
tramo = abs(b-c)
a = a
b = c
fb = fc
# para grafica
ti = np.linspace(La,Lb,muestras)
xi = xt(ti)
yi = yt(ti)
fi = fx(ti)
# SALIDAprint(' raiz:', c)
print('error:', tramo)
# GRAFICA
plt.plot(ti,xi, label='x(t)')
plt.plot(ti,yi, label='y(t)')
plt.plot(ti,fi, label='f(t)')
plt.plot(c,fx(c),'ro')
plt.axhline(0, color='green')
plt.axvline(c, color='magenta')
plt.legend()
plt.xlabel('t')
plt.title('Método de Falsa Posición')
plt.show()