# Método de punto fijo
J.J
---
Dado que se busca resolver $f(x) = 0$, la función $f$ puede ser reescrita como $f(x) = g(x) - x = 0$. El método de punto fijo está dado por las iteraciones:

\begin{equation}
x_{k+1} = g(x_{k}).
\end{equation}

El método converge a una raíz si los valores de $x_{k}$ en cada iteración cumplen $|g'(x)| \leq 1$.

Ejemplo: $f(x) = 2x^{3} - 9x^{2} + 7x + 6 = 0$
\begin{equation}
x = \frac{1}{7} \{ -2x^{3} + 9x^{2} - 6 \}
\end{equation}


```python
import numpy as np
from sympy import *
from sympy.utilities.lambdify import lambdify
import matplotlib.pyplot as plt
init_printing(use_unicode=True)
```


```python
#calcular la derivada de f
x = symbols('x')
funcion = 2*x**3 - 9*x**2 + 7*x + 6
gfuncion = (-2*x**3 + 9*x**2 - 6)/7 #escribir la función aqui
dgfuncion = diff(gfuncion, x)
print(str(dgfuncion))
```

    -6*x**2/7 + 18*x/7



```python
f = lambdify(x, funcion)
g = lambdify(x, gfuncion)
dg = lambdify(x, dgfuncion)
```


```python
X = np.linspace(-1, 4, 100)
plt.plot(X,dg(X), label = 'g´(x)')
plt.ylim(-1,1)
plt.legend()
plt.show()
```

La desigualdad se cumple aproximadamente entre en los intervalos $[-0.44, 0.46]$ y $[2.5, 3.34]$, aun que en realidad, en el primer intervalo no converge.


```python
e = 0.0001 #error
maxit = 100 #iteraciones máximas
```


```python
def PuntoFijo(x0, func = g, error = e, iterations = maxit):
    it = 0
    while (abs(f(x0)) > e) and (it < maxit):
        it += 1
        xk = g(x0)
        x0 = xk
    return x0
```


```python
sol = PuntoFijo(2.6)
print(sol)
```

    2.9999926857948673



```python
plt.plot(X, f(X), label='f(x)')
plt.plot(sol,f(sol),'ro')
plt.legend()
plt.show()
```


```python

```

a2b8fb80b8dd915054442a98f81be0155fd6a9c8
ipynb
Jupyter Notebook
Ec. No lineales/Punto_Fijo.ipynb
JosueJuarez/M-todos-Num-ricos
8e328ef0f70519be57163b556db1fd27c3b04560
MIT
Ec. No lineales/Punto_Fijo.ipynb
JosueJuarez/M-todos-Num-ricos
8e328ef0f70519be57163b556db1fd27c3b04560
MIT
Ec. No lineales/Punto_Fijo.ipynb
JosueJuarez/M-todos-Num-ricos
8e328ef0f70519be57163b556db1fd27c3b04560
MIT
Qwen/Qwen-72B
1. YES
2. YES