bonyolult egyenletrendszer egyszerűsítése, computer algebra system

Fórumok

Sziasztok,

hobbiprojektem magját ma fejeztem be, egy bonyolult egyenletrendszer. a projektet egyelőre yacas-ban írom, és amint elkészültem papíron az egyenletekkel, ráengedtem a Solve() függvényt, ami már órák óra megy, és kezdek kétségbe esni, mert annyira nem lehet bonyolult.

a fenti művelettől azt vártam, hogy gyorsan dob egy eredményt. nem tette, úgyhogy felmerültek bennem a következő kérdések:

egyik kérdésem az, hogy szerintetek az alábbi egyenleteket hogyan lehetne átírni valahogyan egy Java metódusba? mondjuk, a metódus megkapná az A*, B*, cu*, ra* változók értékeit, és visszatérne a C*, D* változók értékeivel. azt tudom, hogy egyenletrendszermegoldó képessége nincs annak a nyelvnek, de talán át lehetne írni valahogyan..

szerintetek hogyan lehetne a fentieket egyszerűbb alakra hozni?

egy másik kérdésem, hogy ti melyik cas rendszereket használtátok, mik a tapasztalataitok. melyik a legnépszerűbb? érdemes cas rendszerre költeni (maxima, maple), vagy az opensource alternatívák vannak legalább olyan jók? én a yacas-sal és a maxima-val ismerkedtem. a yacas volt szimpatikus, de az oo lehetősége nekem mindkettőből nagyon hiányzik.

legvégül a kérdéses borzadmány:


get2Ddistance(x1,y1,x2,y2):=Sqrt((x1-x2)^2+(y1-y2)^2);

(Cx-Ax)^2+(Cy-Ay)^2+(Cz-Az)^2=(currentWidth*ratioWtoAC)^2 , és
(Cx-Bx)^2+(Cy-By)^2+(Cz-Bz)^2=(currentWidth*ratioWtoBC)^2 , továbbá,
(Dx-Cx)^2+(Dy-Cy)^2+(Dz-Cz)^2=(currentWidth*ratioWtoCD)^2 , ahol, 
(Dx-Bx)^2+(Dy-By)^2+(Dz-Bz)^2=(currentWidth*ratioWtoBD)^2 , ráadásul
get2Ddistance(Cx,Cy,0,0)/get2Ddistance(Dx,Dy,0,0)=get2Ddistance(Ax,Ay,0,0)/get2Ddistance(Bx,By,0,0) , de
Cz<0 , és
Dz>0

válaszaitokat előre is köszönöm,
zp

Hozzászólások

Ha jol ertem akkor:

currentWidth, ratioWto??, A[xyz], B[xyz] adott
es
C[xyz], D[xyz] -re vagy kivancsi.

Ekkor:


(Cx-Ax)^2+(Cy-Ay)^2+(Cz-Az)^2=(currentWidth*ratioWtoAC)^2
(Cx-Bx)^2+(Cy-By)^2+(Cz-Bz)^2=(currentWidth*ratioWtoBC)^2

C, ket, egy A es egy B kozeppontu, gomb metszokoren van, legyen a kor sugara rC (kiszamithato: A, B, ratioWto[AB]C -bol).
Ha nem metszenek nincs mo.


(Dx-Bx)^2+(Dy-By)^2+(Dz-Bz)^2=(currentWidth*ratioWtoBD)^2

D pedig egy B kozeppontu gomb felszinen, legyen a gomb sugara rD = currentWidth*ratioWtoBD.


(Dx-Cx)^2+(Dy-Cy)^2+(Dz-Cz)^2=(currentWidth*ratioWtoCD)^2

Tovabba D egy a C köre körüli tórusz belsejeben van, legyen a torusz vastagsaga 2*rT, rT = currentWidth*ratioWtoCD.

Ha a torusz es az rD sugaru gomb nem metsz nincs mo.

Eddig tudjuk, hogy C egy koron, D egy gombfelszin szeleten van.


Cz<0
Dz>0

miatt C es D nem lehet tavolabb a z=0 siktol mint rT. Igy C lehetseges ertekei a korvonal olyan pontjaira korlatozodik, melyekre |Cz| < rT, D pedig a gombelszin azon pontjai, melyek a lehetseges C-k koruli rT gombok belsejeben vannak.

Ha C halmazának vagy D halmazának nincs ilyen tulajdonságu pontja, nincs megoldás.


get2Ddistance(Cx,Cy,0,0)/get2Ddistance(Dx,Dy,0,0)=get2Ddistance(Ax,Ay,0,0)/get2Ddistance(Bx,By,0,0)

Jobb oldala szamithato, ebbol kovetkezik, hogy C es D egy-egy origo kozeppontu gombon van, amely gombok sugarának aránya állandó. Ezen gombokre további korlátozás, hogy csak azok a sugarak ervenyesek, amelyekre a felszin tartalmaz C ill. D lehetseges ertekei kozul pontot.

Konkluzio:
Szerintem nem egyertelmuen megoldhato. C a korvonal D a gombfelszin egy pontja.

huha..
dejszen a papírmodellem alapján csak egy megoldás van (ha az utolsó két sor nem lenne, akkor kettő megoldás is előfordulhat), hacsak nem választom meg tévesen a paramétereket, mert akkor nem lehet megoldani.

ez gyakorlatilag két háromszög, amelyeknek van egy közös oldala, és az így kapott alakzat vetületének - ami egy négyszög - bizonyos két - szemközti - oldala azonos szöget zár be az origóval. és az alakzat csúcsaira vagyok kíváncsi.
mit gondolsz, ez alapján megoldható?

EDIT: jé, ugyanazt másoltam be..

Azonos szoget zar be az origoval -- ennek nincs sok ertelme, az origo egy pont.
Vegtelen sok megoldas van - mar persze ha 1 van.
4 Pont van a terben A, B, C, D. Adott AC, BC, CD es CA hossza. Tovabba, ha a pontok vetuletei xy sikon A', B', C', D' ekkor adott meg, hogy |C'0| / |D'0| = |A'0| / |B'0|. Jol ertem?
Mert ezt barmi szoggel forgatod el a z tengely korul ugyanugy megoldas lesz...
[szerk]

Sot z iranyu eltolas is vegtelen sok ugyanolyan megoldastad, - felteve, hogy a Cz < 0 stb felteteleid meg mindig teljesulnek, ui. a vetulet ugyan az marad ergo az utolso aranyod is ugyanaz marad, a tavolsagaid meg trivialis hogy megmaradnak.

[/szerk]
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.

Nem :)

Ha ertenem mit akarsz kiszamolni milyen adatokbol, akkor jobban tudnek segiteni.

ez gyakorlatilag két háromszög, amelyeknek van egy közös oldala, és az így kapott alakzat vetületének - ami egy négyszög - bizonyos két - szemközti - oldala azonos szöget zár be az origóval. és az alakzat csúcsaira vagyok kíváncsi.

Igaza van az elottem szolonak, egy pont es egy egyenes kozott nem ertelemezunk hajlaszoget :).

Amit eddig sejtek a feladvanybol: van egy terbeli szakasz, amire ket illeszkedo sikon keresunk egy-egy olyan pontot, ami a z=0 sik ket oldalan van. Mit ismerunk? A sikok hajlasszoget? A pontok vmilyen tulajdonsagat?