Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Formel umstellen...
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Mathe-Forum -> Formel umstellen...
 
Autor Nachricht
zillion42
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.06.2005
Beiträge: 4

BeitragVerfasst am: 08 Jun 2005 - 19:12:34    Titel: Formel umstellen...

Hallo

War schon immer schlecht in Algebra.. Habe eine Formel die errechnet mir aus Längen,- und Breiten Graden koordianten in 2 Dimensionaler unverzerrter Form.

Also Eingabe Werte sind Länge (inLongitudeGrad) und Breite (inLatitudeGrad).

Ausgabe Werte sind outX und out Z.

Alle Andren Variablen sind bekannt... Die Formel funktioniert super.... Sie lautet.

realAng = (inLongitudeGrad-MiddleLongitude)/ToAngleW_E/ToDegree;
realLen = lenSouth-(inLatitudeGrad-EndSouth)/ToLengthN_S;
outX = centerX-realLen*Math.cos(realAng);
outZ = centerZ+realLen*Math.sin(realAng);

MEIN PROBLEM:

Ich würde die Formel gerne umstellen so das ich sie mit outX und outZ füttere und sie mir inLongitudeGrad und inLatitudeGrad ausgiebt... Weiss aber nicht wie...

Hoffe ihr könnt mir helfen...
s.ash
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.06.2005
Beiträge: 44

BeitragVerfasst am: 09 Jun 2005 - 15:09:16    Titel:

Ich hätte da eine Lösung für dich, sie ist aber wie immer ohne Gewähr, also bei Möglichkeit überprüfen lassen.
Ich hab die Formel vereinfacht, indem ich für die langen Namen Buchstaben eingesetzt habe.
Deswegen wird aus:
realAng = (inLongitudeGrad-MiddleLongitude)/ToAngleW_E/ToDegree;
realLen = lenSouth-(inLatitudeGrad-EndSouth)/ToLengthN_S;
outX = centerX-realLen*Math.cos(realAng);
outZ = centerZ+realLen*Math.sin(realAng);
folgendes:
a = (b - c)/d/e
f = g - (h - i)/k
l = m - f*cos(a)
o = n + f*sin(a)


f (realLen):
f = wurzel((o-n)^2-(m-l)^2);
a (also realAng):
a = arccos((m-l)/f);
b (inLongitudeGrad):
b = a*d*e+c
h (inLatitudeGrad):
h = (g*h)*k+i;

Du musst jetzt nur für die Buchstaben die Namen der Variablen einsetzten.
Ich hoffe es ist so verständlich.
ich werd später noch die Umformung reinstellen,dann kannst dus noch einmal überprüfen.
zillion42
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.06.2005
Beiträge: 4

BeitragVerfasst am: 09 Jun 2005 - 17:16:54    Titel:

Hallo,

Vielen vielen Dank... Habs noch nicht ausprobiert.... Wenn ich jetzt nicht schusselig war, dann sähe die Umformung ja so aus:

f (realLen):
f = wurzel((o-n)^2-(m-l)^2);
a (also realAng):
a = arccos((m-l)/f);
b (inLongitudeGrad):
b = a*d*e+c
h (inLatitudeGrad):
h = (g*h)*k+i;


f (realLen):
realLen = wurzel((outZ-centerZ)^2-(centerX-outX)^2);

a (also realAng):
realAng = arccos((centerX-outX)/realLen);

b (inLongitudeGrad):
inLongitudeGrad = realAng * ToAngleW_E * ToDegree + MiddleLongitude

h (inLatitudeGrad):
inLatitudeGrad = (lenSouth * inLatitudeGrad) * ToLengthN_S + EndSouth;

Das einzige was daran leider nicht gehen kann, ist der letzte Ausdruck:

h = (g*h)*k+i;

inLatitudeGrad = (lenSouth * inLatitudeGrad) * ToLengthN_S + EndSouth;


Denn das erfordert ja das ich "h" also "inLatitudeGrad" habe bevor ich es errechnet habe... Ich hoffe ich verstehe dich nicht falsch...

Vielleicht kann man es so ja auch einfach nicht hinkriegen... Daher dacht ich mir ich poste einfach nochmal die komplette Formel, um aus inLongitudeGrad und inLatitudeGrad, outX und outZ zu errechnen...


ZuGrad = 180/Math.PI;

NullX = 5000000;
NullZ = 6600000;

MitteX = 11465000-NullX;
MitteZ = 6500000-NullZ;

pn40x24_X = 4468608.57-NullX; <---Punkt 40dgN : 24dgE
pn40x24_Z = 5730893.72-NullZ;

pn48x24_X = 5357858.31-NullX; <---Punkt 48dgN : 24dgE
pn48x24_Z = 5828649.53-NullZ;

pn40x42_X = 4468608.57-NullX; <---Punkt 40dgN : 42dgE
pn40x42_Z = 7269106.20-NullZ;

pn48x42_X = 5357858.31-NullX; <---Punkt 48dgN : 42dgE
pn48x42_Z = 7171350.00-NullZ;

LängeNord = Wurzel((pn48x24_X-MitteX)^2+(pn48x24_Z-MitteZ)^2);
LängeSüd = Wurzel((pn40x24_X-MitteX)^2+(pn40x24_Z-MitteZ)^2);

LängeNordSüd = LängeSüd-LängeNord;

WahrerWinkelMaxLongitude = atan((pn40x24_Z-MitteZ)/(pn40x24_X-MitteX))*ZuGrad;

EndWest = 24;
EndEast = 42;
EndNorth = 48;
EndSouth = 40;

MiddleLongitude = (EndWest+EndEast)/2;
ZuLängeN_S = (EndNorth-EndSouth)/LängeNordSüd;
ZuWinkelW_E = (MiddleLongitude-EndWest)/WahrerWinkelMaxLongitude;

WahrerWinkel = (inLongitudeGrad-MiddleLongitude)/ZuWinkelW_E/ZuGrad;
WahreLänge = LängeSüd-(inLatitudeGrad-EndSouth)/ZuLängeN_S;
outX = MitteX-WahreLänge*Cos(WahrerWinkel);
outZ = MitteZ+WahreLänge*Sin(WahrerWinkel);


Ziel ist es wie gesagt aus outX und outZ, inLongitudeGrad und inLatitudeGrad zu errechnen, also die Formel sozusagen umzukehren...
s.ash
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.06.2005
Beiträge: 44

BeitragVerfasst am: 09 Jun 2005 - 17:21:57    Titel:

Entschuldige mich viel Mals!!!!!

Mein Fehler

das muss natürlich

h=(g-f)*k+i

heißen!!!!!!!
zillion42
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.06.2005
Beiträge: 4

BeitragVerfasst am: 09 Jun 2005 - 17:29:14    Titel:

Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy

Ich bin geholfen....

Herzlich Willkommen, zillion42, auf dem Matheplaneten!

Ich kenne leider nicht die Programmiersprache,
in der Deine Formeln geschrieben sind.

Aber ich nehme mal an, alle vorkommenden "Wörter" stehen
für Variablen oder Konstanten, die ich so übernehmen kann.
Für die Rechenoperationen verwende ich die übliche Darstellung,
das mußt Du Dir selbst in Deine Programmiersprache übertragen.


Die Umkehrung Deiner Formeln müßte so funktionieren:



realAng=arctan((outZ-centerZ)/(centerX-outX))


realLen=sqrt((outZ-centerZ)^2+(centerX-outX)^2)


inLongitudeGrad=realAng*ToAngleW\_E*ToDegree+MiddleLongitude


inLatitudeGrad=(lenSouth-realLen)*ToLengthN\_S+EndSouth



Liebe Grüße, Franz
s.ash
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.06.2005
Beiträge: 44

BeitragVerfasst am: 09 Jun 2005 - 17:30:17    Titel:

Hier noch mal die Herleitung

I. a = (b - c)/d/e

II. f = g - (h - i)/k

III. l = m - f*cos(a)

IV. o = n + f*sin(a)




III. m - l = f*cos(a)
IV. o - n = f*sin(a)

III. cos(a) = (m-l)/f
IV. sin(a) = (o-n)/f

----------
(sin(a))^2+(cos(a))^2 = 1 'das ist so
sin(a) = wurzel(1 - (cos(a))^2))
----------
dies jetzt in die IV. einsetzten:

IV. wurzel(1-(cos(a))^2) = (o-n)/f

jetzt die III. in die IV. einsetzten:

wurzel(1-((m-l)/f)^2) = (o-n)/f

jetzt quadriert man alles (beide Seiten),
die Wurzel fällt weg:

1-((m-l)/f)^2 = ((o-n)^2/f^2

jetzt beide Seiten mit f^2 multiplizieren:

f^2 - (m-l)^2 = (o-n)^2


===> f = wurzel((o-n)^2-(m-l)^2)


für a musst du die III. Gleichung umstellen

===> a = arccos((m-l)/f)


für b stellst du die I. um

===> b = a*d*e+c


für h die II. umstellen

===> h = (g - f)*k + i


noch einmal alle vier:
===> f = wurzel((o-n)^2-(m-l)^2)
===> a = arccos((m-l)/f)
===> b = a*d*e+c
===> h = (g - f)*k + i

ich hoffe ich hab das dies mal richtig eingegeben
zillion42
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.06.2005
Beiträge: 4

BeitragVerfasst am: 09 Jun 2005 - 17:32:08    Titel:

Nochmal vielen Dank für deine Mühen... Hoffe das hat dir auch was gebracht.

Also Falls du irgendwann mal was mit Universal Transversaler Kartenprojektion am Hut hast, kannst du es ja mal damit probieren...

Bis bald

zillion42
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Mathe-Forum -> Formel umstellen...
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum