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 :

Graphique MATLAB [Débutant]


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Graphique MATLAB
    Bonjour,
    J’essaye désespérément de programmer une fonction (en plus qui n’a pas l’air compliquée...) mais dont le graphique ne corresponds pas a ce que je devrais –en théorie- obtenir, et j’ai besoin d’aide pour me dire ou j’me plante.

    Pour vous mettre dans le bain, je suis en stage et je travaille sur la modélisation de l’œil.
    Et j’veux programmer une fonction de sensibilité au contraste qui s’écrit comme suit :


    Avec MTFopt = exp (-2*pi*u²*(σ0² + Cab*d))

    E= la luminance qui peut varier de 20 à 1000, mais pour la simulation je ne prends que des valeurs entre 20 et 100.
    P est un coeff introduit dans le modèle et depends de la source lumineuse, je l'ai pris à 1,2.
    et X0 je l'ai pris à 10, dans le modèle c'est la valeur par defaut.

    j'obtiens ceci :


    alors que je devrais obtenir cela :


    Vous allez me dire que c'est resemblant, mais dès qu'on change l'echelle, c'est horrible...

    j'vous mets mes lignes de codes : j'ai fait 3 fichiers, la variable est u (la fréquence) et le reste ne sont que des paramètres.

    --------------------------------------------------------------------------

    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
    function S= sensi(u)
    % essai de la fonction de sensibilité au contraste du modele de Barten.
     
    u=[1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 20.0 30.0 50.0 64.0];
    k=3;    gamma0=0.5;   C=0.08;  T=0.1;  Xmax=12;
    Nmax=15;  eta=0.03;  phi0=3*10^(-8);  u0=7;
    X0=10;   p=1.2;  L=100;  d=5-3*tanh(0.4.*log(L));
    E=pi.*(d.*d).*L./4;
     
    gamma1=sqrt((gamma0*gamma0) + (C*d)*(C*d));
     
    coeff1= 1./(X0*X0);
    coeff2= 1./(Xmax*Xmax);
    coeff3= 1./(Nmax*Nmax);
    coeff4= 1./(eta*p*E);
     
    b= (MTFopt(u)./k);
    g=2/T;
    a= (coeff1 + coeff2 + (u.*u.*coeff3));
    f= (coeff4 + H(u));
     
    i= sqrt(g.*a.*f);
     
    S= b./i;
     
     
    loglog(u,S);
    --------------------------------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function m = MTFopt(u)
     
     
    gamma0=0.5;   
    C=0.08; 
    u0=7;
    L=100;  
    d=5-3*tanh(0.4*log(L));
    gamma1=sqrt((gamma0*gamma0) + (C*d)*(C*d));
     
     
    m = exp(-(2*pi*pi.*u.*u*(gamma1*gamma1)));
    --------------------------------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function h = H(u)
     
     
    u0=7;
     
     
    t= 1 - (exp(-((u./u0).*(u./u0))));
     
    h= 3*10^(-8)./t;
    --------------------------------------------------------------------------

    Je ne vois pas ou est le problème et pourquoi je n'ai pas une courbe plus resemblante. En plus, le modèle marche car l'auteur en a fait des similations qui redonnent ce que je suis censé trouver.

    Merci.
    J'espère que je suis à peu prés clair

  2. #2
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    salut,

    ton code est correcte de mon point de vu,

    tu n'implemente pas exactement cette expression ?
    MTFopt = exp (-2*pi*u²*(σ0² + Cab*d))

    Sinon, t'as vu du coté des unité ? degré<=> radian

    ++ bonne chance
    AlloSchool, votre école sur internet.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    C'est bon ! il y avait bien un problème de dimensions... (tout n'est pas nickel chrome, mais le graph obtenu est plus proche de ce que je dois avoir).
    Merci pour l'aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interface graphique matlab
    Par sifouasma dans le forum MATLAB
    Réponses: 2
    Dernier message: 10/04/2014, 10h38
  2. Actualiser une interface graphique MATLAB
    Par imade1990 dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 06/12/2012, 16h18
  3. Interface graphique MATLAB et la fonction XLSREAD
    Par Amine_lamo dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 13/11/2010, 13h51
  4. Word, graphique, matlab
    Par tesca dans le forum MATLAB
    Réponses: 9
    Dernier message: 20/05/2010, 18h46
  5. Exporter des graphiques Matlab
    Par Ptinéwik dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/03/2009, 12h26

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