Méthode de Thomas python.

Fermé
Utilisateur anonyme - Modifié le 9 déc. 2022 à 17:43
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 9 déc. 2022 à 17:52

Bonjour,

J'ai écrit un programme sur la méthode de Thomas qui fonctionne, voir ci-dessous :

import numpy as np

def tridiag(a, b, c, y):
    n = len(y)
    D = [0] * n
    B = [0] * n
    D[0] = c[0] / b[0]
    B[0] = y[0] / b[0]
    for i in range(1, n):  # On met jusqu'à n car en python le dernier élément n'est pas pris et si n=3 i=0, 1, 2
        denom = b[i] - a[i] * D[i - 1]
        D[i] = c[i] / denom
        B[i] = (y[i] - a[i] * B[i - 1]) / denom

    x = np.zeros(n, dtype=float)
    x[-1] = B[-1]    
    for i in range(n - 2, -1, -1):
        x[i] = B[i] - D[i] * x[i + 1]
    return x

On me demande à présent de résoudre ceci, mais je ne sais pas du tout comment identifier a, b, c, y dans ce cas-là.

Cordialement,

Lisa.

5 réponses

yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 471
8 déc. 2022 à 23:57

bonjour,

ta boucle for contredit le commentaire sur la même ligne.

comment testes-tu ton code?  es-tu certain qu'il  donne le bon résultat?

comprends-tu à quoi sert ce programme?

0
Utilisateur anonyme
9 déc. 2022 à 11:49

Ah, pourtant c'est mon professeur qui a fait le programme (parce que j'étais en retard sur les autres).

Mon prof m'a dit que je trouvais le bon résultat avec ça, oui.

Pas très bien car c'est un chapitre sur lequel j'ai des difficultés.

0
yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 471
9 déc. 2022 à 13:15

Je pense que tu ne peux pas faire l'exercice si tu ne comprends pas à quoi sert le programme.

0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 9 déc. 2022 à 17:53

Bonjour fleurdepoirier,

Il ne faut pas mal prendre la réponse de yg_be, mais simplement comprendre qu'on manque d'information pour pouvoir te répondre efficacement.

Peux-tu commencer par expliquer le contexte :

  • Qu'est ce que la méthode de Thomas ? (je ne trouve pas d'article wikipedia qui en parle)
  • À quoi correspond dans ta fonction les paramètres a, b, c, y ? À quoi correspond la valeur retournée x ?
  • Peux-tu donner un exemple d'utilisation qui nous permettrait de comprendre quel est le rapport avec le lien que tu donnes ?

Cela augmentera les chances que quelqu'un comprendre le problème, ce qu'il faut faire, et ce qui te bloque.

Bonne chance

0
Utilisateur anonyme
9 déc. 2022 à 14:00

Donc j'ai juste à abandonner et avoir zéro ?

-1
yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 471
9 déc. 2022 à 14:09

Ou bien étudier le cours, faire d'autres exercices, 

Essayer de comprendre le lien entre l'exercice et le programme,

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
9 déc. 2022 à 15:59

Ok, super ce forum

Merci pour l'aide

-1