Metody numeryczne

Odpowiedz Nowy wątek
2011-11-10 23:08

Rejestracja: 9 lat temu

Ostatnio: 8 lat temu

0

Witam. Mam w tym roku taki przedmiot jak wstęp do metod numerycznych i muszę na nim pisać programy jak nazwa wskazuje ściśle związane z liczbami, matematyką, macierzami. Zastanawiam się jaki język wybrać do tych programów. Mówi się o C++ z jakąś biblioteką, a ja gdzieś jeszcze słyszałem, że dobry do tego może być jezyk F# z platformy .NET. Co sądzicie?

Pozostało 580 znaków

0x200x20
2011-11-10 23:21
0x200x20
0

Jak jesteś masochistą i chcesz się narobić po pachy to wybierz C/C++.
Jeżeli nie to wybierz Matlaba (lub darmową wersję - Octave).

Pozostało 580 znaków

2011-11-10 23:31

Rejestracja: 9 lat temu

Ostatnio: 7 lat temu

0

Są języki gorsze do nauki metod numerycznych, niż C++, ale nie ma ich tak wiele. Fortran jest np. o wiele lepszy. Ja bym użyć radził Pythona, moje subiektywne odczucia są takie, że bardziej skomplikowane algorytmy szybciej mi się piszę na początku w Pythonie, a potem jak już dobrze działa ewentualnie przepisać do C++. Dodatkowo, jak robisz bardziej zaawansowane rzeczy to bardzo pomocna i dobrze wykonana jest biblioteka NumPy, która min. pozwala na pisanie kodu wektorowo w prosty sposób.

Innym pomysłem może być wykorzystanie Matlaba/Octave'a, piszesz wtedy w języku bardziej wyspecjalizowanym do obliczeń numerycznych, także z dużą ilością pomocnych funkcji i porządną obsługą macierzy (więcej niż w NumPy). Dodatkowo w obydwu przypadkach możesz w prosty sposób wizualizować dane (Python - Matplotlib), ogólnie jestem pewien, że używając tych języków nauczysz się metod numerycznych szybciej.

Podejrzewam, że na zajęciach będziesz właśnie używał Matlaba, który moim zdaniem jest do samych obliczeń najszybszy w pisaniu programów, choć wolę Pythona jak trzeba zrobić coś jeszcze poza czystymi obliczeniami.

Pozostało 580 znaków

2011-11-10 23:59
Moderator

Rejestracja: 12 lat temu

Ostatnio: 14 godzin temu

Lokalizacja: Wrocław

0

Tyle, że jeśli na zajęciach sam będzie musiał implementować algorytmy, to Matlab mu się do niczego nie zda.
Prowadzący nie ma żadnych wymagań, co do języków?


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2011-11-11 01:03

Rejestracja: 9 lat temu

Ostatnio: 8 lat temu

0

Nie ma, byle było to legalne. Posiedziałem chwile nad Math.NET w Visual Studio i wydaje się ciekawą sprawą, potrzebuje tylko troche tutoriali o rozkładach macierzy na początek

Pozostało 580 znaków

0x200x20
2011-11-11 01:27
0x200x20
0
somekind napisał(a)

Tyle, że jeśli na zajęciach sam będzie musiał implementować algorytmy, to Matlab mu się do niczego nie zda.
Prowadzący nie ma żadnych wymagań, co do języków?

Jak się nie zda? Jak masz algorytmy numeryczne wymagające np. odwrócenia macierzy (przykładowo interpolacja) to nie musi tego klepać od zera, wystarczy że użyje jednego operatora w matlabie.

Pozostało 580 znaków

2011-11-11 12:06

Rejestracja: 13 lat temu

Ostatnio: 5 lat temu

0

Ja na metodach numerycznych pisalem w C#, wykresy rysowalem korzystajac z ZedGrapha. Mysle, ze to dobre polaczenie, w ZedGraphie zrobienie wykresu, ktory mozna przyblizyc/oddalic, przesuwac itp to kilka-kilkanascie linijek, dzieki temu mozna sie skupic na metodach numerycznych, a nie na pitoleniu sie z okienkami, wykresami itp. Oczywiscie mozna tez poustawiac inne pierdoly typu jaka linia ma byc rysowana wykres(ciagla/przerywana/kwadrat/serduszka/wtf ;p), jak maja wygladac osie wspolrzednych itp. W sumie to grupa w ktorej bylem byla chyba jedyna korzystajaca z C#- wiekszosc osob pisala w c++ i meczyli sie znacznie wiecej od nas i pod wzgledem graficznym wychodzili na tym gorzej ;) Ogolnie - jezeli nie chcesz sie dlugo bawic w rysowanie wykresow, tworzenie okienek itp to wybierz C# i ZedGrapha.


Pisze programy/skrypty na zlecenie/zaliczenie - c/c++/asembler/java. GG - 2100119, mail w profilu.

Pozostało 580 znaków

2011-11-11 13:13
Moderator

Rejestracja: 9 lat temu

Ostatnio: 4 godziny temu

0

Nam prowadzący na metodach numerycznych polecał Matlaba. Niestety, nie ma go na msdnaa, więc sugerował on by wykonywać zadania na zajęciach, lub z wykorzystaniem darmowego Octave, lub on nic nie wie i go nie obchodzi. A muszę powiedzieć, że Matlab jest bardzo przyjemnym środowiskiem do obliczeń matematycznych, na tamtym semestrze, jako że i tak dużo mieliśmy w nim projektów, zdarzało mi się go wykorzystywać zamiast systemowego kalkulatora (pewna kolejność działań, sin(), cos() itp. dostępne pod ręką... i wiele innych plusów).
W szczególności na tym przedmiocie przydatne: wykresiki rysują się same, działania na macierzach są banalne.

Samego Matlaba nie używałem, ale Octave też działa dobrze w trybie repl oraz stara się zachować kompatybilność z matlabem. Do podstawowych zastosowań jest wystarczający, jak przestanie to zmiana na matlaba nie powinna być trudna. Składnia rysowania wykresów jak widziałem jest podobna, choć jakość pewnie jest gorsza. - Zjarek 2011-11-11 14:27

Pozostało 580 znaków

2011-11-11 15:14

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

Lokalizacja: Katowice

0

Skąd pomysł, że Matlab służy do implementowania metod numerycznych? Tam już wszystko jest, po to, żeby tego używać a nie implementować na nowo. W Matlabie/Octave/Scilabie to żadne wyzwanie i prowadzący zajęcia, który się na to zgodzi musi być, no cóż... dziwny.

Na tym przedmiocie chyba chodzi o to, że masz to zrobić samemu? Przynajmniej ja tak miałem.

Niestety, nie ma go na msdnaa

Skąd miałby tam być, przecież to nie jest produkt Ms. :-|


"(...) otherwise, the behavior is undefined".

Pozostało 580 znaków

2011-11-11 16:08
Moderator

Rejestracja: 9 lat temu

Ostatnio: 4 godziny temu

0

Skąd pomysł, że Matlab służy do implementowania metod numerycznych? Tam już wszystko jest, po to, żeby tego używać a nie implementować na nowo. W Matlabie/Octave/Scilabie to żadne wyzwanie i prowadzący zajęcia, który się na to zgodzi musi być, no cóż... dziwny.

Myślałam, że chodzi o to, żeby metody numeryczne zrozumieć. W matlabie operacje matematyczne są bajecznie proste do wykonania... i o to chodzi. Nie każdy przedmiot musi być "wyzwaniem", niektóre mogą być proste i przyjemne. Metody numeryczne są proste i przyjemne i tylko porypany wykładowca będzie je za wszelką cenę utrudniał.
Implementacja odwracania macierzy w prologu jest wyzwaniem z pewnością, nie znaczy to, że będzie to dobre narzędzie do tego celu.

Skąd miałby tam być, przecież to nie jest produkt Ms. :-|

Skrót myślowy, a chodziło o: "nie jest dostępny za darmo dla studentów".

Pozostało 580 znaków

emfałsi
2011-11-11 16:11
emfałsi
0
Endrju napisał(a)

Skąd pomysł, że Matlab służy do implementowania metod numerycznych? Tam już wszystko jest, po to, żeby tego używać a nie implementować na nowo. W Matlabie/Octave/Scilabie to żadne wyzwanie i prowadzący zajęcia, który się na to zgodzi musi być, no cóż... dziwny.

Nie myślisz w ogóle. W metodach numerycznych nie chodzi o to żeby implementować od nowa koło, chodzi o to żeby za pomocą tych już zaimplementowanych kół (wszelkie operacje na macierzach itp) zapisywać istniejące już algorytmy i je rozumieć.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0