x
Soit
x
Courbe de f
In [6]:
%pylab inline
def f(x):
return x**3-3*x**2+5
x = np.linspace(-5,10,500)
y = f(x)
plot(x,y,color='red')
hlines(10,-6,10,color='green')
vlines([3,4],-10,15,color='blue')
ylim(-10,15)
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. For more information, type 'help(pylab)'.
. . .
x
Approximation de l solution α de f(x)=0 sur [-2;-1] par dichotomie
In [9]:
%%python3
def dicho(f,a,b,p): #Algorithme de dichotomie
k=0 #compteur d'étape
while b-a>=p: #Tant que b-a>= precision p
k+=1
m=(a+b)/2 #Calcul de m
print("Etape %s: a=%f , b=%f, m=%f"%(k,a,b,m))
if f(a)*f(m)>0: # Si f(a) et f(m) non nuls et de même signe a reçoit m
a=m
elif f(a)*f(m)<0: # Si f(b) et f(m) non nuls et de même signe b reçoit m
b=m
else: #sinon f(m) =0 donc a = b = m
a = b = m
ch="Un encadrement d'amplitude inférieure à {} de la solution obtenu en {} étapes est : \n [{};{}]"
print(ch.format(p,k,a,b)) #la méthode format permet d'insérer les valeurs de a,b,p dans la phrase réponse ch
print(" ") # pour sauter une ligne
return a,b
def f(x):
return x**3-3*x**2+5
print('Avec une amplitude de 0.1')
dicho(f,-2,-1,0.1)
print('Avec une amplitude de 0.001')
dicho(f,-2,-1,0.001)
Avec une amplitude de 0.1 Etape 1: a=-2.000000 , b=-1.000000, m=-1.500000 Etape 2: a=-1.500000 , b=-1.000000, m=-1.250000 Etape 3: a=-1.250000 , b=-1.000000, m=-1.125000 Etape 4: a=-1.125000 , b=-1.000000, m=-1.062500 Un encadrement d'amplitude inférieure à 0.1 de la solution obtenu en 4 étapes est : [-1.125;-1.0625] Avec une amplitude de 0.001 Etape 1: a=-2.000000 , b=-1.000000, m=-1.500000 Etape 2: a=-1.500000 , b=-1.000000, m=-1.250000 Etape 3: a=-1.250000 , b=-1.000000, m=-1.125000 Etape 4: a=-1.125000 , b=-1.000000, m=-1.062500 Etape 5: a=-1.125000 , b=-1.062500, m=-1.093750 Etape 6: a=-1.125000 , b=-1.093750, m=-1.109375 Etape 7: a=-1.109375 , b=-1.093750, m=-1.101562 Etape 8: a=-1.109375 , b=-1.101562, m=-1.105469 Etape 9: a=-1.105469 , b=-1.101562, m=-1.103516 Etape 10: a=-1.105469 , b=-1.103516, m=-1.104492 Un encadrement d'amplitude inférieure à 0.001 de la solution obtenu en 10 étapes est : [-1.1044921875;-1.103515625]
. . .
x
Approximation de la solution β de f(x)=10 sur [3;4] par dichotomie
In [10]:
%%python3
def dicho2(f,a,b,p): #Algorithme de dichotomie
k=0 #compteur d'étape
while b-a>=p: #Tant que b-a>= precision p
k+=1
m=(a+b)/2 #Calcul de m
print("Etape %s: a=%f , b=%f, m=%f"%(k,a,b,m))
if f(m)<10: # Si f(m)<10 a = m
a=m
elif f(m)>10: # Si f(m)>10 b reçoit m
b=m
else: #sinon f(m) =10 donc a = b = m
a = b = m
ch="Un encadrement d'amplitude inférieure à {} de la solution obtenu en {} étapes est : \n [{};{}]"
print(ch.format(p,k,a,b)) #la méthode format permet d'insérer les valeurs de a,b,p dans la phrase réponse ch
print(" ") # pour sauter une ligne
return a,b
def f(x):
return x**3-3*x**2+5
print('Avec une amplitude de 0.1')
dicho2(f,3,4,0.1)
print('Avec une amplitude de 0.001')
dicho2(f,3,4,0.001)
Avec une amplitude de 0.1 Etape 1: a=3.000000 , b=4.000000, m=3.500000 Etape 2: a=3.000000 , b=3.500000, m=3.250000 Etape 3: a=3.250000 , b=3.500000, m=3.375000 Etape 4: a=3.375000 , b=3.500000, m=3.437500 Un encadrement d'amplitude inférieure à 0.1 de la solution obtenu en 4 étapes est : [3.375;3.4375] Avec une amplitude de 0.001 Etape 1: a=3.000000 , b=4.000000, m=3.500000 Etape 2: a=3.000000 , b=3.500000, m=3.250000 Etape 3: a=3.250000 , b=3.500000, m=3.375000 Etape 4: a=3.375000 , b=3.500000, m=3.437500 Etape 5: a=3.375000 , b=3.437500, m=3.406250 Etape 6: a=3.406250 , b=3.437500, m=3.421875 Etape 7: a=3.421875 , b=3.437500, m=3.429688 Etape 8: a=3.421875 , b=3.429688, m=3.425781 Etape 9: a=3.425781 , b=3.429688, m=3.427734 Etape 10: a=3.425781 , b=3.427734, m=3.426758 Un encadrement d'amplitude inférieure à 0.001 de la solution obtenu en 10 étapes est : [3.42578125;3.4267578125]
. . .
x
Courbe de g où g(x)=12(x2−6x−10x) .
In [15]:
%pylab inline
from __future__ import division
def g(x):
return 1/2*(x**2-6*x-10/x)
x = np.linspace(-5,10,500)
y = g(x)
plot(x,y,color='red')
ylim(-50,50)
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. For more information, type 'help(pylab)'.
. . .