Kezdőoldal » Számítástechnika » Programozás » Milyen programozási nyelv a...

Betmenvées kérdése:

Milyen programozási nyelv a legmegfelelőbb numerikus számítások elvégzésére?

Figyelt kérdés
Fizikai modellek készítéséhez lenne szükségem, jelenleg C++-ban írok programokat, de nem elég pontos.

2018. dec. 15. 17:21
1 2
 1/11 anonim ***** válasza:
Hány tizedesjegy pontossággal várod a számolásokat, hogy nem elég pontos?
2018. dec. 15. 18:52
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Őszintén szólva nem tudom. Akkor átfogalmaznám a kérdést: C++-nál pontosabb nyelvet keresek.
2018. dec. 15. 19:26
 3/11 anonim ***** válasza:
42%
nemtom mit akarsz pontosan, valószínű, hogy nem a c++ hibája, hanem annak, ahogyan írod a programodat
2018. dec. 15. 19:54
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
Konkrétan az a problémám, hogy numerikusan oldok differenciálegyenletet, ha csökkentem a változás mértékét, egy adott nagyság után a pontosság is csökken, pedig nőnie kellene.
2018. dec. 15. 20:17
 5/11 anonim ***** válasza:
Matlab?
2018. dec. 15. 21:05
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

A C++ beépített típusai helyett használj egy ilyen könvytárat:

[link]

2018. dec. 15. 21:08
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:
Köszönöm szépen a válaszokat!
2018. dec. 15. 21:43
 8/11 anonim ***** válasza:
Ha nem nagy a számításigény, akkor a python is jó megoldás lehet. Ugyanis itt a nyelv elfedi előled számábrázolást, és gyakorlatilag a gépedtől függ, hogy mennyire pontos.
2018. dec. 16. 11:29
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
A pontosság a legtöbb esetben architektúrafüggő.
2018. dec. 16. 13:27
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:

Sose volt szükségem c++ ilyesmire , de én ezt találtam most hirtelen a korábban belinkelten kívül : [link]


"Ha nem nagy a számításigény, akkor a python is jó megoldás lehet."


Ebben meg az a "vicces", hogy kb 3 éve c++ -ban implementált BigInt-et összevetettem a python-ossal, ugye pythonba eleve bignum egész aritmetika van. A pythonos gyorsabb volt, mivel natív kódba jobban ki van optimalizálva, gyorsabban is lehet számolni mint a szerint ahogy a suliba megtanítják, de ugyanakkor bonyolultabb is az eljárás. A c++ -os a sima sulis módszer szerint volt implementálva, persze lehetőség lett volna jobban kioptimalizálni, de nem éltek a lehetőséggel.


"Ugyanis itt a nyelv elfedi előled számábrázolást, és gyakorlatilag a gépedtől függ, hogy mennyire pontos."


- Egyrészt a c++ is elfedi a számábrázolást (pontosabban lehet úgy implenetálni c++-ban hogy elfedje) és a gép lebegőpontos hardveres gyorsításától függ hogy mennyire pontos c++ és python esetében is.

- Másrészt a c++ -ban is el lehet fedni, ott van még a c++-ban az operator overloading (ha használva van az implementációhoz) segítségével belesimul a kódba a használt típus mintha primitív típus lenne.

- Negyedrészt : Kiegészítő magyarázat az első ponthoz, hogy a python alapból nem használ nagy pontosságú lebegőpontos aritmetikát, hanem alapból BigNum egész artimetikát használ. Nagy pontosságú lebegőpontos aritmetikához python-ba külön keretrendszer szükségeltetik.

- Ötödrészt : Pythonhoz ezek a nagy pontosságú aritmetikák hatékony natív kódba , c-ben vannak implementálva. Ha sok magas szintű python-os kód végrehajtás van, na az ami lassabbá teszi a c++ -hoz képest, feltéve hogy értelmesen kioptimalizálva van a c++-os és a pythonos kód is megírva. Ugyanis c++ -ban is lehet lassabb, mert az önmagában nem garancia hogy gyorsabb is lesz csupán mert c++. Ha algoritmus szinten kioptimalizáltabb, akkor a sok lúd disznót győz elv szerint.

- hatodrészt : Amiről viszont sokszor elfelejtkeznek. Én a gyorsaság tekintetében úgy tekintek rá, hogy van egy adott számítási feladat, a feladat megértésétől a számítás elvégzéséig mennyi idő és erőfeszítés szükségeltetett és hányszor kell elvégezni automatikusan. Mert ha pl 1x kell összesen és c++-ban lefut 1 perc alatt pythonba meg lefut 10 perc alatt, de c++ leimplementálom 5 óra alatt, pythonba meg 40 perc alatt, akkor én úgy tekintem hogy pythonba gyorsabb megoldást kaptam. Ugyanakkor olyan esetben ha sokszor le kell futtatni,ami pythonba lefut 0,1 sec alatt és c++-ba 0,006 sec alatt de csak ha megnyomja az ember a gombot akkor kell, de c++-ba 7x több időt vesz el az életelmből implementálni mint pytonba akkor is a fele hajlok hog inkább pytonba. Persze ezzel nem azt akarom mondani hogy sose éri meg jobban c++-ban, de azok az esetek triviálisak azokat mindenki tudja, azokra azért nem írok példákat.

- hetedrészt : Gondolkozz el hogy célszerűbb lenne e, nem simán numerikusan, hanem szimbolikusan is számolni és ennek megfelelő keretrendszert keresni c++ -hoz, vagy más prog. nyelvhez, ha mással oldanád meg.

2018. dec. 16. 13:55
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!