Bonjour, je n'arrive pas à coder cette matrice:
en gros, si on est sur une ligne paire on a
(0 ... 1 −8 14 −8 1... 0)
et si i est impaire, on a :
(0... -8 16 -8 … 0)
Merci d'avance!
Bonjour, je n'arrive pas à coder cette matrice:
en gros, si on est sur une ligne paire on a
(0 ... 1 −8 14 −8 1... 0)
et si i est impaire, on a :
(0... -8 16 -8 … 0)
Merci d'avance!
Bonjour
1) Montrez ce que vous avez fait
2) Ce que vous décrivez ne correspond pas tout à fait à l'exemple, car sur la première ligne par exemple, c'est une ligne impaire, et on n'a pas (0... -8 16 -8 … 0) ! Donc il y a des cas limites à gérer.
j'ai envie de l'ecrire comme somme de deux matrices:
l'une qui donne les lignes paires et l'autre pour les impaires, par exemple pour les lignes impaires
Mais le probleme ici c'est que ca me remplit par exemple toute la diagonale par des 16 alors que je veux que ca soit une oui, une non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 def A(n): return 16*np.diag(np.ones(n))-8* np.diag(np.ones(n-1),1)-8*np.diag(np.ones(n-1),-1)
Salut,
Décomposez le problème en sous problèmes.
Si la première ligne est 16, -8, 0, ... comment construire la 3ème ligne 0, -8, 16, -8, 0, ...?
Pareil pour la 2ème ligne (avec np.roll par exemple).
Une fois que vous savez construire vos lignes vous savez faire une liste de listes.
Sinon vous pouvez essayez de créer une matrice MxN de zéros, puis remplir la diagonale principale (i == j), les diagonales secondaires,... (vous avez numpy.diagflat pour faire çà).
Dans tous les cas, il faut partir d'une idée qui fonctionne déjà "sur le papier" avant de coder.
- W
Partager