Page 1 of 4

remerciements

Unread postPosted: 24 May 2015, 09:56
by alphaméthyste
salut

bon je vous remercie pour toutes les fois que vous m'avez aidé

alors en guise de remerciement au cas où ça interesse quelqu'un

j'ai construit quatre fonctions dont je vous retranscrit le code ci-dessous

deux remarques au préalable
1-pour la variable nommée eps prendre eps = 10^-9 ou 10^-10 (une valeur positive proche de zero mais non nulle)
2-par ailleurs lorsque la valeur de la fonction donne pour solution 10^90 cela signifie une aberration de calcul
et que l'erreur proviens des données mises en entrée

description des quatre fonctions :

-la premiere est notée : ineg(a,b)

il s'agit d'une application RXR->{0,1}
lorsque a est superieur ou egal à b on obtiens ineg(a,b) = 1 sinon ineg(a,b)=0

-la deuxieme est notée agm(a,b,eps)

elle donne la moyenne arithmético-géométrique du couple (a,b)

ici a et b sont positifs

-la troisieme est notée agmtr(a,b,c,eps)

avec a et b des réels quelconques et c qui est un réel strictement supérieur à 0 et non égal à 1

on verifie agmtr(x,x,c,eps)=x

x+y= agmtr(x,y,c,eps)+ agmtr(y,x,c,eps)

agmtr(x,y,c,eps)+ z=agmtr(x+z,y+z,c,eps)

agmtr(x,y,c,eps). z=agmtr(x.z,y.z,c,eps)

agmtr( agmtr(x,y,c,eps) , z , c , eps) =agmtr( agmtr(x,z,c,eps) , agmtr(y,z,c,eps) , c, eps)

lorsque x<y et 0<c<1 alors on verifie x<z<y

lorsque x>y et 0<c<1 alors on verifie x>z>y

lorsque x<y et c>1 alors on verifie x<y<z

lorsque x>y et c>1 alors on verifie x>y>z

-la quatrième est notée iagmtr(x,y,z,eps)

selon agmtr(x,y,t,eps)=z alors cette fonction donne la valeur de t

iagmtr(x,y,z,eps)=t

une aberration de calcul se produisant lorsque z>x>y ou bien lorsque z<x<y

Code: Select all
Define ineg(a,b)=
Func
Local c
c:=int((2.int ((a+|a|+|b|+1)/(b+|a|+|b|+1)))/(int((a+|a|+|b|+1)/(b+|a|+|b|+1))+1))
Return c
EndFunc


Code: Select all
Define agm(a,b,eps)=
Func
Local boucle,a0,b0,a1,b1,a2,b2,c2
c2:=eps
a2:=a
b2:=b
If eps =< 0 Then
c2:=10^-9
EndIf
If eps >= 1 Then
c2:=10^-9
EndIf
If a < 0 Then
a2:= |a|
EndIf
If b < 0 Then
b2:= |b|
EndIf
a1:=(a2+b2)/2
b1:=racine carrée de (a2.b2)
boucle :=1
While |a1-b1|>c2
boucle := boucle + 1
a0 :=a1
b0:= b1
a1:=(a0+b0)/2
b1:=racine carrée de (a0.b0)
If boucle >= 100 Then
a1:=0
b1:=0
c2:=0
EndIF
EndWhile
If boucle >=100 Then
a1:=10^90
EndIf
Return a1
EndFunc


Code: Select all
Define agmtr(a,b,c,eps)=
Func
Local boucle,e,j,n,a0,a1,b0,b1,c0,c1
e:=eps
a0:=c
If eps =< 0 Then
e:=10^-9
EndIf
If eps >= 1 Then
e:=10^-9
EndIf
If c < 0 Then
a0:= |c|
EndIf
a1:=ineg(b,a)
j:=2.a1-1
b0:=j.a0.(b-a)
b1:=j.(b-a)
a0:=agm(b0,b1,e)
c0:=a+j.a0
b0:=|a+(b/2)-((3.c0)/2)|
b1:=|a-c0|
a0:=agm(b0,b1,e)
c1:=a+j.a0
n:=3
boucle :=1
While |c1-c0|>e
boucle := boucle + 1
b0:= |a-c1+((c0-c1)/n!)|
b1:=|a-c1|
a0:=agm(b0,b1,e)
c0:=c1
c1:=a+j.a0
n:=n+1
If boucle >= 100 Then
c0:=0
c1:=0
e:=0
EndIF
EndWhile
If boucle >=100 Then
c0:=10^90
EndIf
Return c0
EndFunc


Code: Select all
Define iagmtr(x,y,z,eps)=
Func
Local boucle,a,b,c,d,l,n,t,t0,t1
c:=eps
n:=1
If eps =< 0 Then
c:=10^-9
EndIf
If eps >= 1 Then
c:=10^-9
EndIf
d:=0
If z>x Then
d:=d+1
EndIf
If x>y Then
d:=d+1
EndIf
If d=2 Then
t:=10^90
Goto n
EndIf
d:=0
If y>x Then
d:=d+1
EndIf
If x>z Then
d:=d+1
EndIf
If d=2 Then
t:=10^90
Goto n
EndIf
d:=|x-y|
If d =< c Then
t:=10^90
Goto n
EndIF
d:=|x-z|
If d =< c Then
t:=10^90
Goto n
EndIF
d:=|y-z|
If d =< c Then
t:=10^90
Goto n
EndIF
l:=(y-x)/(z-x)
a:=(1/3).( racine carrée de ((24/l^2)+1) -2)
b:=(1/25).((4/l)+1)^2
t1:=a+(b-a).((1-agmtr(0,l,a,c))/(agmtr(0,l,b,c)-agmtr(0,l,a,c)))
t0:=b
boucle :=1
While |t1-t0|>c
boucle := boucle + 1
t0:=t1
t1:=a+(t0-a).((1-agmtr(0,l,a,c))/(agmtr(0,l,t0,c)-agmtr(0,l,a,c)))
If boucle >= 100 Then
t0:=0
t1:=0
c:=0
EndIF
EndWhile
t:=t1
If boucle >=100 Then
t:=10^90
EndIf
Lbl n
Return t
EndFunc

Re: remerciements

Unread postPosted: 24 May 2015, 11:57
by Bisam
C'est très gentil de venir remercier et de fournir ces fonctions.

En échange, voici quelques remarques qui pourront sans doute t'aider pour améliorer les prochaines que tu crééras.

Tout d'abord, il existe une fonction "when(test, résultat si vrai, résultat si faux)" qui fait le test et renvoie l'un des deux résultats suivant que le résultat est vrai ou faux.
Ainsi, ta première fonction peut s'écrire en une ligne :
Code: Select all
ineg(a,b):=when(a>=b,1,0)


Ensuite, lorsqu'un test est suivi d'une seule ligne de commande, il n'est pas nécessaire d'écrire le Then et le Endif.
Par exemple, à la place de
Code: Select all
If eps =< 0 Then
e:=10^-9
EndIf
If eps >= 1 Then
e:=10^-9
EndIf
tu peux écrire
Code: Select all
If eps <= 0 or eps >=1
e:=10^-9


On peut également utiliser tous les paramètres de la fonction comme variables locales plutôt que d'en introduire d'autres qui feront doublon.
Ainsi, la fonction agm peut se réécrire :
Code: Select all
Define agm(a,b,eps)=
Func
Local a0,b0
If eps <= 0 or eps >= 1
    eps:=10^-9
a:=|a|
b:=|b|
While |a-b|>eps
    a0:=a
    b0:= b
    a:=(a0+b0)/2
    b:=√(a0*b0)
EndWhile
Return a
EndFunc

J'ai enlevé le test d'excès de passage dans la boucle "While" car on sait que les deux suites convergeant vers la moyenne arithmético-géométrique convergent très rapidement et qu'il n'y a donc pas de risque d'excéder un temps de calcul raisonnable.

Je n'ai pas compris ce que faisait la 3ème fonction... mais je pense qu'on peut également la simplifier de la même façon.

Re: remerciements

Unread postPosted: 24 May 2015, 12:21
by alphaméthyste
merci Bisam

je vais donc modifier cela

sinon pour la troisieme et quatrieme fonction par exemple (pour l'explication je laisse de coté le eps qui évite des aberrations de calculs)
celles ci utilisent la fonction agm (moyenne arithmético geometrique -la deuxieme fonction )

agmtr(x,y,t) par exemple x=-2.3 y=1.7 t=2.789 alors x<y<z et z=5.647776579 ici t>1
et on obtiens iagmtr(x,y,z)=t=2.789 selon x=-2.3 y=1.7 z=5.647776579

autre exemple agmtr(x,y,t) avec x=-2.3 y=-0.9 t=0.789 alors x<z<y et z=-1.0936534715 ici 0<t<1
et on obtiens iagmtr(x,y,z)=t=0.789 selon x=-2.3 y=-0.9 z=-1.0936534715

et on verifie aussi agmtr(x,x,t)=x
agmtr(x,y,t)+agmtr(y,x,t)=x+y
agmtr(x,y,t)+z=agmtr(x+z,y+z,t)
agmtr(x,y,t).z=agmtr(x.z,y.z,t)
agmtr(agmtr(x,y,t),z,t)=agmtr(agmtr(x,z,t),agmtr(y,z,t),t)

Re: remerciements

Unread postPosted: 24 May 2015, 13:12
by alphaméthyste
pour une explication supplementaire (en ce qui concerne les fonctions agmtr et iagmtr

l'utilisation de la factorielle n! fait que la suite engendrée par la fonction amgtr converge tres rapidement

quand au valeurs de a et b calculée dans la fonction iagmtr ces deux valeurs sont tres importantes aussi

pour iagmtr(x,y,z) = t

alors on verifie toujour a<t<b

la suite engendrée par cette fonction converge elle aussi rapidement

Re: remerciements

Unread postPosted: 24 May 2015, 13:31
by Bisam
Je comprends bien que la 4ème fait en gros l'inverse de la 3ème... mais que renvoie exactement "agmtr" en fonction de x,y et z ?

Re: remerciements

Unread postPosted: 24 May 2015, 13:53
by alphaméthyste
en fait la fonction agmtr(x,y,t)

possede les mêmes propriétés que la fonction

f(x,y)=(1-h(t)).x+h(t).y avec un parametre t dans ]0,1[UNION ]1,+infini[

et h(t) est une bijection dans ]0,1[UNION ]1,+infini[

sauf que là on ne dit pas explicitement qu'elle est cette bijection (en fait on s'en fiche là pour le coup)

elle se construit par l'utilisation d'une suite utilisant des factorielles et des moyennes arithmético géometrique

mais elle possede bien les mêmes propriétés

tu peut poser h(t)=t et tu verifie de même

f(x,x)=x
f(x,y)+f(y,x)=x+y
f(x,y)+z=f(x+z,y+y)
f(x,y).z=f(x.z,y.z)
f(f(x,y),z)=f(f(x,z),f(y,z))

Re: remerciements

Unread postPosted: 24 May 2015, 14:58
by Bisam
Je te demande une définition et tu me renvoies les propriétés...
Cela m'intéresse... mais je ne comprends pas comment elle est définie.

N'as-tu pas une définition correcte ?
D'où sors-tu cette notion ? C'est toi qui l'a inventée ?
D'ailleurs, pourquoi ce nom "agmtr" ? que veut dire le "tr" ?

Re: remerciements

Unread postPosted: 24 May 2015, 15:13
by alphaméthyste
eh bien une definition correcte c'est une application agmtr(x,y,t) :R^2 X I->R

avec (x,y) dans R^2 et t dans I=]0,1[UNION]1,+infini[

mais bon puisque il en existe des tas elle est de même type que l'autre

sinon j'ai rien inventé j'ai juste essayé de construire une application qui colle avec ces propriétés sans definir une bijection h(t)

voire du type h(t)=t

comme pour tout type de fonction de ce type selon ce que j'ai dit précédemment

celle ci n'etant pas explicitement exprimée et on utilise des factorielles et moyennes arithmético geometrique pour la construire ...

quand au nom agmtr eh bien ...c'est un nom comme un autre ...

Re: remerciements

Unread postPosted: 24 May 2015, 15:35
by alphaméthyste
... ceci dit j'ai une idée derrière la tête ... mais bon je pense que ça va grincer des dents mais tant pis (je suis auto didacte donc n'ayant jamais été au lycée je comprend que ça soit un peu "loufoque" ceci dit j'ai rien à perdre : j'aime les maths et c'est gratuit )

mon idée de départ viens de là ->>> mais bon t'embête pas (c'est mon obssession) http://sciencetradition.forumactif.com/t252p15-l-addition-du-parametre-t-et-physique-classique#1667

ceci dit je prend le risque (de me faire chambrer) de te la dire puisque tu veux tout savoir (et c'est ton droit)

ps: fallait bien que je marque L1 maths -pour dire un truc comme un autre en m'inscrivant- mais en fait mon vrai niveau est troisième du collège

Re: remerciements

Unread postPosted: 24 May 2015, 15:43
by Bisam
Ce que je ne comprends pas, c'est comment tu peux trouver un résultat sans savoir comment tu l'as défini ! C'est inouï.
Je passe sur tes idées de modéliser la physique... ce passage ne m'intéresse pas beaucoup.
Mais tu fais des calculs mathématiques... et s'il n'y a pas de définition cohérente, tu auras beau exiger des propriétés, tant que tu n'es pas certain que l'objet dont tu parles existe, tu ne produis que du vent.

Je ne veux pas te pousser à arrêter, mais au contraire t'inciter à te concentrer sur le point essentiel : prouver que tu ne fais pas que brasser de l'air !
En gros, donner une définition à l'objet que tu calcules permettra à d'autres de vérifier qu'effectivement l'objet que tu calcules possèdes les propriétés que tu lui attribues... et il deviendra plus facile d'en débattre voire de l'utiliser.

Pour l'instant, je ne vois que le vent dans les feuilles...