Geometriaa: epäsymmetrinen monitahokas

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Pitäisi saada laskettua epäsymmetrisen "tetraedrin" (monitahokkaan joka muodostuu neljästä epäsäännöllisestä kolmiosta) yhden kärkipisteen paikka koordinaatistossa, kun tiedetään kolmen muun pisteen paikat, kaikkien särmien pituudet ja monitahokkaan kaikki kulmat.

http://www.math.wichita.edu/history/Ima ... edron2.gif

Eli muuten linkin kuvan tapainen tetraederi, mutta epäsäännöllisillä kolmioilla. Kaikkien kolmioiden särmien pituudet tiedetään. Kolmen alimman "nurkkapisteen" koordinaatit tiedetään. Mikä on ylimmän pisteen koordinaatti?

Olen nyt muutaman tunnin yrittänyt ratkaista, mutta ei aukea. Tarkoituksena saada siis tarkka ratkaisu, ei numeerisesti iteroimalla saatu.

Kommentit (9)

Vierailija

Pikaisesti miettimällä (laskematta itse lävitse):

Ainankin yksi lähestymistapa olisi seuraava:

Tunnetut pisteet ovat (x1,y1,z1), (x2,y2,z2) ja (x3,y3,z3).

Jos tiedät kaikkien särmien pituudet, tiedät siis neljännen pisteen etäisyyden kaikista kolmesta (Olkoot r1,r2 ja r3).

viimeinen piste on siis x4,y4,z4.

Pisteen etäisyys r, origoonhan on r^2=x^2+y^2+z^2. Ja vastaavasti kahden pisteen etäisyys toisiinsa:
r^2=(x1-x2)^2+(y1-y2)^2+(z1-z2)^2.

Joten saat neljännelle pisteelle kolme yhtälöä (joissa kolme tuntematonta):

r1^2=(x1-x4)^2+(y1-y4)^2+(z1-z4)^2
r2^2=(x2-x4)^2+(y2-y4)^2+(z2-z4)^2
r3^2=(x3-x4)^2+(y3-y4)^2+(z3-z4)^2

Kolme yhtälöä, kolme tuntematonta. Eli nuo pitäisi saada ratkaistua, toki siinä on hieman vääntämistä.

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005
rottiman

Onko tuota yhtälöryhmää mahdollista ratkaista muuten kuin numeerisesti?



Luulisin, että ryhmälle löytyy myös analyyttinen ratkaisu, koska kyse on vain kolmen pallon leikkauspisteestä. Tosin käsin sellaisen vääntäminen ei taida helposti onnistua.

Kokeile jotakin symbolimatematiikkaohjelmistoa (Maple, Mathematica, Reduce, Maxima tms.)

Vanha jäärä

Vierailija

Jooh tuon laskeminen käsin on ns. tylsää, joten ilman hyvää syytä sitä tuskin kannattaa alkaa tekemään. (Laskurutiinin hakeminen esim voi olla riittävän hyvä syy)

Pikaisesti hietin tuon kuitenkin mathematicaan, ja veikkaisin että laskurutiinikin voi kannattaa hakea jostain mielyttävämmästä. Yksinkertaistin alkuparametreja hieman, (eli määrittelin ekan pisteen origoksi, tokan pisteen samalle akselille (x2=0) ja vielä yhden pituuksista ykköseksi. (Kaikki nämä helpottavat kaavoja mutta voit muokata mitkä hyvänsä lähtöarvot toteuttamaan nämä ehdot).

Jokatapauksessa jopa tähän mathematikan tarjoamat vastaukset ovat hieman työlään näköisiä tuottaa perinteisesti. Tässä toinen, toinen lienee jotakuinkin sama, poislukien pari miinusmerkkiä:
[size=85:3b3bdunj]
x4 = ((x3^4 y2((y2^2 + z2^2)) +
x3^2 y2(((-y2^3) y3 +
y2 y3 (((-1) + r2^2 - z2^2)) +
y2^2 ((1 - r3^2 + y3^2 - z2 z3 + z3^2)) +
z2 (((((-1) + r2^2)) z3 - z2^2 z3 +
z2 ((1 - r3^2 + y3^2 +
z3^2)))))) + ((y3 z2 -
y2 z3)) [Sqrt](((-((x3^2 ((y2^2 +
z2^2)) + ((y3 z2 - y2 z3))^2)))
((x3^4 y2^2 + x3^2 ((1 + r2^4 - 2 r3^2 y2^2 + y2^4 - 2 y2 y3 -
2 y2^3 y3 + 2 y2^2 y3^2 + 2 z2^2 +
2 y2^2 z2^2 - 2 y2 y3 z2^2 + z2^4 -
2 r2^2 ((1 + y2^2 - y2 y3 + z2^2)) +
2 y2^2 z3^2)) + ((y2^2 y3 +
y3 ((1 - r2^2 + z2^2)) +
y2 (((-1) + r3^2 - y3^2 -
z3^2))))^2)) + ((x3^2 ((((1 -
r2^2 + y2^2 - y2 y3)) z2 + z2^3 +
y2^2 z3)) - ((y3 z2 -
y2 z3)) (((-y2^2) y3 +
y3 (((-1) + r2^2 - z2^2)) +
y2 ((1 - r3^2 + y3^2 +
z3^2))))))^2))))/((2 x3 y2
((x3^2 ((y2^2 + z2^2)) + ((y3 z2 - y2 z3))^2)))),

y4 = (((-y2^3) y3 z2 z3 + y2^4 z3^2 +
x3^2 y2 ((y2^3 + y3 z2^2 +
y2 ((1 - r2^2 + z2^2 - z2 z3)))) +
y2 y3 z2 (((((-1) + r2^2)) z3 - z2^2 z3 +
z2 ((1 - r3^2 + y3^2 + z3^2)))) -
y2^2 z3 (((((-1) + r2^2)) z3 - z2^2 z3 +
z2 ((1 - r3^2 + y3^2 + z3^2)))) -
z2 [Sqrt](((-((x3^2 ((y2^2 +
z2^2)) + ((y3 z2 - y2 z3))^2)))
((x3^4 y2^2 + x3^2 ((1 + r2^4 - 2 r3^2 y2^2 + y2^4 - 2 y2 y3 -
2 y2^3 y3 + 2 y2^2 y3^2 + 2 z2^2 +
2 y2^2 z2^2 - 2 y2 y3 z2^2 + z2^4 -
2 r2^2 ((1 + y2^2 - y2 y3 + z2^2)) +
2 y2^2 z3^2)) + ((y2^2 y3 +
y3 ((1 - r2^2 + z2^2)) +
y2 (((-1) + r3^2 - y3^2 -
z3^2))))^2)) + ((x3^2 ((((1 -
r2^2 + y2^2 - y2 y3)) z2 + z2^3 +
y2^2 z3)) - ((y3 z2 -
y2 z3)) (((-y2^2) y3 +
y3 (((-1) + r2^2 - z2^2)) +
y2 ((1 - r3^2 + y3^2 +
z3^2))))))^2))))/((2 y2
((x3^2 ((y2^2 + z2^2)) + ((y3 z2 - y2 z3))^2)))),

z4 = ((y3^2 z2 - r2^2 y3^2 z2 + y3^2 z2^3 - y2^3 y3 z3 +
x3^2 ((((1 - r2^2 + y2^2 - y2 y3)) z2 + z2^3 +
y2^2 z3)) +
y2^2 ((z3 - r3^2 z3 + z3^3 + y3^2 ((z2 + z3)))) -
y2 y3 ((z3 - r2^2 z3 + z2^2 z3 +
z2 ((1 - r3^2 + y3^2 +
z3^2)))) + [Sqrt](((-((x3^2 ((y2^2 +
z2^2)) + ((y3 z2 - y2 z3))^2)))
((x3^4 y2^2 + x3^2 ((1 + r2^4 - 2 r3^2 y2^2 + y2^4 - 2 y2 y3 -
2 y2^3 y3 + 2 y2^2 y3^2 + 2 z2^2 +
2 y2^2 z2^2 - 2 y2 y3 z2^2 + z2^4 -
2 r2^2 ((1 + y2^2 - y2 y3 + z2^2)) +
2 y2^2 z3^2)) + ((y2^2 y3 +
y3 ((1 - r2^2 + z2^2)) +
y2 (((-1) + r3^2 - y3^2 -
z3^2))))^2)) + ((x3^2 ((((1 -
r2^2 + y2^2 - y2 y3)) z2 + z2^3 +
y2^2 z3)) - ((y3 z2 -
y2 z3)) (((-y2^2) y3 +
y3 (((-1) + r2^2 - z2^2)) +
y2 ((1 - r3^2 + y3^2 +
z3^2))))))^2))))/((2 ((x3^2
((y2^2 + z2^2)) + ((y3 z2 - y2 z3))^2)))))
[/size:3b3bdunj]

Voi toki olla että tuo supistuu jotenkin nätisti, mutta veikkaanpa että vaihtoehdot ovat joko käyttää matemaattista ohjelmaa, tyytyä laskettuun likiarvoon tai miettiä jokin toinen lähestymistapa. (ensin tulee mieleen vaikka yrittää määrittää kahden tahon rajaaman ympyrän yhtälö, sitten vaihtaa muuttujia käsittämään se, ja etsiä se piste jonka kanssa ympyrä leikkaa viimeisen, tms)

Jokatapauksessa jos tarkoitus oli lähinnä varmistaa onko sille analyyttinen ratkaisu, niin pyöräytys jossain matemaattisessa ohjelmassa luultavasti antaa tyydyttävästi myöntävän vastauksen. (Poislukien tilanne jossa pitää mielyttää matemaatikkoa joka haluaa ehdottoman todistuksen, jolloin edessä on pitkähkö luova istunto kynän ja paperin kanssa)

Vierailija

Tuossahan oli annettu särmien pituuksien lisäksi kaikki monitahokkaan kulmat. Ratkaisu ehkä löytyy niiden avulla helpommin. Tai sitten voi laskea välivaiheena kahden kolmion korkeusjanat.

Vierailija
Cymoth
Joten saat neljännelle pisteelle kolme yhtälöä (joissa kolme tuntematonta):

r1^2=(x1-x4)^2+(y1-y4)^2+(z1-z4)^2
r2^2=(x2-x4)^2+(y2-y4)^2+(z2-z4)^2
r3^2=(x3-x4)^2+(y3-y4)^2+(z3-z4)^2

Kolme yhtälöä, kolme tuntematonta. Eli nuo pitäisi saada ratkaistua, toki siinä on hieman vääntämistä.




Muutan merkintöjä sen verran, että etsitty piste olisi (a , b , c). Jos valitaan piste (x1 , y1 , z1) origoksi, niin ensimmäinen yhtälö tulee muotoon

r1^2 = a^2 + b^2 + c^2

Kun toisesta yhtälöstä avataan sulut, saadaan

r2^2 = (x2^2 + y2^2 + z2^2) + (a^2 + b^2 + c^2) -2*(ax2 + by2 + cz2)

Ensimmäinen osa on siis kärkipisteen origosta mitatun etäisyyden neliö (osataan laskea, merkitään tätä vaikka R2^2) ja toinen osa on tunnettu etäisyys r1^2. Kun siirtelee termejä, saadaan yhtälö palautettua lineaariseksi:

ax2 + by2 + cz2 = ½(r1^2 + R2^2 - r2^2)

Vastaavasti kolmas yhtälö tulee muotoon

ax3 + by3 + cz3 = ½(r1^2 + R3^2 - r3^2)

Etsi näiden tasojen leikkauksesta pisteet, joiden etäisyys origosta on r1. Jos pisteitä on useampia, niin valitse niistä se, jolla kulmat tulevat oikeiksi.

Vierailija

Onnistuisiko tämä homma vektoreilla yhtään lyhyemmin? En jaksa itse alata selvittämään asiaa sen tarkemmin että saisin vastattua itselleni.

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005
Diquark
Onnistuisiko tämä homma vektoreilla yhtään lyhyemmin? En jaksa itse alata selvittämään asiaa sen tarkemmin että saisin vastattua itselleni.

Samaa mietiskelin, kun sivujen väliset kulmat ja sivujen pituudet ovat ovat tiedossa. Tästä seuraa, että myös vektoreiden väliset pistetulot on helposti lausuttavissa. Jos en nyt väärin kuvittele, tuosta saadaan lineaarisia yhtälöitä tuntemattoman pisteen koordinaattien laskemiseksi - tosin nyt on aivan liian kuumaa, että ajatus kulkisi selkeästi.

Vanha jäärä

Vierailija

Yksinkertaistettuun vektoriratkaisuun tarvii tietää mikä kärkipisteistä on tuntematon.

Tiedetään kaksi kolmiota joiden sivujen vektorit ovat A,B,C ja D,B,E joilla on yhteinen kärkipiste P0 joka on tunnettu, sekä toinen yhteinen kärkipiste X0 joka ei ole tunnettu. Vektoreista B, C, E ei suorilta käsin tiedetä muuta kuin niiden pituus. A ja D ovat määritelty täysin.

Vektorit A ja D määrittävät tason jonka origo on P0, ja samalla toimivat sen yksikkövektoreina niin että kärkipisteen sijainti voidaan projisoida tasoon:

V = (|B|/|C|)*A + (|B|/|E|)*D

Nyt kun meillä on vektori pisteestä P0 siihen pisteeseen tasolla jonka yläpuolella monikulmion kärkipiste majailee, meillä on itseasiassa suorakulmainen kolmio jonka hypotenuusan pituus on vektori B:n pituus, alempi kateetti on vektori V ja pystykateetti X on tuntematon, mutta triviaali laskea koska tiedetään että se on kohtisuorassa tasoon nähden, ja sen pituus voidaan ratkaista pythagoraan lauseella.

Kun tämä vektori on ratkaisu, voidaan vektori B määritellä täydellisesti kahden kateettivektorin summana V+X, jolloin kärkipisteen X0 sijainti saadaan laskemalla yhteen vektorit origosta pisteeseen P0 ja B.

Mikäli tässä ei tapahtunut hirveitä ajatusvirheitä.

Uusimmat

Suosituimmat