IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Résolution d'une équation non-linéaire


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Résolution d'une équation non-linéaire
    Bonjour,

    je cherche à résoudre cette équation non-linéaire à une inconnue, j'ai déjà essayé avec tous les solvers de MATLAB mais je ne trouve toujours pas de solution.

    L'équation en question est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frac{\sum_{i=1}^{N}exp(\mu X_i)X_i}{\sum_{i=1}^{N}exp(\mu X_i)}=PI  \quad   (1)
    où mu est la variable à trouver.

    Les X_i sont les discounted payoff d'une option asiatique, désignés par geopath dans le code MATLAB suivant:
    geopath est un vecteur (1,N)
    PI est également donné dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    n=25;r=0.06;sig=0.2;S0=100;T=0.5;h=T/n;C=10^5;K=100;
     
     
    vect=randn(n,N);
    % formula I
     
    muo=(S0*exp(r*T)+C)^2;
    mu1=(S0^2)*exp(2*r*T)*(exp(T*sig^2)-1);
    mu2=muo+mu1;
     
    mu=log(muo/sqrt(mu2));
    sigapp=log(1+(mu1/muo));
    rho=sqrt(sigapp)/sqrt(T);
    alpha=((mu-log(S0+C))/T)+(rho^2)/2;
    mo=0;
    for k=1:n
        mo=mo+k*h;
    end
    m=(1/n)*(alpha-(rho^2)/2)*mo;
    vo=0;
    for t=1:n
        vo=vo+((n+1-t)^2)*h;
    end
    v=(rho/n)*sqrt(vo);
    d1=(log((S0+C)/(K+C))+m+v^2)/v;
    d2=(log((S0+C)/(K+C))+m)/v;
     
    PI=exp(-r*T)*(S0+C)*exp(m+(v^2)/2)*normcdf(d1)-exp(-r*T)*(K+C)*normcdf(d2)
     
     
    qrs=(alpha-rho^2/2)*h;
     
    geo=(S0+C)*exp(cumsum(qrs+rho*sqrt(h)*vect));
     
    geopath=exp(-r*T)*max((geomean(geo)-(K+C)),0) % les X_i sont ds ce vecteur ,
    ce un (1,N) vecteur
     
     
    % j'essaye d écrire l'objectif fonction (1) à résoudre ici,
    % la résolution sera donc à partir de ce fichier
     
    % mais je ne sais vraiment pas si la bonne manière
    % d'écrire cette l objective (1) dans MATLAB
     
    F1=0;
    F2=0;
    for k=1:N
        F1=F1+exp(x*geopath(1,k))*geopath(1,k);
        F2=F2+exp(x*geopath(1,k));
    end
     
    F=(F1/F2)-PI;  %(1)
    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    si tu connais des bornes où se trouve la solution tu peux utiliser "fzero"

  3. #3
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Si mu est réel, commence par dessiner la fonctions. Ça permettra de détecter une erreur (par exemple : veut-on l'annuler ou la minimiser ?)

    Si tu doutes de ta syntaxe d'appel aux fonction d'opti, commence avec une fonction toute simple du genre (x-1)^2 + (y-5)^4;

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Au lieu de rechercher des fonctions toutes faites, utilise simplement la méthode de la dichotomie.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

Discussions similaires

  1. simule une équation non linéaire
    Par moh-ichi dans le forum Simulink
    Réponses: 5
    Dernier message: 01/07/2014, 13h48
  2. Réponses: 0
    Dernier message: 06/01/2013, 10h52
  3. résolution d'une équation non linéaire
    Par adam.aafif dans le forum Simulink
    Réponses: 2
    Dernier message: 11/03/2010, 18h20
  4. Résoudre une équation non linéaire
    Par aurelie95 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/03/2010, 13h10
  5. solution approchée pour une équation non linéaire
    Par nadineUR dans le forum Mathématiques
    Réponses: 20
    Dernier message: 13/05/2008, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo