Vill lära mig fortran men vet inte riktigt var jag ska börja

Permalänk
Entusiast

Vill lära mig fortran men vet inte riktigt var jag ska börja

Efter att ha lekt en del med Matlab har jag insett att det finns ett del nackdelar. Till exempel stora begränsningar i hantering av stora tal som avrundas hej vilt. Jag tänkte lösa det genom att lära mig Fortran. Extra plus ska ju tydligen vara att det är snabbt också. Drömmen är ju att låta Fortran tugga tunga saker och låta Matlab ta hand om det lite mer visuella.
Så, var börjar man om man vill lära sig Fortran?
Jag lyckas inte ens hitta en gratis IDE med kompilator.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem

Varför just Fortran?
(Sedan vet du väl att du kan öka precisionen i MATLAB, och att MATLAB har lika hög precision som de flesta programmeringsspråk, såvida de inte hanterar stora tal extra bra)

Permalänk
Entusiast

För att jag har läst att Fortran ska vara bra på just beräkningar och det är det jag vill ha det till.
En av sakerna jag stör mig på i matlab är att det avrundar bort en himla massa värdesiffror så fort talen börjar bli stora. Bara de första siffrorna sparas och resten fylls på med nollor vilket inte alltid är acceptabelt. Jag har försökt komma runt detta och hittat diverse funktioner som skall lösa det men har aldrig fått de att fungera ordentligt. Känns som om det vore enklare att då lära sig ett annat språk som gör rätt från början istället för att försöka modifiera ett befintligt. Har du en enkel lösning i matlab som låter mig få ut alla siffror i ett tal som är i storleksordningen 10^100 så blir jag glad.

edit: missade en nolla

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem
Skrivet av Zotamedu:

För att jag har läst att Fortran ska vara bra på just beräkningar och det är det jag vill ha det till.
En av sakerna jag stör mig på i matlab är att det avrundar bort en himla massa värdesiffror så fort talen börjar bli stora. Bara de första siffrorna sparas och resten fylls på med nollor vilket inte alltid är acceptabelt. Jag har försökt komma runt detta och hittat diverse funktioner som skall lösa det men har aldrig fått de att fungera ordentligt. Känns som om det vore enklare att då lära sig ett annat språk som gör rätt från början istället för att försöka modifiera ett befintligt. Har du en enkel lösning i matlab som låter mig få ut alla siffror i ett tal som är i storleksordningen 10^100 så blir jag glad.

edit: missade en nolla

Fortran verkar väl någorlunda vettigt då... varför behöver du så stora tal? (Bara nyfiken)
Personligen skulle jag nog kört på C och något BigNum-bibliotek, men det är mest för att jag redan kan C. (Tycker Fortran ser hemskt ut)

För att svara på din fråga, kolla upp böcker på Amazon eller börja läsa någon lämplig Wikibook om Fortran.

Permalänk
Entusiast
Skrivet av You:

Fortran verkar väl någorlunda vettigt då... varför behöver du så stora tal? (Bara nyfiken)
Personligen skulle jag nog kört på C och något BigNum-bibliotek, men det är mest för att jag redan kan C. (Tycker Fortran ser hemskt ut)

För att svara på din fråga, kolla upp böcker på Amazon eller börja läsa någon lämplig Wikibook om Fortran.

För tillfället är det ett gäng problem i Project Euler som kräver det. Har man udda hobbies så har man.
Sen pluggar jag till civilingenjör inom kemiteknik så jag lär jobba med stora beräkningar i framtiden. Då vore det trevligt att kunna hantera något mer verktyg än Matlab och Ti-BASIC. Risken finns ju att man behöver köra tunga beräkningar och ibland vill man inte vänta i flera timmar på att maltab ska fundera klart.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem

Matlab klarar 16 värdesiffror, Fortran har godtycklig precision. Kruxet är den extrema syntaxen.

Till linux finns flera kompilatorer men IDE blir nog svårare utan att betala (säger jag som inte vet så mycket om fortran).

Visa signatur

Archlinux, Sway och Rust, vad mer behövs?

Permalänk
Entusiast

Jag hittade en kompilator som heter SilverFrost FTN95 med tillhörande IDE. Den var smidig men den klarade inte godtycklig precision. Den hanterar faktiskt färre värdesiffror än Matlab vilket är tråkigt.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem

Zotamedu, du kan ju alltid importera en Java BigInt klass till Matlab och köra med den.

Visa signatur

citera!

Permalänk
Entusiast
Skrivet av Dosshell:

Zotamedu, du kan ju alltid importera en Java BigInt klass till Matlab och köra med den.

Det är något i den stilen jag kör nu. Hittade ett paket som heter Variable Precision Intiger eller nåt som löser det problemet hyfsat. Det är dock lite pilligt att hantera.
Det vore iof fortfarande kul att lära sig något mer än matlab.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem

Är det siffror du ska tugga så kanske du ska testa Haskell. Är du van vid Matlab är du redan inne i "tänket" (dvs. funktionell programmering).

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk

Haskell är riktigt trevligt och skulle funka bra. Är väldigt olikt matlab-programmering dock.

Permalänk
Medlem
Skrivet av Zotamedu:

Sen pluggar jag till civilingenjör inom kemiteknik så jag lär jobba med stora beräkningar i framtiden.

Om det stämmer så är det nog inte så tokigt att lära dig Fortran. Även om Fortran är rätt så gammalt så är det fortfarande ett av de mest populära språken när det gäller beräkningar på superdatorer och har bra stöd för bibliotek som OpenMP och MPI. Om du läser någon kurs i parallellprogrammering med inriktning på beräkningar så är chansen stor att Fortran är ett av språken som används.

Tyvärr så har jag själv inte någon stor erfarenhet av Fortran och kan inte tipsa om något bra IDE, men jag kan i alla fall tipsa om Gfortran, Fortran-kompilatorn som hör till GCC (om du kör Windows så kan du använda MinGW).

Permalänk
Medlem

Dock är fortran mer vanligt än haskell inom forskningsvärlden...

Men släng in Ubuntu och strunta i IDE, det gor dig bara lat, kompilatorer finns det!

Visa signatur

Archlinux, Sway och Rust, vad mer behövs?

Permalänk
Entusiast
Skrivet av Gräs-Mannen:

Dock är fortran mer vanligt än haskell inom forskningsvärlden...

Men släng in Ubuntu och strunta i IDE, det gor dig bara lat, kompilatorer finns det!

Orkar inte med dual boot men funderar på att bara fixa en kompilator och köra emacs.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem
Skrivet av Gräs-Mannen:

Dock är fortran mer vanligt än haskell inom forskningsvärlden...

Beror på var du är och vad du håller på med. På t.ex. Chalmers är Haskell väldigt stort.

Permalänk
Entusiast
Skrivet av You:

Beror på var du är och vad du håller på med. På t.ex. Chalmers är Haskell väldigt stort.

Är det inte bara ettorna på D som läser en kurs i Haskell? Har inte hört någon annan läsa det nämligen. Då är ju Java större.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem
Skrivet av Zotamedu:

Är det inte bara ettorna på D som läser en kurs i Haskell? Har inte hört någon annan läsa det nämligen. Då är ju Java större.

Är ett par mastersprogram som läser det, dyker upp en del i icke språkspecifika programmeringskurser också. Högre upp används det ännu mer (Java är lite arbetslivsinriktad kunskap, Haskell lämpar sig bättre i akademia).
Sen läser folk Java för att få programmeringstänket, inte för att lära sig Java. Att det sen råkar vara ett språk som är väldigt nyttigt att kunna när man väl kommer ut i arbetslivet är väl mest en bieffekt... det hade lika gärna kunnat vara C#, C++ eller Python/Ruby i de kurserna.

Men ja, bara D läser det på grundnivå.

Permalänk
Entusiast
Skrivet av You:

Är ett par mastersprogram som läser det, dyker upp en del i icke språkspecifika programmeringskurser också. Högre upp används det ännu mer (Java är lite arbetslivsinriktad kunskap, Haskell lämpar sig bättre i akademia).
Sen läser folk Java för att få programmeringstänket, inte för att lära sig Java. Att det sen råkar vara ett språk som är väldigt nyttigt att kunna när man väl kommer ut i arbetslivet är väl mest en bieffekt... det hade lika gärna kunnat vara C#, C++ eller Python/Ruby i de kurserna.

Men ja, bara D läser det på grundnivå.

Ok, de jag snackat med som håller på med beräkningar har antingen kört C eller Fortran men jag går ju som sagt kemi och jag antar att de där mastersprogramen hör hemma borta i EDIT-huset.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem
Skrivet av You:

Beror på var du är och vad du håller på med. På t.ex. Chalmers är Haskell väldigt stort.

På utbildningen möjligtvis, men nu menar jag inom projekt där många tal ska räknas fort.

Jag läser själv F på Chalmers.

Visa signatur

Archlinux, Sway och Rust, vad mer behövs?

Permalänk
Medlem
Skrivet av Gräs-Mannen:

Jag läser själv F på Chalmers.

Oj, vilket år?

(Har f.ö. inte stött på Fortran ö.h.t. på Chalmers)

Permalänk
Medlem
Skrivet av You:

Oj, vilket år?

(Har f.ö. inte stött på Fortran ö.h.t. på Chalmers)

Påbörjar sista året.

Fortran förekommer bl.a. i High-performance Computing och Computational Biology.

Visa signatur

Archlinux, Sway och Rust, vad mer behövs?

Permalänk
Medlem
Skrivet av You:

Oj, vilket år?

(Har f.ö. inte stött på Fortran ö.h.t. på Chalmers)

Fortran används på vissa institutioner.

Visa signatur

citera!

Permalänk
Medlem

Vill man arbeta med stora tal i Matlab finns det en toolbox, VPI (Variable Precision Integer) som hanterar detta.

Permalänk
Entusiast
Skrivet av Voidness:

Vill man arbeta med stora tal i Matlab finns det en toolbox, VPI (Variable Precision Integer) som hanterar detta.

Menar du denna?
MATLAB Central - File detail - Variable Precision Integer Arithmetic

Har använt den en del men den löser inte alla problem då det är lite trassligt att hantera ett vpi-objekt.
Det är en del matlabkommandon som inte fungerar med vpi och även om det finns många verktyg inbyggt så saknas lite grejer tyvärr.

Visa signatur

Q9450, HD4850, 8 GB DDR2 800 MHz, 3x750 GB, Antec 300, Dell 2408WFP, U2410, Qnap TS-419p+ 4x2 TB Samsung F4, Asus UL30A-QX056V, Logitech Z-680, Sennheiser HD380pro, M-Audio FastTrack Pro, Ibanez sa160qm, Ibanez TB 15R, Zoom 505II, Ibanez GSR 200, Ibanez SW 35, Cort AC-15, Squier SD-3 BBL, Yamaha PSR 270, Røde NT1-A, Nikon D200, Nikkor 18-70/3,5-4,5, 70-300VR, 50/1,8, 28/2,8, Tamron 17-50/2,8, 90/2,8, Sigma 30/1,4, SB-800, SB-25, SB-24

Permalänk
Medlem

Nu när tråden är på tapeten igen så tänkte jag bara att VirtualBox är ett trevligt alternativ om du inte vill trixa med dualboot.

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Permalänk
Medlem

När jag läste på chalmers (D) var det en föreläsare som predikade lite om fortrans förträfflighet, givetvis var det föreläsaren i Numerisk Analys Övriga nämnde aldrig fortran öht.

Permalänk
Hedersmedlem

Även i Uppsala på kurser mot parallellprogrammering (fast beräkningsvetenskap) så är Fortran ett av alternativen (var ivf för några år sen när jag gick det). Det andra var C eller C++.
När forskarna ska köra stora beräkningar vill man gärna ha total kontroll över hur det sker på de lägre nivåerna, något som funktionella språk inte ger. Känner man till hur en processor fungerar med cacharna etc. så vet man att beroende på hur man kodar så kan det bli stora prestandasmällar. Då behöver man total kontroll (eller nära inpå, det är ju inte assembler).
Själv gjorde jag den kursen i C/C++ (minns inte vilket) men det var ivf några föreläsningar där föreläsaren predikade lite fortran.
Där jag jobbar nu finns en del fortrankod som började skrivas för några decennier sen, en slags beräkningskärna. Den underhålls/uppdateras av gamlingar, några som redan passerat pensionsåldern...

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Avstängd
Skrivet av Aqualize:

Även i Uppsala på kurser mot parallellprogrammering (fast beräkningsvetenskap) så är Fortran ett av alternativen (var ivf för några år sen när jag gick det). Det andra var C eller C++.
När forskarna ska köra stora beräkningar vill man gärna ha total kontroll över hur det sker på de lägre nivåerna, något som funktionella språk inte ger. Känner man till hur en processor fungerar med cacharna etc. så vet man att beroende på hur man kodar så kan det bli stora prestandasmällar. Då behöver man total kontroll (eller nära inpå, det är ju inte assembler).
Själv gjorde jag den kursen i C/C++ (minns inte vilket) men det var ivf några föreläsningar där föreläsaren predikade lite fortran.
Där jag jobbar nu finns en del fortrankod som började skrivas för några decennier sen, en slags beräkningskärna. Den underhålls/uppdateras av gamlingar, några som redan passerat pensionsåldern...

Om man skulle vara intresserad av att utnyttja att programmet kan köra flera delar parallellt så är det enda språk som jag set som har det inbyggt PL/I. Kanske inte så spritt men används en del ändå.

Permalänk
Medlem
Skrivet av abki:

Om man skulle vara intresserad av att utnyttja att programmet kan köra flera delar parallellt så är det enda språk som jag set som har det inbyggt PL/I. Kanske inte så spritt men används en del ändå.

Har du missat Erlang?