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 :

comment se deroule une fonction et pourquoi ca ne marche pas


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut comment se deroule une fonction et pourquoi ca ne marche pas
    Bonjour
    j'ai commencer un cour d'annalyse numerique mais je ne maitrise pas du tous mathlab

    j'ai le code si dessous dans lequel il m'était demandé de modifier 3 ligne
    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
        function [err,t,f,x,p]=intlag(n)
        %
        %Etant donne un entier n et une fonction continue f,
        %le programme interpole la fonction f par un polynome p
        %de degre n aux points d interpolation t(1),t(2),...,t(n),t(n+1).
        %parametres: entree : n
        % sortie : err : erreur max entre la fonction f et l interpolant p
        % t : (n+1) vecteur contenant les points d interpolation
        % f : (n+1) vecteur contenant les valeurs de la fonction f
        % aux points d interpolation
        % x : vecteur contenant 1001 points uniformement distribues
        % sur [-1,1]
        % p : vecteur contenant les valeurs du polynome p au point x(i)
        %
        %
        %initialisation des vecteurs t et f
        %
        for i=1:n+1
        t(i)=-1+(2.*(i-1))/n;
        f(i)=funct(t(i));
        end
        %
        %calcul de la valeur du polynome d interpolation au point x(i)
        %
        m=1000;
        err=0;
        for i=1:m+1
        x(i)=-1+(2.*(i-1))/m;
        p(i)=0;
        for j=1:n+1
        p(i) = p(i) + f(j) * phi(j,n,x(i),t);
        end
        err = max(err,abs(p(i)-funct(x(i))));
        end
        end
        %calcul de phi_j (la j_ieme fonction de la base de Lagrange)
        function basis = phi(j,n,xx,t)
        basis=1;
        for k=1:n+1
        if k ~= j
        basis = basis * (xx-t(k))/(t(j)-t(k));
        end
        end
        end
        %fonction a interpoler
        function f = funct(xx)
        f = sin(t);
        end
    les ligne modifier sont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     p(i) = p(i) + f(j) * phi(j,n,x(i),t);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        basis = basis * (xx-t(k))/(t(j)-t(k));
    je ne me pose pas de question sur les 2 premiere ligne puisque j'ai eu bon au QCM
    en revanche c'est au niveau du sin(t) que ca doit bloqué et comme je ne sais pas trop comment lire tous ca (premiere fonction que je vois) j'ai beaucoup de difficuté a savoir quesce qu'il faut faire

    en ce qui concerne l'intituler du probleme j'ai
    Le but de cet exercice est de compléter un programme permettant d'interpoler une fonction continue par un polynôme (sect. 1.4 du livre).

    Soit f:[−1,1]→R une fonction continue donnée et soit t0<t1<t2<…<tn, (n+1) points de [−1,1]. On cherche un polynôme pn de degré inférieur ou égal à n tel que pn(tj)=f(tj), 0≤j≤n.

    D'après le cours, on a :

    pn(t)=∑j=0nf(tj)φj(t)



    φj(t)=∏k=0k≠jnt−tktj−tk.
    On veut tester la programmation. Si f(t)=sin⁡(t), que vaut l'erreur lorsque vous tapez

    [err,t,f,x,p]=intlag(5);err
    j'ai donc remplacé
    f= ?????
    par
    f = sin(t)
    mais sa ne marche pas et je n'arrive pas a savoir pourquoi (enfin si je sais que c'est la variable "t" qui pose problème mais comme je ne sais pas dans quel sens lire le programme ca ne m'aide pas beaucoup

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841

  3. #3
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci
    c'est bien xx mais le souci c'est que je n'arrive pas a comprendre pourquoi et d'ou vien se xx . a quel moment est t'il déclaré par exemple....

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,
    C'est le paramètre d'entrée de la fonction donc il faut mettre sin(xx), l'appel pourra être funct(t) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     function f = funct(xx)
        f = sin(t);
        end

Discussions similaires

  1. Comment sortir d'une fonction sans nom ?
    Par kriekbellevue dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/11/2007, 16h00
  2. Comment sortir d'une fonction?
    Par Kobe70 dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 14h44
  3. Comment sortir d'une fonction ?
    Par serialkilled dans le forum Langage
    Réponses: 3
    Dernier message: 16/12/2006, 13h30
  4. comment tester si une fonction fait bien son travail
    Par access dans le forum Requêtes
    Réponses: 1
    Dernier message: 24/11/2003, 16h46
  5. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 15h42

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