Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Matematiikan soveltamista ohjelmointiin

Sivun loppuun

Turambar [09.06.2004 09:30:06]

#

Tässä mietiskelin, että mitenköhän differentiaali- ja integraalilaskentaa voisi hyödyntää ohjelmoinnissa? Tarkoitan siis kaikkea ihan raja-arvosta, derivaatasta, osittaisderivaatasta jne. lähtien.

Fysiikkasimulaattorissa toki derivoinnista voisi olla apua, jos esim. rata on annettu funktiona. Derivaatasta saa nopeasti selville esim. kiihtyvyyden tietyllä hetkellä.

Antti [09.06.2004 09:49:58]

#

Hmmm... kyllähän noita tottakai voi aina käyttää. Matemaattiset yhtälöthän ovat ohjelmoinnin logiikan perusta. Eri asia on mihin esim. integraalilaskentaa voi suoraan soveltaa - rehellisesti sanottina ei nyt ihan heti tule mieleen hyviä esimerkkejä.

Käytetäänhän esim matriisiderivointia tilastollisessa laskennassa ja uskoisin pelien grafiikkaengineiden käyttävän niitä hyödykseen...

Turambar [09.06.2004 09:53:24]

#

Joo, tottakai niitä voi käyttää ja niitä käytetään, lähinnä haenkin sovelluksen kohteita ja tapoja. Itselläni kun ei myöskään tule mitää heti mieleen.

Ja tuosta matriisiderivoinnista en sano mitään, koska minulle ei ole opetettu / en ole opetellut matriiseja.

hunajavohveli [09.06.2004 10:14:41]

#

En oikein tiedä vielä noista differentiaali-, ja integraalilaskennasta, mutta olen kuullut jotain, että niillä voi selvittää epäsäännöllisten kappaleiden pinta-aloja ja tilavuuksia tjsp. Voin olla kyllä täysin väärässä, mutta ellen ole, niin ehkä niitä voisi soveltaa jotenkin törmäystarkistuksiin.

Sattuuko joku muuten tietämään jotain kaavaa, joka kertoisi onko piste monikulmion sisällä, ja toimisi jokaisessa monikulmiossa. Esimerkiksi ympyrän kaava on yksinkertainen:
Jos pisteen etäisyys ympyrän keskipisteestä on pienempi kuin ympyrän säde, piste on ympyrän sisällä

Turambar [09.06.2004 10:42:57]

#

Olet oikeassa, integroinnilla voidaan selvittää epäsäännölisten kappaleiden tilavuuksia sekä pinta-aloja. Myös esim. käyrien leikkauspisteiden välisen alan laskeminen onnistuu. Tuo törmäystarkoituksiin soveltaminen kuulostaa minusta oudolta, mielestäni niitä ei voi siihen soveltaa.

Tuosta kysymästäsi monikulmio-ongelmasta en oikein tiedä, luulisin, että monikulmion yhtälön tunteminen auttaa asiaa. Siinpä sitä sitten onkin ongelmaa.

setä [09.06.2004 18:40:03]

#

Integrointia voi näppärästi soveltaa ohjelmointiin numeerisesti. Esim. se pomppivat planeetat koodivinkki on juuri numeerisen integroinnin sovellus. Ensin määrätään voimat, niistä kiihtyvyydet, kiihtyvyydestä ingoimalla saadaan nopeus ja edelleen integroimalla saadaan sijainti. Monia esimerkkejä löytyy fysiikasta, joiden ratkaisu onnistuu melko helposti numeerisesti mutta matemaattista ratkaisua ei löydy millään.
Tuo monikulmioratkaisu voisi olla esim. sellainen, että värjätään kyseinen monikulmio ja testataan sitten annetun pisteen kohdalta väri.

hunajavohveli [09.06.2004 18:46:27]

#

setä kirjoitti:

Tuo monikulmioratkaisu voisi olla esim. sellainen, että värjätään kyseinen monikulmio ja testataan sitten annetun pisteen kohdalta väri.

Aivan, tuota olenkin käyttänyt, mutta olisin tarvinnut matemaattisen ratkaisun. No, eiköhän sellainen joskus tule vastaan. Sitä paitsi värjääminen ei oikein toimi sellaisiin monikulmiohin, joiden sivun menevät ristiin. Esim:

|\    /|
| \  / |
|  \/  |
|  /\  |
| /  \ |
|/    \|

setä [09.06.2004 18:57:18]

#

Koska mulla on pitempäänkin ollut taipumus jäädä ongelmakoukkuun, siis mieletön himo ongelmien ratkaisuun, tuli tuotakin mietittyä. Jos monikulmio ilmaistaan peräkkäisten kärkipisteiden koordinaatteina, voidaan laskea suuntakulmat annetusta pisteestä monikulmion kärkipisteisiin. Jos näiden kulmien erotukset summataan, saadaan selville onko piste monikulmion sisällä vai ulkona. Erotusten summa on 360 astetta, jos piste on sisällä ja 0 astetta jos ulkona. Luulisin näin. En ole testannut.

Spirits [10.06.2004 00:44:39]

#

Ongelman ratkaisuhan kieltämättä on kivaa, mutta kun ongelma mitä tod.näk.:in on jo ratkaistu useampaan kertaan muiden toimesta niin voi aikaa säästää etsimällä näitä valmiita ratkaisuja.

Esim(englanniksi):

http://astronomy.swin.edu.au/~pbourke/geometry/insidepoly/

Tuolta löytyy ko. ongelmaan 2D ja 3D ratkaisu. Yksi niistä on tuo sama jonka setä jo kertoi. Kaikista on C-koodi esimerkki joten ei välttämättä tarvitse edes osata englantia.

setä [10.06.2004 09:38:00]

#

Henkistä kuntojumppaa

thefox [10.06.2004 15:08:08]

#

Kyllä derivoinnille ja integroinnille aina käyttöä löytyy. Esim. jossain C64-diskmagissä oli melko perverssi tapa laskea kertolaskuja 65xx-prosessorilla nopeasti, tapa oli ilmeisesti johdettu osittain integroimalla (ainakin itse sen mielenkiinnosta tein niin).

Derivoinnista voisi olla hyötyä vaikkapa laskettaessa funktion normaalia; tiedetään esim. mihin suuntaan pallo pomppaa tippuessaan tietyn funktion kuvaamalle maastolle.

Jaska [11.06.2004 14:37:49]

#

Useimmat fysiikan simulaatiot ovat differentiaaliyhtälöiden ratkaisemista ja tällaisia on helppo ohjelmoida itsekin kunhan tietää numeeriset algoritmit.

Ratkaisuehdotukseni monikulmio-ongelmaan: Valitaan tasosta jokin piste ja piirretään siitä jana johonkin suuntaan kunnes ollaan varmasti kuvion ulkopuolella. Saman aikaisesti lasketaan janan ja kuvion leikkauspisteiden lkm. Jos luku on pariton, oltiin sisällä, muuten ulkona. Tässä sivuamispiste ei ole leikkauspiste vaan määrittelin leikkauspisteen siten, että leikkauspisteellä on ympäristö jossa janan osan toinen puoli kuuluu kuvioon ja toinen ei kuulu.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta