Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
- Accueil
- » Entraide (supérieur)
- » Mon "projet" semestre 1
- » Répondre
Répondre
Résumé de la discussion (messages les plus récents en premier)
- Terces
- 13-01-2016 18:26:45
Bonsoir,
Désolé mais j'ai dis des bêtises...
J'ai quand même une autre piste que tu m'as inspiré (car en 2D), je te tiens au courant si ca fonctionne, je le travaille ce soir.
Bon je viens de chercher et je n'ai rien trouvé d'intéressent...
- Terces
- 06-01-2016 10:38:19
Re,
Je peux déjà te dire que si un tel tétraèdre existe alors OA, OB et OC sont pairs si je n'ais pas fait d'erreur. Je vais donc continuer sur cette voie là.
Pour trouver ce résultat, j'ai poser toutes les configurations pour k pair/imapir, m pair/impair et n pair/impair et j'ai obtenu soit a pair, b pair et c pair ou alors un seul pair sur les 3 mais il en faut au moins 2. D'ou le résultat.
- Terces
- 05-01-2016 10:57:11
Re,
c'est pas mal ca^^ enfin ca peut quand même se faire rapidement à la "main" mais bon c'est un petit gain de temps, en tout cas et pour le moment c'est le seul avantage que je lui vois comparé à nos précédents programmes.
J'ai un peu cherché hier soir et comme la dit freddy on ne va pas réinventer la "roue" donc sur le net j'ai trouvé ce théorème :
c'est sur les triangles dit héronien :http://villemin.gerard.free.fr/Wwwgvmm/Esoteris/Heronien.htm
j'ai donc posé :
a²+c² = n.(m²+k²)
a²+b² = m.(n²+k²)
b²+c² = (m+n)(m.n-k²)
Et ainsi je trouves :
a² = k².(m+n)
b² = -(k²-m.n).n
c² = -k².m+m².n
De ces - expressions, on peut déjà déduire quelques éléments si je ne me trompe pas :
n est un carré
m est un carré
m+n est un carré
Je vais chercher de ce côté et je te tiens au courant.
- yoshi
- 05-01-2016 08:41:45
Re,
Oh, mais moi aussi, j'apprends...
Python nous "cache" plein de choses.
Hier, j'ai découvert ça sur un site internet, et depuis le temps que je fouille à propos de Python, je l'avais encore jamais rencontré.
Donc essaie ça :
>>> from math import hypot
>>> hypot(5,12)
Tu n'as fait que survoler l'algo : moi, il y a une chose qui m'a surprise.
D'habitude on demande
>>> from math import sqrt
>>> sqrt(5)
2.23606797749979
>>>
Si tu essaies :
>>> 5.sqrt()
SyntaxError: invalid syntax
Et pourtant, tu quittes Python et tu le relances et tu ressaies :
>>> from decimal import Decimal, getcontext
>>> getcontext.prec=100
>>> Decimal(5).sqrt()
2.236067977499789696409173668731276235440618359611525724270897245410520925637804899414414408378782275
Je me suis longtemps demandé comment il se faisait qu'on avait accès à sqrt sans l'importer...
Dans le module math, sqrt() est une fonction qui reçoit un argument.
Dans le module decima,l soit dans la classe Decimal, soit dans getcontext, il doit y avoir un sqrt qui n'est plus une fonction mais une méthode, d'où l'emploi Decimal(5).sqrt(), mais aussi la même fonction (aussi restrictive) que dans le module math :
>>> sqrt(Decimal(5))
2.23606797749979
Ce n'est qu'une hypothèse bâtie sur les constats précédents...
@+
- Terces
- 04-01-2016 23:38:28
Re,
Merci pour l'algo, cet apre(s )m(idi) j'avais commencé à voir cette méthode intéressante mais bon je n'avais pas réussi à l'appliquer sur mon programme.
C'est intéressent de "travailler" à deux en tout cas, j'apprends "plein" de choses.
Avec tout ca, je n'ai pas cherché de mon côté depuis longtemps, je te tient au courant s'il me vient une illumination ce qui a une probabilité faible d'arriver mais non nulle...
En tout cas je vais faire tourner ton programme en attendant, car pour le moment on ne sait pas s'il y a solution ou non.
- yoshi
- 04-01-2016 20:57:23
Re,

Jusqu'à [tex]4S^2=BC^2(OA^2+OH^2)[/tex]
Tout est juste.
A partir de là, pour que 4S² soit le carré d'un entier condition nécessaire pour que S le soit, [tex]BC^2[/tex] étant le carré d'un entier, il faut que [tex]OH^2+OA^2[/tex] le soit aussi.
[tex]OA^2[/tex] étant le carré d'un entier, il faut que [tex]OH^2[/tex] le soit aussi !
J'ai testé les OH entiers possibles avec Python, il y en a beaucoup...
Et de plus OA OB, OC tous pairs...
Donc la condition nécessaire n'est pas suffisante, tant s'en faut !
@+
- yoshi
- 04-01-2016 16:21:39
Re,
Ce qui signifierait que (OH)⊥(OA)
Et puisque H a été choisi tel que (OH)⊥(BC)
On en déduirait que (OA)//(BC) ce qui est impossible.
Je t'ai laissé entendre que c'est faux et que de plus il y a une erreur encore en amont...
Que OHA soit tel que OH^2+OA^2 soit un carré ne prouve pas que AH soit tel que AH²=OA²+OH². En fait, on ne sait rien de AH...
Exemple OH=3, OA=4 et AH=2. Tu peux construire un tel triangle qui n'est pas rectangle puisque AH² n'est pas égal à OH²+OA²...
De toutes façons, 3 points distincts forment toujours un plan, mais dans l'espace ce plan est distinct du plan (ABC)...
le tétraèdre considéré est tri rectangle en O : les seuls triangles rectangles qui le composent par définition sont AOB, AOC, et BOC rectangles en O.
# -*- coding: utf-8 -*
from time import time
from decimal import Decimal, getcontext
getcontext().prec=20
def cotes(S,a,n):
b=(a*a-n*n)//(2*n)
c=b+n
S.append(b)
return S
min_a,max_a=39101,39201
td=time()
for a in range(min_a,max_a):
S=[]
for n in range(1,a):
if (a+n)*(a+n) >= 2*a*a:
break
if a%2==0:
if (a*a)%(2*n)==0 and n%2==0:
cotes(S,a,n)
else:
if (a*a)%n==0 and (a*a)%(2*n)!=0:
cotes(S,a,n)
for b1 in S:
for b2 in S:
if b1<b2:
c3=Decimal(b1**2+b2**2).sqrt()
if c3%1==0:
s1,s2,s3=(a*b1)//2,(a*b2)//2,(b1*b2)//2
s4=s1**2+s2**2+s3**2
s=Decimal(s4).sqrt()
print (a,b1,b2)
print (" ",s1,s2,s3," ",s)
print ()
if float(int(s))==s:
print ("ok ! ", "OA =",a,"OB =",b1,"OC =",b2)
print(time()-td)
Affichage :
1ere ligne : OA, OB, OC
2e ligne [tex]S_{OAB},\; S_{OAC},\;S_{OBC}, \;S_{ABC}[/tex]
>>>
39104 40185 124080
785697120 2426012160 2493077400 3566271146.062076979839105 386152 644640
7550236980 12604323600 124464512640 125328727587.0157242839116 104013 213360
2034286254 4172894880 11096106840 12028090423.97995744839120 41076 44825
803446560 876777000 920615850 1503927466.926532364839160 104130 213600
2038865400 4182288000 11121084000 12055165464.20318363639185 60852 331920
1192242810 6503142600 10098997920 12070711063.64889269839195 150348 1273536
2946444930 24958121760 95736795264 98980419007.66818350339200 137256 190080
2690217600 3725568000 13044810240 13830553201.35758769239200 134400 194040
2634240000 3803184000 13039488000 13835883644.26356398539200 56595 194040
1109262000 3803184000 5490846900 6770824942.482238626139200 49140 53625
963144000 1051050000 1317566250 1941219536.88269439382.390625
@+
- Terces
- 04-01-2016 16:01:31
Salut,
Le triangle OHA n'est-il pas rectangle par définition du triangle trirectangle ? étant donné que H appartient au plan OBC.
Dans ce cas je reviens sur la fin de ta démonstration :
Ce qui signifierait que (OH)⊥(OA)
Et puisque H a été choisi tel que (OH)⊥(BC)
On en déduirait que (OA)//(BC) ce qui est impossible.
Or on sait que (OH)⊥(OA) donc n'y a-t'il pas une incohérence dans le "On en déduirait que (OA)//(BC)"
Après, vu que tu travailles sur un développé, je ne sais pas si ce que je dis est toujours "vrai".
- yoshi
- 04-01-2016 08:35:28
Salut,
D'accord, pour ma conclusion finale, je suis obligé de passer par l'espace.
Mais Fred, que j'ai sollicité, m'a fait une objection qui vient avant le pseudo parallélisme :
Pourquoi si [tex]OA^2+OH^2 [/tex] est est un carré parfait, le triangle OHA est-il rectangle en O.?
Objection retenue : je peux prendre 2 pour AH, et j'aurai encore un triangle mais il ne sera pas rectangle...
Je cherche.
----------------------------------------------------------
Quant à l'astuce, c'est un module supplémentaire de Python, délicat à manier : le module decimal.
Tu peux demander un calcul sur 2000 décimales si tu veux (j'ai essayé). Et la fonction racine carrée existe aussi dans ce module.
En forçant le calcul avec x décimales de la racine de ton aire, tu forceras ipso facto, l'obtention de la partie entière exacte de la racine...
Et si cette racine est entière, il y aura x décimales égales à 0...
Je vais m'absenter, je te donnerai plus de détails plus tard
Voir déjà :
http://python.jpvweb.com/mesrecettespyt … th_decimal
https://docs.python.org/2/library/decimal.html
@+
- Terces
- 03-01-2016 22:42:21
Re,
de toute façon même dans l'espace je ne vois pas comment (OA) pourrait être // à (BC)
mais bon je trouves pour le moment un peu bizarre que on puisse se servir d'un patron pour ce genre de questions, OA est perpendiculaire à OA' mais dans l'espace ils sont parallèles confondus, enfin je relirais ce que tu as écrit plus calmement demain.
PS : pour python et le problème de l'arrondi, je n'ai pas encore essayé mais peut-être qu'un ABC-floor(ABC) réglerait le problème, à voir... J'attends toujours ton astuce ;)
- yoshi
- 03-01-2016 19:51:04
Me rev'la,
Terces, les développés, c'est 6e-3e...
3OA ? Nan ! 2 seulement ! et 2 OB, 2 AB et 2 AC aussi..
Imagine ton tétraèdre (en papier) de sommet O "en l'air", la base ABC sur le plan...
Je fends le tétraèdre le long des segments [AB] et [AC], pas [BC] que je prends comme charnière.
Maintenant tu as un couvercle qui comprend les faces OAB, OAC et OBC, lequel couvercle pivote autour de [BC]...
OK ?
Maintenant je fends le long du segment [OA].
Maintenant tu peux complètement déplier ton tétraèdre et toutes les faces seront à plat...
Tu es choqué parce qu'il y a 2 segments [OA] ?
Je raisonne sur la figure plane et sur les aires qui sont les mêmes que ce soit dans le plan et dans l'espace.
Qu'est-ce que ça change pour l'aire de OBC qu'elle soit dans le plan ou dans l'espace ?
Si dans le plan (OBC) je trace la hauteur [OH] ce plan peut bien avoir n'importe quelle "orientation", la hauteur restera la hauteur.
Il y 3 points A : j'aurais pu dans le sens trigo, en partant du haut les nommer A, A', A" quand tu vas reformer ton tétraèdre à partir du développé, ça n'empêchera pas les côtés [OA] et [OA'] de coïncider, les côtés [BA'] et [BA'"] de coïncider, les côtés {AC] et [A"C] de coïncider, ainsi que les points A, A', A" (voilà un nouveau dessin)...
Ça change quoi par rapport au post # que maintenant figurent A, A' et A" ? [OA] et [OA'], [A'B] et [A"B], [AC] et [A"C]...
Pour réaliser un développement, sur le tétraèdre en papier, je suis passé 3 fois sur le point A avec mon cutter (ou ma paire de ciseaux)
le long de [OA]
le long de [BA]
le long de [CA]
Si tu prends l'image, que tu l'imprimes et que tu découpes le long du contour, tu vas pouvoir refaire ton tétraèdre et faire coïncider [OA...
[OA] est coupé en deux : une partie va avec le tr. OAB, l'autre avec OAC...
@+
- Terces
- 03-01-2016 17:23:05
Hum j'ai du mal à comprendre la fin.
Dans ton développé il y a 3 OA... ca me perd un peu, je n'ai jamais utilisé les développés pour démontrer. Je ne comprends pas comment on peut faire ce raisonnement sur le développé sachant que il y a des espaces entre les segments qui n'existent pas ce qui nous ramène donc si on les élimine à la figure dans l'espace.
- yoshi
- 03-01-2016 17:03:13
Salut,
"Ce qui signifierait que (OH)⊥(OA)(OH)⊥(OA)
Et puisque H a été choisi tel que (OH)⊥(BC)(OH)⊥(BC)
On en déduirait que (OA)//(BC) ce qui est impossible."Vu qu'on est dans l'espace ces droites ne sont pas forcément parallèles non ?
Oui... mais moi je travaille sur mon "développé", mon "patron" si tu préfères et lui, il est dans un plan.
Donc, cette démo ?
@+
Pour passer outre, la limitation Pythonesque je t'explique à mon retour
- Terces
- 03-01-2016 17:00:56
Re,
Je pense que je tiens la bonne piste.
Je crois que tu as écrit quelque part que le carré de l'aire de ABC est la somme des carrés des aires des triangles OAB, OAC et OBC...
Donc une somme de 3 carrés.
A ce propos j'ai trouvé ceci : https://fr.wikipedia.org/wiki/Th%C3%A9o … arr%C3%A9s
ou encore (mais là, j'ai tendance à nager la brasse coulée) :
https://www.math.ens.fr/enseignement/te … ichier=537Revenons à ma piste. Je vais essayer quelque chose que tu vas chercher à démolir (ce sera ton boulot !)...
Soit [OH] la hauteur issue de A dans le triangle OBC (*).
[tex]S²=\frac 1 4(OA^2OB^2)+\frac 1 4(OA^2OC^2)+\frac 1 4(OB^2OC^2)[/tex]
D'où
[tex]4S²=OA^2OB^2+OA^2OC^2+OB^2OC^2[/tex]
Si 4S² est un carré parfait, alors S² aussi.
[tex]OA^2OB^2+OA^2OC^2+OB^2OC^2=OA^2(OB^2+OC^2)+OB^2OC^2=OA^2BC^2+OB^2OC^2[/tex]
Relations métriques dans le triangle
OB.OC=OH.BC donc [tex]OB^2.OC^2=OH^2.BC^2[/tex]
Je remplace :
[tex]OA^2OB^2+OA^2OC^2+OB^2OC^2=OA^2BC^2+OB^2OC^2=OA^2.BC^2+OH^2.BC^2= BC^2(OA^2+OH^2)[/tex]
Donc 4S² n'est un carré parfait que si OA²+OH² l'est aussi !
Ce qui signifierait que [tex](OH)\perp (OA)[/tex]
Et puisque H a été choisi tel que [tex](OH)\perp(BC)[/tex]
On en déduirait que (OA)//(BC) ce qui est impossible.
Donc OA²+OH² n'est pas un carré parfait donc 4S² non plus, donc [tex]S²_{ABC}[/tex] non plus.@+
[EDIT] (*) Rectification : issue de O, bien sûr !
Re,
quand tu dis :
"Ce qui signifierait que [tex](OH)\perp (OA)[/tex]
Et puisque H a été choisi tel que [tex](OH)\perp(BC)[/tex]
On en déduirait que (OA)//(BC) ce qui est impossible."
Vu qu'on est dans l'espace ces droites ne sont pas forcément parallèles non ?
PS: comment ne pas être limité par l'approximation de python ?
- yoshi
- 03-01-2016 14:48:24
Re,
Je me suis encore fait piéger par la racine carrée "standard"...
J'ai trouvé une astuce.
Ça me rassure : ça démolissait ma démo !
@+







