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

 C Discussion :

Incertitude programmation Lagrange.


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Incertitude programmation Lagrange.
    Bonjour,

    J'ai un exercice à faire et j'aimerais savoir si il est juste. Voici l'énoncé :

    http://www.noelshack.com/2022-15-2-1...-modele-un.png

    Je dois également calculer l'erreur (en pour cent) commise par le polynôme d'interpolation pour les fonctions
    f(x) et g(x) en Alpha_1 et Alpha_2 mais je ne sais pas comment faire.

    Ce que j'ai fait :

    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
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
     
    typedef points[Nmax];
    void lire(points data, points x, points y1, points y2, int *n);
    float lagrange(float al, points x, points y, int n);
     
    void lire(points data, points x, points y1, points y2, int *pn){
     
    int lig;
    FILE *pfic; 
    pfic=fopen("exo1.txt", "r");
    lig=0;
    while(!feof(pfic))                         //on continue a lire tant qu'on n'est pas a la fin du ficher, ce qui fait que le nbr d'elements augmente
    {
    fscanf(pfic, "%f %f %f %f", &data[lig], &x[lig]), &y1[lig], &y2[lig]);
    lig ++;
    }
    *pn=lig; //on renvoit le nombre d'elements dans le pointeur n
    }
     
    float lagrange(float al, points x, points y, int n){
     
    float S, L;
    int k, i;
    S=0;
    for (k=0;k<=n;k++){                       // calcul de la somme avec k varie, Lk pour un k donne
    	L=1;
    	if(i!=k)
    		for (i=1; i<=n; i++){                    // ici seul le i varie et commence evidement en un
    			L=L*(((al)-x[i])/(x[k]-x[i])); 
    		}
    		S=S+L*y[k];
    }
    return S;
    }
     
    int main(void){
     
    points[Nmax];
    int Nmax = 10;
    float poly;
    points data, x, y, y1, y2;
    int n;
     
    lire(data, x, y1, y2, n);
    printf("%d", n);
    poly=lag(data[1], x, y, n); //on prend le alpha 1 dans la premiere colonne puisque rien ne doit etre saisi au clavier dans le programme
     
    return 0;
    }
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 12/04/2022 à 19h39. Motif: Ajout des balises [CODE] mon code [/CODE] (bouton #)

Discussions similaires

  1. Algorithme et programme de Lagrange (MATLAB)
    Par TGV6975 dans le forum MATLAB
    Réponses: 6
    Dernier message: 24/05/2009, 21h18
  2. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  3. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  4. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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