π
<-

supprimer une ligne d'une matrice

Pour le TI-Basic sur Nspire

supprimer une ligne d'une matrice

Unread postby alexprime100 » 25 Oct 2015, 19:01

bonjour, je suis en train de créer un programme, et depuis tout à l'heure, je chercher une commande qui permet de supprimer une ligne d'une matrice, mais je n'en trouve pas, alors pouvez-vous me dire s'il existe une commande pour supprimer une ligne svp ?
User avatar
alexprime100
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 32%
 
Posts: 19
Joined: 15 May 2014, 18:33
Gender: Male
Calculator(s):
MyCalcs profile

Re: supprimer une ligne d'une matrice

Unread postby Epharius » 25 Oct 2015, 19:04

Y'a plusieurs solutions, mais aucune n'est simple à proprement parler. À mes souvenirs en tout cas, il n'existe pas de fonction pour supprimer une ligne ou une colonne.
Ma solution serait alors de tout décaler, avec une boucle For(A,LigneASupprimer,FinDeLaMatrice-1) en faisant [A](A+1,1)->[A](A,1) etc...
Il existe surement plein d'autres façon de le faire par contre ;)
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.1%
 
Posts: 1160
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: supprimer une ligne d'une matrice

Unread postby alexprime100 » 25 Oct 2015, 19:10

mais si j'applique cette boucle sur une matrice n*m, est ce que ça devient une matrice (n-1)*m ?
User avatar
alexprime100
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 32%
 
Posts: 19
Joined: 15 May 2014, 18:33
Gender: Male
Calculator(s):
MyCalcs profile

Re: supprimer une ligne d'une matrice

Unread postby Epharius » 25 Oct 2015, 19:11

Non, ça déplace juste les éléments si la ligne à supprimer n'est pas à la fin. Il faut ensuite enlever 1 à la dimension de la matrice, mais sur nspire je ne sais pas comment faire...
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.1%
 
Posts: 1160
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: supprimer une ligne d'une matrice

Unread postby Hayleia » 25 Oct 2015, 19:13

Sinon, une bonne vieille multiplication matricielle ;)
Code: Select all
1 0 0 0   a b c d   a b c d
0 0 1 0 * e f g h = i j k l
0 0 0 1   i j k l   m n o p
          m n o p

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: supprimer une ligne d'une matrice

Unread postby alexprime100 » 25 Oct 2015, 19:41

finalement j'ai réussi à trouver une solution, j'ai créé une nouvelle matrice plus petite dans laquelle j'ai copié les éléments à garder avec une boucle.
User avatar
alexprime100
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 32%
 
Posts: 19
Joined: 15 May 2014, 18:33
Gender: Male
Calculator(s):
MyCalcs profile

Re: supprimer une ligne d'une matrice

Unread postby Hamza.S » 25 Oct 2015, 19:46

pourrais-tu mettre ton code?
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 29%
 
Posts: 4501
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: supprimer une ligne d'une matrice

Unread postby Bisam » 26 Oct 2015, 15:35

On peut le faire aussi en utilisant les fonctions submat et augment
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

Re: supprimer une ligne d'une matrice

Unread postby alphaméthyste » 07 Nov 2015, 13:46

Hayleia wrote:Sinon, une bonne vieille multiplication matricielle ;)
Code: Select all
1 0 0 0   a b c d   a b c d
0 0 1 0 * e f g h = i j k l
0 0 0 1   i j k l   m n o p
          m n o p


très bonne idée ! Merci Hayleia

j'utilise ta méthode dans le code ci-dessous d'une fonction dénommée supp(i,j,x)

où x est une np-matrice à composantes réelles (pour des composante complexe il faut legerement modifier le code mais c'est facile il suffit de remplacer x^T par conj(x^T)

bon alors il s'agit de supprimer la i ème ligne et la j ième colonne d'une matrice à composante réelles

lorsque i=0 aucune ligne est supprimée et lorsque j=0 aucune colonne est supprimée

cette fonction utilise une autre fonction : le code de ces deux fonctions sont donnés ici
Code: Select all
Define supp(i,j,x)=
Func
Local ligne1,ligne2,var,var0,var1,var2,var3,u,id,v,y,z,nul,k
var3:=0
var2:=1
y:=x
v:=y
ligne1:=1
ligne2:=2
If i ≠ 0 Then
k:=i
Goto ligne1
EndIf
If j=0 Then
Goto ligne2
EndIf
k:=j
v:= y^T
var3:=1
Goto ligne1
Lbl ligne1
var:=dim(v)
var1:=var[1]
var0:=var1-1
nul:=newMat(var0,1)
id:=canon(var0)
var:=0
While var<var1
var:=var+1
If var = 1 and var=k Then
u:=nul
EndIf
If var ≠ 1 and var=k Then
u:=augment(u,nul)
EndIf
If var = 1 and var ≠ k Then
u:=(id^T[var2])^T
var2:=var2+1
EndIf
If var ≠ 1 and var ≠ k Then
u:=augment(u,(id^T[var2])^T)
var2:=var2+1 
EndIf
EndWhile
If var3=0 Then
y:=u.y
k:=j
v:=y^T
var2:=1
EndIf
If var3=1 Then
y:=y.u^T
EndIf
var3:=var3+1
If var3=2 Then
Goto ligne2
EndIf
If j=0 Then
Goto ligne2
EndIf
Goto ligne1
Lbl ligne2
z:=y
Return z
EndFunc


et ci-dessous la fonction canon(n)

Code: Select all
Define canon(n)=
Func
Local var,id
id:=newMat(n,n)
var:=1
While var ≤ n
id[var,var]:=1
var:=var+1
EndWhile
Return id
Endfunc
User avatar
alphaméthyste
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 18.8%
 
Posts: 51
Joined: 03 May 2015, 16:11
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: L1 maths

Re: supprimer une ligne d'une matrice

Unread postby Bisam » 07 Nov 2015, 16:01

@alphaméthyste : Ta fonction canon(n) ne sert à rien : elle existe déjà sur la calculette. C'est identity(n).

@alexprime100 :
finalement j'ai réussi à trouver une solution, j'ai créé une nouvelle matrice plus petite dans laquelle j'ai copié les éléments à garder avec une boucle.

C'est sans doute la méthode la plus performante.
Voici un code qui le fait :
Code: Select all
Define supp(i,j,x)=
Func
Local rep,ligne,n,p,k,l
n:=rowdim(x)
p:=coldim(x)
rep := {}
For k,1,n
  If k ≠ i Then
    ligne := {}
    For l,1,p
      If l ≠ j
        ligne := augment(ligne, {x[k,l]})
    EndFor
    If rep = {} Then
      rep := {ligne}
    Else
      rep := augment(rep, {ligne})
    EndIf
  EndIf
EndFor
Return rep
EndFunc
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

Next

Return to Nspire-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] 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.
934 utilisateurs:
>911 invités
>16 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
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)