2024. június 22., szombat

Gyorskeresés

Mire jók a komputeralgebra rendszerek?

Írta: |

[ ÚJ BEJEGYZÉS ]

Alapesetben azt mondaná az ember, minek kell ilyen, ha ügyesek vagyunk, akkor tetszőleges programnyelvben ugyanúgy meg tudjuk írni a kívánt algoritmusokat. Ebben van valami.

Én mégis előszeretettel használom az egyetemen ezeket a rendszereket, egyrészt mert valamilyen minimális szinten megtanítják, másrészt meg egyszerűbb a világ velük.
Példának okáért mostanában elég sokszor számolok olyanokat, ahol a 200 faktoriálisát kell kiszámolni.
Ezt a c, c++ nem tudja magától kiszámolni. Két választási lehetőségünk van:
1. Fogom magam és kiszámolom, ami az egyébként 0-200-ig való szummázás mellett újabb időt igényel.
2. Bepakolom a faktoriálisok értékét egy tömbbe, és onnan használom, ez memóriát eszik.

Magam részéről két ilyen rendszert használok, mindkét program képes szimbolikus és numerikus számításokra.

Az egyik a Maxima keretrendszeren belül a wxMaxima grafikus felület. Ez egy ingyenes program, elég sok mindent tud, beépítve tartalmazza a GNUPlot grafikus megjelenítő programot.
A wxMaxima sok olyan lehetőséggel rendelkezik, grafikus felülettel, panellel, ami megkönnyíti az adatok bevitelét, pl.: mátrixbevitel, kiválaszthatjuk a mátrix méretét, és ablakos felületen bevihetjük az elemeket is.

A másik ilyen program, a sajnos nem ingyenes Maple. A program hasonló a wxMaximához, csak fizetős jellege miatt jóval többet tud, gyorsabb, saját grafikus megjelenítővel rendelkezik, komplexebb integrálok elvégzésére képes. Képes több szálon futtatni a számolásokat.

Használatuk könnyen megtanulható, programozni hasonlóan lehet bennük. A két program működése hasonló, egyedül a szintaktikájuk más, de ez könnyen megszokható.

A programozással szemben az előbbieken kívül még egy előnnyel rendelkezik, méghozzá a számolás futási ideje. Lényegesen gyorsabb Maple-lel kiszámítani a kívánt "végtelen" (0-200) integrálokat, mint programozva (c-ben próbáltam ki), mindkét fent említett lehetőséggel.

Hozzászólások

(#1) saja


saja
tag

Nem sok mindenki foglalkozik ilyen kérdésekkel (legalábbis ismerőseim közül biztosan nem). :D
Esetleg tudom ajánlani a haskell programozási nyelvet, ha valami iszonyatosan számolós feladatot kéne megoldani programozással. Ez egy funkcionális programozási nyelv. Bővebben itt. Ha jól emlékszem akkor egy "8 királynő elhelyezése a sakktáblán ütközésmentesen" feladatot 3-4 sorból meg lehetett vele oldani (persze úgy, hogy az összes lehetséges variációt kiszámolta, és a tükör-felállásokat szűrte).

keep calm and code erlang

(#2) greenity válasza saja (#1) üzenetére


greenity
aktív tag

Köszönöm :)
Egyelőre megvannak az adataim, de lehet nyáron beletúrom magam, ha megvan a dolgozat :)

"Egy mosolynál jobb a több"

(#3) Venemo


Venemo
tag

Erre reagálva: "Lényegesen gyorsabb Maple-lel kiszámítani a kívánt "végtelen" (0-200) integrálokat, mint programozva (c-ben próbáltam ki), mindkét fent említett lehetőséggel."

Nyilván a Maple-t is megírták valamilyen nyelven, és az is a végén valamilyen módon kiszámolja. Ez csak annyit jelent, hogy neked nem sikerült olyan gyors algoritmust kitalálnod, mint amit a Maple fejlesztői kitaláltak.

(#4) greenity válasza Venemo (#3) üzenetére


greenity
aktív tag

Ebben igazad lehet :)

Viszont amikor az integrálokat számoltam, nem volt időm okosabban utánanézni, a kézenfekvőt használtam...

"Egy mosolynál jobb a több"

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.