Page 1 of 6

extraire solution systeme

Unread postPosted: 04 Jan 2016, 18:47
by kadtexas
Bonjour

Comment extraire la solution x,y,et z de ce systeme 3 équations pour les utiliserr ailleurs (sans x=... y=... z=...)
Code: Select all
Define prgm()=
Prgm
solve(system(x+y-z-1=0,x-y+z+1=0,2*x-y+4*z-2=0),{x,y,z})
EndPrgm

Merci pour vos commentaires

Re: extraire solution systeme

Unread postPosted: 04 Jan 2016, 18:50
by dups
Bonjour ,
Essaye :
Code: Select all
Disp "x=",x
Disp "y=",y
Disp "z=",y


avant le "endprgm"

Je ne te promet rien mais il me semble que ca marche.

Re: extraire solution systeme

Unread postPosted: 04 Jan 2016, 18:56
by Hamza.S
dups ça ne marche pas
avec solve c'est difficile de récupérer (pas impossible) avec des chaînes de caractère ou si Bisam a une solution plus rapide

Re: extraire solution systeme

Unread postPosted: 04 Jan 2016, 18:59
by dups
Ah ok my bad.
J'avais bien mis : "je ne promet rien" :D

Re: extraire solution systeme

Unread postPosted: 04 Jan 2016, 19:20
by kadtexas
avec des chaînes de caractère


Mais comment ?

Re: extraire solution systeme

Unread postPosted: 04 Jan 2016, 19:29
by critor
Petite fonction pour faire ce genre de chose :
Code: Select all
Define eqright(ex)=
Func
:    Local op,narg,lr,i
:    op:=part(ex,0)
:    narg:=part(ex)
:    lr:={}
:    If op="=" Then
:        lr:={part(ex,2)}
:    ElseIf narg>0 Then
:        For i,1,narg
:            lr:=augment(lr,eqright(part(ex,i)))
:        EndFor
:    EndIf
:    Return lr
:EndFunc


Exemple :
Image

Re: extraire solution systeme

Unread postPosted: 04 Jan 2016, 20:23
by Adriweb
Tu peux utiliser zeros à la place de solve si tu veux résoudre pour =0.

Cette fonction renvoit une liste ou une matrice (en fonction de la dimension), et tu n'as donc plus qu'a prendre les éléments.

Avec ton exemple : zeros(system(x+y-z-1, x-y+z+1, 2*x-y+4*z-2), {x,y,z}) renvoie [0,2,1]
Donc, là, tu peux stocker ca dans une variable, et puis récupérer les composantes que tu veux.

Re: extraire solution systeme

Unread postPosted: 05 Jan 2016, 22:39
by Bisam
Euh, les gars, RTFM !!
Il y a une fonction qui est faite exprès pour cela !
C'est la fonction exp►list(resultat du solve, variables) qui renvoie une liste (ou une matrice) des différentes solutions.
S'il y a n variables, chaque ligne de la matrice donne un n-uplet de solutions, dans l'ordre des "variables".

Par exemple :
Code: Select all
solve(system(x+y-z-1=0,x-y+z+1=0,2*x-y+4*z-2=0),{x,y,z}) → solution
exp►list(solution,{x,y,z}) → mat
Disp "x=", mat[1,1]
Disp "y=", mat[1,2]
Disp "z=", mat[1,3]

Re: extraire solution systeme

Unread postPosted: 06 Jan 2016, 01:13
by Adriweb
Oui, mais dans le cas d'un solve = 0, utiliser zeros reste plus simple.
Bref, toutes les différentes façon sont bonnes à connaître de toute manière.

Re: extraire solution systeme

Unread postPosted: 06 Jan 2016, 12:38
by kadtexas
Bonjour

Vos trois solutions:
eqright(ex), exp►list(solution,{x,y,z}) → mat, zeros marchent très bien
Un grand merci