|
Autor |
Berechnung mit 2 Winkelhalbierenden und 1 Seitenhöhe |
|
ebikerni
Aktiv  Dabei seit: 17.10.2020 Mitteilungen: 273
 | Themenstart: 2023-03-06
|
Hallo,
jetzt die neue auch graphische Darstellung meiner Frage für die Bestimmung
einiger Elemente des mathematischen Dreiecks , die dann für einem für
mich zu bestimmenden Programm notwendig sind.
Gegeben: Winkelhalbierende Alpha = 8
Winkelhalbierende Beta = 14
Seitenhöhe hc = 20
https://matheplanet.com/matheplanet/nuke/html/uploads/c/53659_2img36.jpg
Die Angaben zur Berechnung einiger notwendigen Elemente für meine weitere Berechnung der restlichen Elemente des Dreiecks sind für mich aber nicht realisierbar.
Z. Bspl. erstellt Arndt Brünner mit Dreiecksrechner 4 Gleichungen und
4 Unbekannten A, a, b, c oder mit der mir bekannten Formelsammlung Trigonometrie komme ich nicht zur Berechnung der ersten notwendigen Ergebnisse-
|
Profil
|
werner
Senior  Dabei seit: 23.10.2004 Mitteilungen: 2296
Wohnort: österreich
 | Beitrag No.1, eingetragen 2023-03-07
|
wie ich dir schon anderweitig sagte:
verwende den Code von M.Pythagoras und/oder Knaax, indem du eine Funktion durch Heron ersetzt.
wie du bemerkt hast, rechnet Brünner mit 4 Gleichungen, es geht aber problemlos auch mit 3D-Newton, (eventuell etwas sensibler bezüglich der Startwerte).
auf mikrige 3 Stellen:
a = 27.261
b = 21.496
c = 10.618
|
Profil
|
MontyPythagoras
Senior  Dabei seit: 13.05.2014 Mitteilungen: 3339
Wohnort: Werne
 | Beitrag No.2, eingetragen 2023-03-07
|
Hallo zusammen,
es gilt laut Wikipedia Formelsammlung Trigonometrie:
$$\gamma=\pi-\alpha-\beta\tag1$$
$$a=2r\sin\alpha\tag2$$und sinngemäß das Gleiche für $b$ und $c$. Außerdem
$$w_a=\frac{2A}{a\cos\frac{\beta-\gamma}2}\tag3$$und
$$ch_c=2A\tag4$$Aus (3) folgt daher:
$$2A=aw_a\cos\frac{\beta-\gamma}2=bw_b\cos\frac{\alpha-\gamma}2\tag5$$woraus mithilfe von (1) und (2) folgt:
$$w_a\sin\alpha\sin(\beta+\tfrac12\alpha)=w_b\sin\beta\sin(\alpha+\tfrac12\beta)\tag6$$Wir definieren
$$\tfrac12(\alpha+\beta)=\sigma\qquad\tfrac12(\alpha-\beta)=\delta\tag7$$Daraus folgt:
$$\alpha=\sigma+\delta\qquad\beta=\sigma-\delta\tag8$$In (6) eingesetzt:
$$w_a\sin(\sigma+\delta)\sin(\tfrac32\sigma-\tfrac12\delta)=w_b\sin(\sigma-\delta)\sin(\tfrac32\sigma+\tfrac12\delta)\tag9$$Produktformel anwenden:
$$w_a\left(\cos(\tfrac32\delta-\tfrac12\sigma)-\cos(\tfrac12\delta+\tfrac52\sigma)\right)=w_b\left(\cos(\tfrac32\delta+\tfrac12\sigma)-\cos(\tfrac12\delta-\tfrac52\sigma)\right)\tag{10}$$
$$w_a\left(\cos\tfrac32\delta\cos\tfrac12\sigma+\sin\tfrac32\delta\sin\tfrac12\sigma-\cos\tfrac12\delta\cos\tfrac52\sigma+\sin\tfrac12\delta\sin\tfrac52\sigma\right)=w_b\left(\cos\tfrac32\delta\cos\tfrac12\sigma-\sin\tfrac32\delta\sin\tfrac12\sigma-\cos\tfrac12\delta\cos\tfrac52\sigma-\sin\tfrac12\delta\sin\tfrac52\sigma\right)\tag{11}$$
$$(w_a-w_b)\left(\cos\tfrac32\delta\cos\tfrac12\sigma-\cos\tfrac12\delta\cos\tfrac52\sigma\right)+(w_a+w_b)\left(\sin\tfrac32\delta\sin\tfrac12\sigma+\sin\tfrac12\delta\sin\tfrac52\sigma\right)=0\tag{12}$$Formel für 3-fache Winkel einsetzen:
$$(w_a-w_b)\left(\left(4\cos^2\tfrac12\delta-3\right)\cos\tfrac12\sigma-\cos\tfrac52\sigma\right)\cos\tfrac12\delta+(w_a+w_b)\left(\left(3-4\sin^2\tfrac12\delta\right)\sin\tfrac12\sigma+\sin\tfrac52\sigma\right)\sin\tfrac12\delta=0\tag{13}$$In der Mitte trennen und quadrieren:
$$(w_a-w_b)^2\left(\left(4\cos^2\tfrac12\delta-3\right)\cos\tfrac12\sigma-\cos\tfrac52\sigma\right)^2\cos^2\tfrac12\delta=(w_a+w_b)^2\left(\left(3-4\sin^2\tfrac12\delta\right)\sin\tfrac12\sigma+\sin\tfrac52\sigma\right)^2\sin^2\tfrac12\delta\tag{14}$$
Halbwinkelformeln ($\cos^2\tfrac12\delta=\tfrac12(1+\cos\delta)$, $\quad\sin^2\tfrac12\delta=\tfrac12(1-\cos\delta)$):
$$(w_a-w_b)^2\left(\left(2\cos\delta-1\right)\cos\tfrac12\sigma-\cos\tfrac52\sigma\right)^2(1+\cos\delta)=(w_a+w_b)^2\left(\left(2\cos\delta+1\right)\sin\tfrac12\sigma+\sin\tfrac52\sigma\right)^2(1-\cos\delta)\tag{15}$$Das ist, wenn man scharf hinschaut, eine kubische Formel für $\cos\delta$, so dass man also $\delta$ in Abhängigkeit von den beiden Winkelhalbierenden und von $\sigma=\tfrac12(\alpha+\beta)$ berechnen kann. Das ist der Schlüssel, wenn man ein Dreieck mit der Angabe von zwei Winkelhalbierenden und einer weiteren Größe berechnen will, egal ob nun mit der Fläche oder einer Höhe.
In diesem Fall müsste man aus (4) und (5) noch eine weitere Gleichung von zwei Winkeln schrauben, in der dann wieder $\sigma$ und $\delta$ eingesetzt werden, bzw. für $\delta$ die noch zu findende Lösung der kubischen Gleichung. Am Ende hat man eine Gleichung für $\sigma$, wo in mehrfachen Potenzen von dritten Wurzeln das Zweieinhalbfache von $\sigma$ vorkommt. Mit viel Glück kann man also eine Gleichung 15ten oder auch 30ten oder 45ten Grades für $\sigma$ herleiten. Viel Spaß... 😁
Vielleicht schafft es ja auch jemand, (6) nach $\alpha$ oder $\beta$ aufzulösen, aber das ist mir nicht gelungen, auch wenn es schön einfach aussieht.
Es wird wohl wieder auf 2D-Newton hinauslaufen.
Ciao,
Thomas
|
Profil
|
werner
Senior  Dabei seit: 23.10.2004 Mitteilungen: 2296
Wohnort: österreich
 | Beitrag No.3, eingetragen 2023-03-07
|
ja mit (3D und) 2D-Newton hab ich´s geknackt,
Gott sei Dank ohne deine Formeln🙂
|
Profil
|
MontyPythagoras
Senior  Dabei seit: 13.05.2014 Mitteilungen: 3339
Wohnort: Werne
 | Beitrag No.4, eingetragen 2023-03-09
|
Hallo ebikerni,
\sourceon Python
\numberson
from math import sin, cos, tan, pi
wa = 8
wb = 14
hc = 20
d = alpha = beta = pi / 3
k = 3
while d > 1e-14 * (alpha + beta):
f = wa * sin(alpha) * sin(beta + 0.5 * alpha) - wb * sin(beta) * sin(alpha + 0.5 * beta)
fa = wa * cos(alpha) * sin(beta + 0.5 * alpha) + 0.5 * wa * sin(alpha) * cos(beta + 0.5 * alpha) - wb * sin(beta) * cos(alpha + 0.5 * beta)
fb = wa * sin(alpha) * cos(beta + 0.5 * alpha) - wb * cos(beta) * sin(alpha + 0.5 * beta) - 0.5 * wb * sin(beta) * cos(alpha + 0.5 * beta)
g = wa * sin(alpha) * sin(beta + 0.5 * alpha) - hc * sin (alpha + beta)
ga = wa * cos(alpha) * sin(beta + 0.5 * alpha) + 0.5 * wa * sin(alpha) * cos(beta + 0.5 * alpha) - hc * cos(alpha + beta)
gb = wa * sin(alpha) * cos(beta + 0.5 * alpha) - hc * cos(alpha + beta)
d = k * (fa * gb - ga * fb)
k = 1
dalpha = (f * gb - g * fb) / d
dbeta = (f * ga - g * fa) / d
alpha -= dalpha
beta += dbeta
d = abs(dalpha) + abs(dbeta)
a = hc / sin(beta)
b = hc / sin(alpha)
c = hc / tan(alpha) + hc / tan(beta)
print(a, b, c)
\sourceoff
Ciao,
Thomas
|
Profil
|
ebikerni
Aktiv  Dabei seit: 17.10.2020 Mitteilungen: 273
 | Beitrag No.5, vom Themenstarter, eingetragen 2023-03-11
|
Hallo Thomas
herzlichen Dank für Deine Mitteilung.
Für diese Ergebnisse bist Du für mich ein geniales Genie.
Deine Darstellung zur Berechnung von a, b, c konnte ich in meinem Programm
mit Python erstellen. Ich konnte es aber nicht aktivieren.
Warum ?
Ein Produkt mit sin, cos, tan ist nicht vorgesehen. Ich muss diese Werte in
bsin, bcos, btan umwandeln, etwa so :
bcos(alpha) = math.acos(cosalpha)
In Deinem Beispiel gibt es dafür mehrere Fälle. Ich habe noch nicht alle
Möglichkeiten praktifiziert.
Auch Hallo Werner für Deine Mitteilungen bin ich sehr dankbar.
Auch für alle weiteren Möglichkeiten mit geg. wa,wb und
geg. ri,ru,sh,h usw. ergeben sich sicherlich auch für mich Schwierigkeiten.
Gruß ebikerni
|
Profil
|
Knaaxx
Senior  Dabei seit: 06.05.2006 Mitteilungen: 2730
 | Beitrag No.6, eingetragen 2023-03-11
|
Hallo ebikerni,
was soll das sein bsin, bcos, ...
MontyPythagoras, hat einen Ladebefehl ganz oben im Programm stehen. Wenn du den NICHT ausführst, oder dieser Ladebefehl einen Fehler vermeldet, kannst du die Befehle nicht 1:1 verwenden.
Python kennt von Haus aus diese Befehle alle nicht. Wenn du mit "bsin und Co" arbeitest müssen die irgendwo herkommen. D.h. du musst diese zugeladen haben.
|
Profil
|
ebikerni
Aktiv  Dabei seit: 17.10.2020 Mitteilungen: 273
 | Beitrag No.7, vom Themenstarter, eingetragen 2023-03-11
|
Hallo Knaaxx,
herzlichen Dank für Deine für mich sehr wertvollen Hinweise.
Der "ganz oben stehende Ladebefehl" habe ich jetzt wieder verwendet und
die folgenden Ergebnisse wurden berechnet:
a = 27.241394859984517
b = 21.495630794331223
c = 10.617819339740638
Die weitere Berechnung der ca. 16 Dreieckelemente ist problemlos.
Nochmals an Alle herzliche Grüße von
ebikerni
|
Profil
|
werner
Senior  Dabei seit: 23.10.2004 Mitteilungen: 2296
Wohnort: österreich
 | Beitrag No.8, eingetragen 2023-03-12
|
und meine "klassische" Version des 2D-Newton:
c=(h*sin\gamma)/(sin\alpha*sin(\alpha+\gamma))
w_\alpha^2 =(h^2*sin\gamma)/(sin\alpha^2*sin(\alpha+\gamma))*(1-(sin\alpha/(sin(\alpha+\gamma)+sin\gamma))^2
w_\beta^2 =(h^2*sin\gamma)/(sin\alpha*sin(\alpha+\gamma)^2)*(1-(sin(\alpha+\gamma)/(sin(\alpha)+sin(\gamma)))^2)
|
Profil
|
ebikerni
Aktiv  Dabei seit: 17.10.2020 Mitteilungen: 273
 | Beitrag No.9, vom Themenstarter, eingetragen 2023-03-13
|
Hallo Werner,
ich finde Deine "klassische" Version des 2D-Newton sehr interessant.
Die 3 Gleichungen mit 3 Unbekannten Alpha, Gamma und c kann ich aber immer
noch nicht lösen. Alle weiteren Berechnungen der Dreieckelemente ist auch
dann für mich möglich.
Für die Lösung der Gleichungen und wie bin ich sehr dankbar.
Gruß ebikerni
|
Profil
|
Knaaxx
Senior  Dabei seit: 06.05.2006 Mitteilungen: 2730
 | Beitrag No.10, eingetragen 2023-03-13
|
Hallo ebikerni
Das sind nur 2 Gleichungen mit den 2 Unbekannten (alpha und gamma). Am Problem des Lösens ändert sich (für dich) mit diesen Gleichungen nichts.
|
Profil
|
Knaaxx
Senior  Dabei seit: 06.05.2006 Mitteilungen: 2730
 | Beitrag No.11, eingetragen 2023-03-13
|
\sourceon nameDerSprache
MontyPythagoras hat diese beiden Gl benutzt
wa*sin(alpha)*sin(alpha/2+beta)=wb*sin(beta)*sin(alpha+beta/2)
und
wa*sin(alpha)*sin(alpha/2+beta)= (hc*sin(gamma)) =hc*sin(alpha+beta)
nehmen wir hb als Vorgabe her, würde sich GL2 wie folgt abändern
hb = wb*sin(180-(180-alpha-beta/2)) (hb im rechtw Dreieck wb,hb)
hb = wb*sin(alpha+beta/2) (GL2 für Fall wa,wb,hb)
und in Analogie, ohne weitere Rechnung sollte sich
ha = wa*sin(alpha/2+beta) (GL2 für Fall wa,wb,ha)
einstellen.
Das wären die Gleichungen für die beiden anderen Fälle
\sourceoff
|
Profil
|
werner
Senior  Dabei seit: 23.10.2004 Mitteilungen: 2296
Wohnort: österreich
 | Beitrag No.12, eingetragen 2023-03-13
|
vielleicht hilft es ja 😉
https://matheplanet.com/matheplanet/nuke/html/uploads/c/6049_3eck_hc_wa_wb_ansicht.JPG
https://matheplanet.com/matheplanet/nuke/html/uploads/c/6049_3eck_hc_wa_wb_code.JPG
|
Profil
|
ebikerni
Aktiv  Dabei seit: 17.10.2020 Mitteilungen: 273
 | Beitrag No.13, vom Themenstarter, eingetragen 2023-03-14
|
Hallo Werner,
danke für Deine Mitteilung, aber nein, es hat nicht geholfen.
Ich konnte Dein Ergebnis nicht in mein Programm kopieren.
Auch Do und Loop sind in meiner Programmiersprache Python nicht angegeben.
Auch sin(alpha) oder sin(gamma) muss in Python bsin(alpha) und bsin(gamma)
als Bogenwerte bestimmt und benannt werden. Diese Mitteilung habe ich vom Lektorat Rheinwerk Computing 2020 erhalten und wende das so immer an:
Wenn alpha gegeben und die weitere Berechnung mit sinalpha erfolgen soll,
dann natürlich wie so dargestellt mit bsinalpha:
balpha = math.radians(alpha)
bsinalpha = math.sin(balpha)
Wenn 3 Dreieckseiten gegeben kann ich z.Bspl. cosalpha berechnen und dann
den Winkel alpha:
bcosalpha = math.acos(cosalpha)
alpha = math.degrees(bcosalpha)
So kann ich alle von mir gewünschten Dreiecke berechnen.
Gruß ebikerni
|
Profil
|
werner
Senior  Dabei seit: 23.10.2004 Mitteilungen: 2296
Wohnort: österreich
 | Beitrag No.14, eingetragen 2023-03-14
|
ich dachte auch eher, dass dir unsere Python-experten Monty P. oder Knaax das Zeug´s übersetzen oder du liest einfach genauer, was dir Knaax im letzten Beitrag geschrieben hat.
ich bin zu alt und faul, um Python zu lernen🙂
|
Profil
|
MontyPythagoras
Senior  Dabei seit: 13.05.2014 Mitteilungen: 3339
Wohnort: Werne
 | Beitrag No.15, eingetragen 2023-03-14
|
Hi Werner,
warum sollte ich den Code übersetzen? Ich habe in Beitrag 4 einen vollständigen Code, der sogar stark verzerrte Dreiecke korrekt berechnet, zur Verfügung gestellt. Warum sollte ich VBA Code übersetzen, der das nicht besser macht und auch noch länger ist? Wenn ebikerni das nicht zu schätzen weiß, ist das sein Problem. Mehr Zeit investiere ich nicht.
Ciao,
Thomas
|
Profil
|
werner
Senior  Dabei seit: 23.10.2004 Mitteilungen: 2296
Wohnort: österreich
 | Beitrag No.16, eingetragen 2023-03-15
|
\quoteon(2023-03-14 23:39 - MontyPythagoras in Beitrag No. 15)
Hi Werner,
warum sollte ich den Code übersetzen? Ich habe in Beitrag 4 einen vollständigen Code, der sogar stark verzerrte Dreiecke korrekt berechnet, zur Verfügung gestellt. Warum sollte ich VBA Code übersetzen, der das nicht besser macht und auch noch länger ist? Wenn ebikerni das nicht zu schätzen weiß, ist das sein Problem. Mehr Zeit investiere ich nicht.
Ciao,
Thomas
\quoteoff
das war doch kein Befehl🤧
|
Profil
|
MontyPythagoras
Senior  Dabei seit: 13.05.2014 Mitteilungen: 3339
Wohnort: Werne
 | Beitrag No.17, eingetragen 2023-03-15
|
😄
Alles gut, Werner, hatte ich auch nicht so empfunden.
Ich verstehe nur nicht, warum ebikerni, wenn man ihm schon einen Code bereitstellt, dann noch anderen Lösungen will, die das auch nicht anders machen...
Ciao,
Thomas
|
Profil
|
werner
Senior  Dabei seit: 23.10.2004 Mitteilungen: 2296
Wohnort: österreich
 | Beitrag No.18, eingetragen 2023-03-15
|
hallo Thomas,
dann lies seinen Beitrag in unserem Geometrieforum "Winkel gesucht",
und alles wird (noch) klar(er) werden 🙂
er rechnet halt gerne (auf mindestens 15 Stellen)
werner
|
Profil
|
Knaaxx
Senior  Dabei seit: 06.05.2006 Mitteilungen: 2730
 | Beitrag No.19, eingetragen 2023-03-15
|
\quoteon(2023-03-14 18:53 - ebikerni in Beitrag No. 13)
Wenn alpha gegeben und die weitere Berechnung mit sinalpha erfolgen soll,
dann natürlich wie so dargestellt mit bsinalpha:
balpha = math.radians(alpha)
bsinalpha = math.sin(balpha)
Wenn 3 Dreieckseiten gegeben kann ich z.Bspl. cosalpha berechnen und dann
den Winkel alpha:
bcosalpha = math.acos(cosalpha)
alpha = math.degrees(bcosalpha)
So kann ich alle von mir gewünschten Dreiecke berechnen.
\quoteoff
Hallo ebikerni,
ich glaube du bringst hier was durcheinander.
balpha = math.radians(alpha)
Das brauchst du nur um einen vorgegebenen "Grad-Winkel", in die Bogenmaß Entsprechung umzurechnen. Dessen Umkehrung, um Ergebnisse im Bogenmaß in Grad zurückzurechnen. Damit ist das fertig. Das betrifft also nur die Umrechnung der Startwerte und jene der Ergebnisse.
Das sonstige Programm bleibt unverändert. Da wird nichts weiter, ausgestauscht.
Gehen wir zu MontyPythagoras Proramm Beitrag #4, da steht in Zeile #7
d = alpha = beta = pi / 3
das ist eine Winkelvorgabe im Bogenmaß, da wird nichts mehr umgerechnet.
Es braucht auch am Ende nichts zurückgerechnet werden weil es keine Winkelausgabe gibt.
bsinalpha = math.sin(balpha) das brauchst in dieser Form auch nicht fortlaufend so aufrufen.
sin = math.sin 1 x am Programmanfang und fertig
Ab da nur noch sin( ... )
und wenn dir das nicht gefällt, du lieber was mit deinem Namen hättest, dann so
ebiSin = math.sin 1 x am Programmanfang
und ab da immer ebiSin( ... )
zur Veranschaulichung, Programm Beitrag #4
\sourceon nameDerSprache
"""
Programm Beitrag #4 mit ebi-Funktionsaufrufen
"""
import math
ebiSin = math.sin
ebiCos = math.cos
ebiTan = math.tan
pi = math.pi
wa = 8
wb = 14
hc = 20
d = alpha = beta = pi / 3 # Winkelvorgabe ist im Bogenmaß
k = 3
while d > 1e-14 * (alpha + beta):
f = wa * ebiSin(alpha) * ebiSin(beta + 0.5 * alpha) - wb * ebiSin(beta) * ebiSin(alpha + 0.5 * beta)
fa = wa * ebiCos(alpha) * ebiSin(beta + 0.5 * alpha) + 0.5 * wa * ebiSin(alpha) * ebiCos(beta + 0.5 * alpha) - wb * ebiSin(beta) * ebiCos(alpha + 0.5 * beta)
fb = wa * ebiSin(alpha) * ebiCos(beta + 0.5 * alpha) - wb * ebiCos(beta) * ebiSin(alpha + 0.5 * beta) - 0.5 * wb * ebiSin(beta) * ebiCos(alpha + 0.5 * beta)
g = wa * ebiSin(alpha) * ebiSin(beta + 0.5 * alpha) - hc * ebiSin (alpha + beta)
ga = wa * ebiCos(alpha) * ebiSin(beta + 0.5 * alpha) + 0.5 * wa * ebiSin(alpha) * ebiCos(beta + 0.5 * alpha) - hc * ebiCos(alpha + beta)
gb = wa * ebiSin(alpha) * ebiCos(beta + 0.5 * alpha) - hc * ebiCos(alpha + beta)
d = k * (fa * gb - ga * fb)
k = 1
dalpha = (f * gb - g * fb) / d
dbeta = (f * ga - g * fa) / d
alpha -= dalpha
beta += dbeta
d = abs(dalpha) + abs(dbeta)
a = hc / ebiSin(beta)
b = hc / ebiSin(alpha)
c = hc / ebiTan(alpha) + hc / ebiTan(beta)
print(a, b, c) # keine Winkelausgabe, Winkelrückrechnung nicht erforderlich
\sourceoff
|
Profil
|
Knaaxx
Senior  Dabei seit: 06.05.2006 Mitteilungen: 2730
 | Beitrag No.20, eingetragen 2023-03-17
|
\sourceon Python
"""
Werners Prg mit leichtem Mehrwert,
angepasst für Dreieck wa, wb, ha
"""
import math
bogen=math.radians
wgrad=math.degrees
sin=math.sin
SIN=math.sin
pi=math.pi
wa=8
wb=14
ha=6
n=0
alpha=0
gamma=0
alpha0=60/180*pi # Startwert Umrechnung ins Bogenmass, direkt
gamma0=80/180*pi # Startwert Umrechnung ins Bogenmass, direkt
alpha0=bogen(30) # "" Umrechnung ins Bogenmass
gamma0=bogen(130) # "" Umrechnung ins Bogenmass
h=1e-10
while abs(alpha-alpha0)+abs(gamma-gamma0)>1e-14 and n<100:
alpha=alpha0
gamma=gamma0
hcq=(ha*SIN(alpha)/SIN(gamma))**2;
hcqa=(ha*SIN(alpha+h)/SIN(gamma))**2; # alpha +h
hcqg=(ha*SIN(alpha)/SIN(gamma+h))**2; # gamma +h
k=1-(SIN(alpha)/(SIN(alpha+gamma)+SIN(gamma)))**2;
f1=hcq*SIN(gamma)/SIN(alpha)**2/SIN(alpha+gamma)*k-wa**2;
k=1-(SIN(alpha+h)/(SIN(alpha+gamma+h)+SIN(gamma)))**2;
f2=hcqa*SIN(gamma)/(SIN(alpha+h))**2/SIN(alpha+gamma+h)*k-wa**2;
fa=(f2-f1)/h;
k=1-(SIN(alpha)/(SIN(alpha+gamma+h)+SIN(gamma+h)))**2;
f2=hcqg*SIN(gamma+h)/(SIN(alpha))**2/SIN(alpha+gamma+h)*k-wa**2;
fg=(f2-f1)/h;
k=1-(SIN(alpha+gamma)/(SIN(alpha)+SIN(gamma)))**2;
g1=hcq*SIN(gamma)/SIN(alpha)/(SIN(alpha+gamma))**2*k-wb**2;
k=1-(SIN(alpha+gamma+h)/(SIN(alpha+h)+SIN(gamma)))**2;
g2=hcqa*SIN(gamma)/SIN(alpha+h)/(SIN(alpha+gamma+h))**2*k-wb**2;
ga=(g2-g1)/h;
k=1-(SIN(alpha+gamma+h)/(SIN(alpha)+SIN(gamma+h)))**2;
g2=hcqg*SIN(gamma+h)/SIN(alpha)/(SIN(alpha+gamma+h))**2*k-wb**2;
gg=(g2-g1)/h;
det=fa*gg-fg*ga;
alpha0=alpha-(f1*gg-g1*fg)/det;
gamma0=gamma-(g1*fa-f1*ga)/det;
n=n+1;
beta=pi-alpha-gamma;
c=ha/SIN(beta);
b=ha/SIN(gamma);
a=ha*SIN(alpha)/SIN(gamma)/SIN(beta);
t1=(b*c*(1-a**2/(b+c)**2))**(1/2)-wa;
t2=(a*c*(1-b**2/(a+c)**2))**(1/2)-wb;
t3=b*SIN(gamma)-ha;
print('a =',a,' b =',b,' c =',c,n,'\n');
print('alpha =',wgrad(alpha));
print('beta =',wgrad(beta));
print('gamma =',wgrad(gamma));
if t1**2+t2**2+t3**2 > 1e-15 or a<0 or b<0 or c<0: print('\n','Fehler !')
else: print('\n','Check ok !')
\sourceoff
|
Profil
|
ebikerni hat die Antworten auf ihre/seine Frage gesehen. |
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|