Help: Optimiser un minorant d'une fonction convexe

Aide à la résolution d'exercices ou de problèmes dont le niveau n'entre pas dans les catégories précédentes (pour le primaire par exemple).

Modérateur: gdm_aidesco

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser le mode LaTeX (voir ici) afin de rendre vos formules plus lisibles.
> Ne poster qu'un exercice (ou problème) par sujet et indiquer son niveau précis dans le titre du message.

Help: Optimiser un minorant d'une fonction convexe

Messagepar Acrosomia » Lundi 03 Juillet 2006, 14:03

Bonjour.

Je suis nouveau ici. Pour être plus précis, je bosse en stage dans une banque et j'ai un petit souci de maths (le contexte est financier mais le pbm est des maths pures).

Le contexte financier:
Il existe un produit financier appelé option d'achat (call en anglais) dont le gain à la maturité $T$ est $max(S_T-K,0)=(S_T-K)^+$$S_T$ est le prix de l'actif risqué (une action par ex.) et $K$ le prix d'exercice (strike en anglais). Ainsi, à la maturité, le détenteur d'un call paie l'action $K$ euros si l'action vaut $S_T>K$ sinon, il n'exerce pas son option d'achat et achète l'action $S_T$ euros. Il est donc clair que son gain en $T$ est $(S_T-K)^+$.

Le problème d'analyse:
Mon objectif est de minorer le gain suivant:

$$f(S_T)=\frac{2}{T}(\frac{S_T-S^*}{S^*}-ln(\frac{S_T}{S^*}))$$


qui est appelé gain logarithmique. Cette fonction s'annule en $S^*$.

Le but est de trouver un minorant qui soit une combinaison linéaire de calls (options d'achat) dans la partie $S_T>S^*$. Dans le jargon, on cherche un portefeuille qui (sous-)réplique le gain $f$.
Mon idée est d'avoir un minorant qui s'approche le plus possible de $f$. Comme $f$ est convexe, j'ai choisi d'introduire les tangentes qui sont toutes en-dessous de la fonction.

Prenons un ex.:
1/ On prend le 1er call de strike $K_1>S^*$ et on cherche la tangente à $f$ qui passe par le point $(K_1;0)$. Ce n'est pas très dur (étude de fonctions + méthode de Newton). On appelle le point de tangence $(x_1;f(x_1))$.
2/ Ensuite on suppose dans cet ex. que le 2nd call a un strike $K_2\in[K_1;x_1]$. Une conbinaison linéaire qui minore est telle que l'on cherche à minimiser la différence

$$f(x_1)-[a_1(x_1-K_1)^+ + a_2(x_1-K_2)^+]$$


$a_1$ et $a_2$ sont les poids des calls $K_1$ et $K_2$ (les pentes en fait).

Bref mon idée est que en chaque abscisse $x_i$ de la tangente passant par un strike donné $K_i$, on cherche à minimiser la différence entre l'ordonnée $f(x_i)$ de la tangente et la contribution des gains des calls de strike inférieur à cette abscisse (on peut étendre aux strikes supérieurs par la définition même du $max$ qui renvoit un poids nul):

Quantité à minimiser si on a une collection de $n$ strikes (calls):

$$f(x_i)-\sum_{j=1}^{n} a_j(x_i-K_j)^+,   \forall i\geq n$$



Je cherche donc qqn qui saurait m'aider sur la minimisation à faire pour trouver l'ensemble des $(a_j)$. Je sais que l'on peut peut-être écrire tt cela sous forme matricielle avec un $inf$ et une norme... à voir...
Acrosomia
Utilisateur
 
Messages: 5
Inscription: Lundi 03 Juillet 2006, 13:45

Publicité

Messagepar nirosis » Lundi 03 Juillet 2006, 22:15

Salut.
Tu sais utiliser Matlab ?
A ta place, je tenterais une résolution numérique avec la fonction fmincon...
Je n'ai pas regardé en détail ton problème, mais si ça se résume à trouver un minimum sur plusieurs variables $a_i$, alors une résolution numérique semble adaptée dans un premier temps...
nirosis
Administrateur
 
Messages: 1806
Inscription: Samedi 28 Mai 2005, 13:48
Localisation: Orsay, France
Statut actuel: Actif et salarié | Maître de conférence

Messagepar Acrosomia » Mardi 04 Juillet 2006, 09:20

je ne savais pas que MatLab proposait ce genre de fonctions? C'est pareil pour Scilab ou pas?
D'ailleurs peut-etre qu'il est possible de voir le code et l'algo derrière la fonction fmincon, non :?:

d'autres infos?

merci pour ton aide
Acrosomia
Utilisateur
 
Messages: 5
Inscription: Lundi 03 Juillet 2006, 13:45

Messagepar jblecanard » Mardi 04 Juillet 2006, 10:01

Je ne saurais répondre à ton problème de manière précise, mais je confirme que MatLab est fait pour ce genre de truc. D'ailleurs, si je ne m'abuse, dans un contexte financier, c'est le résultat numérique qui t'intéresse plus que le résultat analytique non ?
Dans le doute, abstiens toi...
Linux User N° 410605
jblecanard
Déca-utilisateur
 
Messages: 43
Inscription: Lundi 03 Juillet 2006, 14:46

Messagepar Acrosomia » Mardi 04 Juillet 2006, 10:07

tout à fait.
C'est clair qu'il y a là-dessous de l'optimisation sous contraintes de fonction convexe et autre ditance quadratique et matrice... :roll:
Après savoir comment marche l'algo permet aussi de l'implémenter et de l'adapter à certaines situations, car rien n'est figé...

merci
Acrosomia
Utilisateur
 
Messages: 5
Inscription: Lundi 03 Juillet 2006, 13:45

Messagepar nirosis » Mardi 04 Juillet 2006, 17:33

Bien sûr , tu peux voir l'algo derrière la fonction fmincon, mais je ne sais pas sa complexité... il se peut qu'elle fasse appel à d'autres fonctions de matlab... ?

Tu peux chercher sur internet des exemples d'utilisation.
C'est une fonction qui optimise plusieurs paramètres sous diverses contraintes tq égalités ou inégalités... C'est vraiment une fonction populaire de Matlab.

edit : Tu peux p-e adapter le code pour scilab mais à mon avis c'est hard... j'ai jeté un coup d'oeil au code, ça à l'air chaud à transcrire !!
nirosis
Administrateur
 
Messages: 1806
Inscription: Samedi 28 Mai 2005, 13:48
Localisation: Orsay, France
Statut actuel: Actif et salarié | Maître de conférence

Messagepar Acrosomia » Mardi 04 Juillet 2006, 17:39

et l'algo, peux tu le poster? merci
Acrosomia
Utilisateur
 
Messages: 5
Inscription: Lundi 03 Juillet 2006, 13:45

Messagepar nirosis » Mercredi 05 Juillet 2006, 07:54

Le fichier fait 21 Ko et fait appel à diverses autres fonctions matlab.
Fichiers joints
fmincon.zip
Fmincon
(5.84 Kio) Téléchargé 177 fois
nirosis
Administrateur
 
Messages: 1806
Inscription: Samedi 28 Mai 2005, 13:48
Localisation: Orsay, France
Statut actuel: Actif et salarié | Maître de conférence

Messagepar Acrosomia » Mercredi 05 Juillet 2006, 08:48

OK merci. ça a l'air bien complexe. l'adaptation me semble un peu difficile, surtout avec le temps dont je dispose. en tous les cas, si qqn est spécialiste d'optimisation linéaire...
Acrosomia
Utilisateur
 
Messages: 5
Inscription: Lundi 03 Juillet 2006, 13:45

Messagepar jobherzt » Vendredi 26 Janvier 2007, 09:26

n'oublie pas que :

- scilab propose sans doute une fonction equivalente, c'est quand meme son boulot !!
- il existe un clone libre de matlab apellé octave, auquel on peut associer une bibliotheque de fonctions plus large que celle proposé par defaut, qui s'appelle octave forge, et qui contient de nombreuses fonctions d'optimisations. accessoirement, octave est majoritairement compatible avec matlab au niveau du langage.
jobherzt
Méga-utilisateur
 
Messages: 433
Inscription: Vendredi 13 Janvier 2006, 13:13


Retourner vers Exercices et problèmes : Autres niveaux

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités