# -*- coding: utf-8 -*-
"""
Created on Tue Dec 13 02:12:50 2022

@author: EYER
"""

# import numpy as np
# import matplotlib.pyplot as plt

# def f(x):
#     return ................

# Lx = np.linspace(...................)
# Lf = f(Lx) ## fonctionne car tableaux numpy !

# plt.plot(Lx,Lf)





import numpy as np
import matplotlib.pyplot as plt


## Tracé de la courbe
def f(x):
    return np.sin(np.sin(x))-np.sin(np.sin(2*x))

Lx = np.linspace(0,np.pi,100)
Lf = f(Lx)

plt.plot(Lx,Lf)

## Résolution par méthode de dichotomie
def dicho(a,b,f,eps):    
    while abs(b-a)>eps:
        m = (a+b)/2
        if f(m)*f(a)<0:
            b = m
        else:
            a = m
    return m

print(dicho(1.,2.,f,0.0001))


## Résolution par méthode de Newton
def fprim(x):
    return np.cos(np.sin(x)) - 2*np.cos(2*x)*np.sin(np.sin(2*x))


def newton(x0,f,eps):
    x = x0 - f(x0)/fprim(x0)    
    while abs(f(x))>eps:
        x = x - f(x)/fprim(x)    
    return x

print(newton(0.7,f,0.0001))
    
    
    
    
    
    
    
    
    
    
    



