π
<-

Matrices

Pour le TI-Basic sur Nspire

Matrices

Unread postby rafaelcrossover » 15 Aug 2019, 17:30

Bonjour,
Je crée un programme qui me permet de former une matrice globale à partir de plusieurs (2 ou 3) matrices plus petites. Le problème est que je l’obtiens de manière désordonnée et j’aimerais savoir comment je peux le commander sans changer le résultat.

Petites matrices:
k.png

Matrice que je trouve:
gl.png


Ce que je veux, c’est que dans la position 1.1 de la matrice que je reçois, c’est la somme des éléments présents dans les petites matrices ayant le même indice de 1.1. Par exemple, dans ce cas, dans la première matrice, l'élément 1.1 est égal à 0,667 et dans la deuxième matrice, à 1 car dans la grande matrice en position 1, il devrait être de 1,67, et il l'est, mais pas en position 1.1. De la grande matrice, que puis-je faire pour résoudre cela?
You do not have the required permissions to view the files attached to this post.
User avatar
rafaelcrossover
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 3.5%
 
Posts: 1
Joined: 05 Jun 2019, 19:03
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Matrices

Unread postby Bisam » 24 Aug 2019, 13:53

Tu ne donnes pas le contexte et il faut un peu deviner ce que tu veux faire.
J'ai l'impression que la première ligne et la première colonne de tes matrices sont juste des "noms" qu'il faut rechercher et faire un agrégat des résultats.
La structure matrice n'est certainement pas la meilleure pour faire cela... mais tu n'as pas vraiment d'autre moyen sur ta calculette (à moins d'utiliser Ndless et Micropython)
Bref, voici un algorithme qui doit convenir :
Code: Select all
Define combine(mat1,mat2)=Func
Local mat, noms, indices, i, j, c, i1, i2, n1, n2, n, again

n1 := rowdim(mat1)
n2 := rowdim(mat2)
n := n1-1

# on fait la liste des "noms" présents dans la première matrice
# et on note leur place dans la première ligne de la matrice "indices"
noms := mid(mat►list(mat1[1]),2)
indices := {seq(i, i, 2, n1), seq(0, i, 2, n1)}

# on ajoute les "noms" présents dans la deuxième matrice
# et on note leur place dans la deuxième ligne de la matrice "indices"
For i, 2, n2
  j := 1
  nom := mat1[1,i]
  again := true
  While again
    If j > n Then
      again := false
    ElseIf mat2[1,j] = nom
      indices[2,j] := i
      again := false
    EndIf
    j := j+1
  EndWhile
  If j > n Then
    noms[j] := nom
    indices := augment(indices, {{0}, {j}})
    n := n+1
  EndIf
EndFor

# On fabrique la nouvelle matrice avec les informations récoltées dans les deux matrices
mat := newmat(n+1,n+1)
For i, 1, n
  nom := noms[i]
  mat[1,i] := nom
  mat[i,1] := nom
  i1 := indices[1,i]
  i2 := indices[2,i]
  If i1 ≠ 0 Then
    For j, 2, n1
      c := mat1[j,i1]
      mat[j,i] := mat[j,i] + c
      If j ≠ i
        mat[i,j] := mat[i,j] + c
    EndFor
  EndIf
  If i2 ≠ 0 Then
    For j, 2, n2
      c := mat2[j,i2]
      mat[j,i] := mat[j,i] + c
      If j ≠ i
        mat[i,j] := mat[i,j] + c
    EndFor
  EndIf
EndFor
Return mat
EndFunc


Je n'ai pas vérifié que ça marche, mais c'est facile à comprendre et tu pourras corriger sans peine si j'ai raté un truc.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile


Return to Nspire-Basic

Who is online

Users browsing this forum: No registered users and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2684 utilisateurs:
>2645 invités
>30 membres
>9 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)