Enlever valeur absolue d'une expression
11 posts
• Page 1 of 2 • 1, 2
Enlever valeur absolue d'une expression
Bonjour à tous,
Je sollicite votre aide sur le programme que j'écris.
Pour faire court, je cherche une solution pour :
1) Soit effacer les termes absolus d'une expression.
Exemple : 2+abs(x) qui donnerait 2+x
2) Soit, cela se rapporte un peu au premier cas, pouvoir préciser que les valeurs non numériques contenues dans les variables sont systématiquement positives et non nulles.
Je séche sur la méthode, j'espère qu'il y en a une !!
Merci !
Je sollicite votre aide sur le programme que j'écris.
Pour faire court, je cherche une solution pour :
1) Soit effacer les termes absolus d'une expression.
Exemple : 2+abs(x) qui donnerait 2+x
2) Soit, cela se rapporte un peu au premier cas, pouvoir préciser que les valeurs non numériques contenues dans les variables sont systématiquement positives et non nulles.
Je séche sur la méthode, j'espère qu'il y en a une !!
Merci !
-
azerty89
Niveau 2: MI2 (Membre Initié)- Posts: 5
- Joined: 09 Feb 2012, 22:01
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Enlever valeur absolue d'une expression
les valeurs non numériques contenues dans les variables sont systématiquement positives et non nulles.
Là, il y a un truc que mon cerveau avale pas...
Une valeur non numérique positive ? C'est à dire ?
-
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2337
- Images: 113
- Joined: 04 Feb 2010, 00:00
- Location: Evry (France)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: PhD candidate, Bioinformatics
Re: Enlever valeur absolue d'une expression
Oui c'est pas très bien formulé
par exemple :
2*l+5 → calcul
Préciser que l ne peut avoir pour valeur que des valeurs positives, l apparient à R+*
Cela pour éviter que des calculs (de norme, car il s'agit en pratique de composantes de vecteurs) entrainent des abs() dans le résultat...

par exemple :
2*l+5 → calcul
Préciser que l ne peut avoir pour valeur que des valeurs positives, l apparient à R+*
Cela pour éviter que des calculs (de norme, car il s'agit en pratique de composantes de vecteurs) entrainent des abs() dans le résultat...
-
azerty89
Niveau 2: MI2 (Membre Initié)- Posts: 5
- Joined: 09 Feb 2012, 22:01
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Enlever valeur absolue d'une expression
Euh, pourquoi ne pas tout simplement le préciser au moment ou la valeur l est choisie ?
ça dépend de ce que tu veux faire exactement.
Ou sinon, mets une condition pour que le calcul ne soit fait que si l est positif-non-nul et sinon ignoré.
ça dépend de ce que tu veux faire exactement.
Ou sinon, mets une condition pour que le calcul ne soit fait que si l est positif-non-nul et sinon ignoré.
-
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2337
- Images: 113
- Joined: 04 Feb 2010, 00:00
- Location: Evry (France)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: PhD candidate, Bioinformatics
Re: Enlever valeur absolue d'une expression
Le problème c'est que l n'est jamais choisi. Le programme permet de calculer une expression, il ne fait pas de calcul avec des valeurs fixées....
-
azerty89
Niveau 2: MI2 (Membre Initié)- Posts: 5
- Joined: 09 Feb 2012, 22:01
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Enlever valeur absolue d'une expression
mais alors, imaginons que l aie une mauvaise valeur, tu veux qu'il se passe quoi ?
-le calcul soit fait avec la valeur positive ? (j'imagine que ce n'est pas ça)
-le calcul soit ignoré ?
-le calcul soit fait, mais on rajoute un deuxième calcul derrière pour corriger ?
-le calcul soit fait avec la valeur positive ? (j'imagine que ce n'est pas ça)
-le calcul soit ignoré ?
-le calcul soit fait, mais on rajoute un deuxième calcul derrière pour corriger ?
-
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2337
- Images: 113
- Joined: 04 Feb 2010, 00:00
- Location: Evry (France)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: PhD candidate, Bioinformatics
Re: Enlever valeur absolue d'une expression
Ben en fait il ne peux pas vraiment y avoir de mauvaise valeur ^^
Le programme en question permet de calculer l'expression du torseur cohésion (pour des calculs de résistance de matériaux) le long de n'importe quelle poutre en 2D. L'utilisateur rentre les coordonnées de la poutre, les efforts excercés, et le programme sort tout les termes du torseur de cohésion.
Les coordonnées de la poutre sont stockés sous forme de matrice, et pour les calculs à effectuer, il me faut des distances entre des points. Je fais appel à norme(), et vu que les coordonnées ne sont pas forcément des valeurs numériques fixées, norme() renvoie des abs().... Mathématiquement correct, mais inutile ici, vu qu'il s'agit de longueurs, qui ne peuvent pas être négative, ni être nulle, ca n'aurait pas de sens...
Au final, "l'algorithme" fonctionne, l'expression calculée correspond principalement à des sommes et des produits de termes.... mais les résultats ne sont pas simplifiés du tout...
Par exemple, je viens de faire un essai sur un cas très simple, le résultat obtenu est :
f*( x+|l|- l ), ce serait parfait si cette valeur absolue pouvait partir, la calcu pourrait faire la simplification pour n'obtenir que f*x.
Du coup face au desespoir (!!), je réfléchis à faire une fonction qui, en convertissant en string, chercherait les abs() de l'expression, recopierait l'expression en contournant cette fonction, pour en suite reconvertir en expression... Mais je trouve ca lourd....
Merci de t'interesser à mon problème !
Le programme en question permet de calculer l'expression du torseur cohésion (pour des calculs de résistance de matériaux) le long de n'importe quelle poutre en 2D. L'utilisateur rentre les coordonnées de la poutre, les efforts excercés, et le programme sort tout les termes du torseur de cohésion.
Les coordonnées de la poutre sont stockés sous forme de matrice, et pour les calculs à effectuer, il me faut des distances entre des points. Je fais appel à norme(), et vu que les coordonnées ne sont pas forcément des valeurs numériques fixées, norme() renvoie des abs().... Mathématiquement correct, mais inutile ici, vu qu'il s'agit de longueurs, qui ne peuvent pas être négative, ni être nulle, ca n'aurait pas de sens...
Au final, "l'algorithme" fonctionne, l'expression calculée correspond principalement à des sommes et des produits de termes.... mais les résultats ne sont pas simplifiés du tout...
Par exemple, je viens de faire un essai sur un cas très simple, le résultat obtenu est :
f*( x+|l|- l ), ce serait parfait si cette valeur absolue pouvait partir, la calcu pourrait faire la simplification pour n'obtenir que f*x.
Du coup face au desespoir (!!), je réfléchis à faire une fonction qui, en convertissant en string, chercherait les abs() de l'expression, recopierait l'expression en contournant cette fonction, pour en suite reconvertir en expression... Mais je trouve ca lourd....
Merci de t'interesser à mon problème !
-
azerty89
Niveau 2: MI2 (Membre Initié)- Posts: 5
- Joined: 09 Feb 2012, 22:01
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Enlever valeur absolue d'une expression
AAAAHHhhHhhhhh.....
ça y est j'ai compris. Comme quoi en expliquant tout d'un coup, ça marche mieux.
C'est donc la TI qui te renvoie une valeur en abs(valeur).
je ne l'avais pas compris comme ça, moi je n'ai pas de TI 89 et sur la 83 que j'ai, toute valeur en abs(valeur) est automatiquement transformée en la valeur seule.
Il te faut donc un calcul qui élimine le abs.
ça y est j'ai compris.
J'imagine que faire
dans ce cas, je viens de demander aux hautes autorités de ce forum qui m'ont dit que:
renverrait X au lieu de abs(x), | voulant dire "tant que".
ça y est j'ai compris. Comme quoi en expliquant tout d'un coup, ça marche mieux.
C'est donc la TI qui te renvoie une valeur en abs(valeur).
je ne l'avais pas compris comme ça, moi je n'ai pas de TI 89 et sur la 83 que j'ai, toute valeur en abs(valeur) est automatiquement transformée en la valeur seule.
Il te faut donc un calcul qui élimine le abs.
ça y est j'ai compris.
J'imagine que faire
- Code: Select all
abs(l)/1
dans ce cas, je viens de demander aux hautes autorités de ce forum qui m'ont dit que:
- Code: Select all
abs(x)|x>0
renverrait X au lieu de abs(x), | voulant dire "tant que".
-
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2337
- Images: 113
- Joined: 04 Feb 2010, 00:00
- Location: Evry (France)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: PhD candidate, Bioinformatics
Re: Enlever valeur absolue d'une expression
Inserer une contrainte avec "|" marche bien dans l'écran de calcl, mais dans un programme je n'ai pas réussi à faire fonctionner.
Si quelqu'un connait la syntaxe, je n'ai pas trouvé...
J'ai par contre fait une fonction qui eneleve les valeurs absolues d'une expression. Ca a l'air de fonctionner, mais j'aimerais que ca reste provisoire.... C'est un peu du bricolage !!
Je mets le code, pour info ^^
Désolé pour les noms de variables particuliers ^^
Si quelqu'un connait la syntaxe, je n'ai pas trouvé...
J'ai par contre fait une fonction qui eneleve les valeurs absolues d'une expression. Ca a l'air de fonctionner, mais j'aimerais que ca reste provisoire.... C'est un peu du bricolage !!
Je mets le code, pour info ^^
- Code: Select all
(datain)
Func
local unabs, unabst, pos, dimen, car, par
string(datain)»unabs
Loop
0»par
inString(unabs,"abs(")»pos
If pos=0 Then
expr(unabs)»unabs
Return unabs
EndIf
dim(unabs)»dimen
left(unabs,pos-1)»unabst
pos+4»pos
While posœdimen
mid(unabs,pos,1)»car
If car="(" Then
par+1»par
ElseIf car=")" Then
par-1»par
EndIf
If par=ª1 Then
0»par
Else
unabst&car»unabst
EndIf
pos+1»pos
EndWhile
unabst»unabs
EndLoop
EndFunc
Désolé pour les noms de variables particuliers ^^
-
azerty89
Niveau 2: MI2 (Membre Initié)- Posts: 5
- Joined: 09 Feb 2012, 22:01
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Enlever valeur absolue d'une expression
Aie... Là, je ne peux plus t'aider, ça sort de mon domaine...
comme je t'ai dit je n'ai pas de 89, je comprends mal leurs codes.
je redemanderai aux connaisseurs comment faire dans un programme.
comme je t'ai dit je n'ai pas de 89, je comprends mal leurs codes.
je redemanderai aux connaisseurs comment faire dans un programme.
-
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2337
- Images: 113
- Joined: 04 Feb 2010, 00:00
- Location: Evry (France)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: PhD candidate, Bioinformatics
11 posts
• Page 1 of 2 • 1, 2
Who is online
Users browsing this forum: ClaudeBot [spider] and 4 guests