Skip to content
Snippets Groups Projects
Commit 20bc2030 authored by Melissa LARBI's avatar Melissa LARBI
Browse files

compte rendu

parent 8e208b78
No related branches found
No related tags found
No related merge requests found
#partie 01: résolution graphique
# question 01:
# 1_ est ce que le minimum local satisfait la contrainte:
# 0.2255*0.2255 + 0.9312*0.9312 = 0.91 > 0.5
# donc le minimum local ne satisfait pas la contrainte
# à l'optimum la contrainte sera-t-elle active?
# active c'est que la miminum local verifie que g(x)=0 graphiquement on le retrouve sur le cercle de la contrainte
# donc on peut tansformer la contrainte d'inégalité en une égalité
# question 02: sur le fichier graphe.py
# question 03: sur le fichier graphe.py
# partie 02: le calcul du minimum
# question 4: le langrangien du problème:
def f (a,b):
return a**3 + 2*a**2 - 2*a*b + b**2 + a*b**3 - 2*b + 5
def contrainte(a,b):
return a**2+b**2-(1/2)**2
def langrangien(u):
# les variabes de lagrangien sont a, b et lambda
a,b, lmbda= u[0],u[1],u[2]
return f(a,b)-lmbda*contrainte(a,b)
# question 05+06+07
# minimiser f sous la contraint revient à chercher les points stationnaires du lagrangien
import autograd as ag
import numpy as np
nable_lagrangie = ag.grad(langrangien)
Hessienne_lagrangien = ag.hessian(langrangien)
# point de départ:
a,b, lmbda = 0.23,0.8,0
u= np.array([a,b,lmbda], dtype= np.float64)
# résoudre le problème en utilisant l'algorithme de neuton
def newton(u, nb_iteration):
res = []
for i in range(nb_iteration):
res.append(u)
H= Hessienne_lagrangien(u)
w= nable_lagrangie(u)
h = np.linalg.solve(-H, w)
u = u+ h
return res
print(newton(u,6)[-1])
# partie 03 : estimation de paramètre pour la fonction logistic
# la correction de cette partie est sur tel
def fonction(x,u):
keppa= u[0]
alpha = u[1]
rho = u[2]
return keppa/(1+np.exp(alpha-rho*x))
nable = ag.grad(fonction)
Hessienne = ag.hessian(fonction)
u = np.array([5.163,1.188], dtype= np.float64)
def newton2(u, nb_iteration):
res = []
for i in range(nb_iteration):
res.append(u)
H= Hessienne_lagrangien(u)
w= nable_lagrangie(u)
h = np.linalg.solve(-H, w)
u = u+ h
return res
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment