PDA

View Full Version : [Q] Co ai hoc Fortran ko?



chauanhsg
31-03-2003, 16:29
Ai hoc Fortran ko?
Ai biet xin lien lac voi tui de tui lam quen va hoc hoi .

Mach2
01-04-2003, 00:18
Hic, mình biết mà ko có rành... Biết đọc mã thui được hông?

Asus
03-04-2003, 18:23
Làm ơn giản thích giùm cái đó là cái gì đi. Tui muốn bết lắm. Cám ơn nhiều

Mach2
03-04-2003, 19:33
Fortran là một ngôn ngữ lập trình xưa lơ xưa lắc có từ thời Bảo Đại đánh Napoleon, tuy nhiên hiện giờ nó vẫn còn được sử dụng bởi vì:
- Nó là một ngôn ngữ lập trình được sử dụng trong hầu hết các nghiên cứu khoa học (các ngành khoa học đòi hỏi Computing), gần như là sự lựa chọn thứ 1.
- Rất thích hợp để lập trình tính toán vì cú pháp đơn giản, dễ học, dễ xài.
Tuy nhiên, như đã nói, đây là loại "hàng" chỉ những người "nghiên cứu" ngành khác IT thích thui (vì ko có OOP, ko phổ biến lắm ngoài ngành,...) nên dân IT thường ko thích, vì vậy mà ở VN ta ít người rớ vô nó lém.

chauanhsg
04-04-2003, 22:48
Ôi!!!!!Zậy là chít tui zồi, tưởng có nhiều nguòi biết chứ. Này Azus ông cũng ko bít thiệt hẻ???????

Mach2
05-04-2003, 20:14
Nhiều ko nhưng mà ít thì có, bạn muốn tìm hiểu về gì?

nguyenthu
07-04-2003, 16:37
Chào các bạn,
Xin góp ý với các bạn là :
Fortran là ngôn ngữ duy nhất (trừ một số ngôn ngữ đặc biệt của Hewlett Packard... chạy trên máy minicomputer) có hàm mat(), tức là về phép tính ma trận. Cũng vì vậy mà nó đắt tiền.
Tôi lấy thí dụ :
- một chương trình bằng VB, giải một ma-trận inverse, nhỏ bậc 14, cần chừng 5 phút,
- nếu chạy nó với C, mất khoảng 10 giây,
- nếu chạy nó với Fortran, không quá 1 giây, lý do là vì các hàm này đã được thực hiện và compiled trong những điều kiện tối hảo.
Thân

Mach2
08-04-2003, 07:22
Hả? Các hàm xử lý ma trận của Fortran thực chất chỉ là thư viện thêm thôi, tốc độ cũng ko có gì quá vượt trội đâu. Tôi đã thử viết một đoạn CT nhỏ giải hệ tuyến tính trong Delphi rùi so sánh với Fortran thì thấy ngang ngửa. Quan trọng là code viết thui mà bạn.
Đúng là Fortran hỗ trợ toán nhiều (ko chỉ ma trận đâu) cho nên được kỹ thuật xài nhiều hơn bất cứ nn nào khác.

nguyenthu
08-04-2003, 15:03
Chào bạn Mach 2,
Xin bạn cho hỏi hệ tuyến tính là gì, vì tôi chỉ hiểu bằng tiếng Pháp hay tiếng Anh đối với những từ ngữ chuyên môn.
Sự so sánh đúng là :
1) Bạn có một CT nhỏ, giải một ma-trận, do chính bạn viết bằng Delphi.
2) Và bạn tạo một CT nhỏ bằng Fortran, không làm gì cả ngoài việc dùng các hàm ma-trận của Fortran.
3) Cả hai CT đều dùng các biến lưu sẵn trong CT. Nếu máy bạn chạy nhanh quá, khó so sánh, thì bạn có thể tăng bậc n lên được.
4) Không dùng những phương-pháp như là Gauss-Jordan, Jacob... để giải nhanh các ma-trận này. (Nếu bạn học bên khối Nga thì chắc là bạn có biết tên những nhà toán-học Nga)
Xin bạn thử lại rồi cho mình biết kết quả.
Cám ơn bạn trước nhiều.
Thân

Mach2
08-04-2003, 21:09
Hệ pt tuyến tính: linear equations system
Tôi đã thử vấn đề trên từ lâu rùi, và cũng đã so sánh với rất nhiều người trong lớp làm về numerical methods. Tốc độ cả 2 ko chênh lệch nhiều nếu n nhỏ, tuy nhiên khi n>>, tốc độ hàm có sẵn trong Fortran giảm rõ rệt.
Lý do: Hàm thư viện ko tối ưu và rất ko nên dùng trong những bài toán lớn (n>vài ngàn). Sở dĩ tôi nói vậy vì tôi rất thường xuyên dùng các ma trận sparse để lưu trữ dữ liệu (dùng FDM hay FEM), và hàm ma trận của Fortran ko đủ mạnh và ko phải lúc nào cũng phù hợp với cách giải của tôi. Tôi hay dùng Cholesky, Gauss và lặp Gauss-Seidel để giải hệ.
Còn việc test 2 CT giải ma trận tự viết trên Delphi và Fortran thì tôi chưa thử, vì tôi ko thích dùng Fortran lém ;) Tuy nhiên tôi đoán là ko chênh lệch, vì cả hai nn này đều sinh mã thật.

nguyenthu
09-04-2003, 18:16
Chào Mach 2,
Cách đây 36 năm, khi tôi còn là sinh viên Kỹ-sư Phú Thọ thì linear equations system được dịch là hệ thống phương trình thẳng bậc nhất, vì bạn dùng hệ tuyến tính nên tôi chịu, không hiểu nổi.
Cám ơn những phân tích của bạn.
Trước đây vài năm tôi có dự định làm những chương trình xây dựng dùng ma trận như (phương-pháp tính dàn bằng ma-trận : structural calculations by matrix method) nhưng cho chạy chậm quá, nản luôn, tôi bỏ mất (mỗi bài toán chỉ xài ma-trận bậc 200x200 mà thôi).
Nhảy qua C++, chạy nhanh hơn, nhưng nguy hiểm, vì C không kiểm-soát gì cả, trong khi Basic kiểm-soát kỹ hơn.
Còn fortran về sau này, ở Âu-châu ít xài trên PC, không có dịp thử nữa.
Để tôi thử lại với Fortran xem.
Cám ơn nhiều.
Thân,

Mach2
09-04-2003, 19:33
Nếu nguyenthu đã từng là sinh viên Phú Thọ thì Mach2 không dám xưng "tôi" nữa mà chỉ dám xưng "em" mà thôi, bởi lẽ Mach2 chỉ là một SVBK mới tốt nghiệp. Với Fortran em có thể khẳng định là tốc độ tính toán rất tốt, bởi theo như hiểu biết của em thì ANSYS, một phần mềm FEM khá mạnh, được xây dựng bằng nền Fortran. Cách đây khoảng một năm, em có làm một CT nhỏ tính kết cấu mô phỏng ANSYS với phần tử thanh gậy 3D và thanh dầm 2D bằng Delphi thì nhận thấy tốc độ tính toán rất tốt, do đó chuyển qua xài ngôn ngữ này. Em nhận thấy trong bài toán linear equations thì quan trọng nhất là thuật toán xử lý ma trận sparse. trong bài toán trên, với bài toán thanh gậy khoảng 100 phần tử (ma trận 100x2) cho kết quả rất nhanh nếu ma trận sparse được xử lý tốt (có dạng band).
Em rất hân hạnh được biết nguyenthu và hy vọng còn có dịp được trao đổi thêm về các pp số trong kỹ thuật sau này.

nguyenthu
10-04-2003, 16:08
OK, rất vui để làm quen với Mach 2.
Mach 2 có thể e-mail cho mình :
nguyenvanthu@swing.be
Mình cũng mừng vì Mach 2 vừa mới ra Kỹ-sư mà biết nhiều về các thuật toán ma-trận, vậy là chương-trình học ở Việt-Nam bây giờ đã theo kịp chương-trình học ở Âu-châu. Ngày xưa mình đã không được học như bạn.
Mình chuyên về bêtông cốt thép, dàn bằng thép (charpente métallique). Còn ứng dụng các phép tính ma-trận thì là ngành chuyên môn của sức chịu vật liệu (Résistance des Matériaux, Stabilité), nên mình chỉ biết sơ qua.
Thành thật khen bạn, thật đấy không ngoa đâu !
Thân

chauanhsg
11-04-2003, 17:19
wao!zậy là mình đụng 2 cao nhân rồi .Chào 2 anh em cũng là sinh viên ,nhưng học về xd nhưng mê tin lắm .

Mach2
17-04-2003, 21:52
To chauanhsg: Bạn đang học XD à, bạn có phải là dân BK ko vậy?

chauanhsg
19-04-2003, 19:38
Ko mình học ở GTVT TP.HCM?chắc phải gọi Mach 2 là anh đấy.Nghe anh nói là đã ra truờng ,anh làm ở đâu zậy.rất vui đuợc làm wen với 2 anh

Mach2
19-04-2003, 21:19
Mình ra trường rùi nhưng sắp phải học tiếp nữa rùi ;) chauanhsg học GTVT là cũng có chung "gốc gác" với mình rùi bởi vì mình là dân HK. Cho mình tò mò tí, bạn học Fortran để làm gì vậy?

trqtuan86
29-08-2011, 21:45
Mình cũng mới tiếp xúc với Fortran nên có 1 vài điều mong bạn giải thích.

Soft đầu tiên mình dùng để coding là Matlab, khi đó mình hiểu đơn giản chỉ cần mở duy nhất matlab, coding, run, test là ổn ..

Nhưng bây giờ khi chuyển sang Fortran, mình ko biết làm thế nào sử dụng, hình như nó còn chia ra setup cho code (fortran) và complier cho fortran phải không bạn? Tại mình sử dụng máy ở chỗ làm có sẵn fortran mà ko biết làm thế nào cài ở nhà.

Vui lòng giải thích cho mình thế nào là fortran (có j liên quan đến setup files / complier) nhé, cảm ơn bạn nhiều

trananhvu911
29-08-2011, 23:02
Ngôn ngữ lập trình này lạ quá, mới nghe lần đầu lun đấy. Ứng dụng của ngôn ngữ này không có chỗ nào liên quan tới IT hết hả mọi người.

quynhnguyen.0304
21-08-2013, 23:02
giờ em mới học phần này em có đuợc hỏi mọi nguời giúp được nữa không ạ
hix không muộn chứ ạ

tranhoa_ps
05-09-2013, 07:54
ForTran là ngôn ngữ lập trình chuyên về xử lý toán học và được dùng trong ngành nghiên cứu khoa học, toán học. Vì các lĩnh vực này cần phải tính toán rất nhiều, các hàm tính toán đã được tích hợp trong ngôn ngữ, vì vậy người lập trình chỉ cần dùng hàm tương ứng và kết quả tính toán sẽ trả về ngay.
Ngôn ngữ ForTran giống như Pas, C và cách sử dụng biến cũng giống FoxPro vì vậy lập trình rất dễ. Thời năm 90 mình thi ngôn ngữ này là 9.5 điểm. giải các bài toán về đạo hàm, tích phân ...

tam_giang
08-09-2013, 11:44
giờ em mới học phần này em có đuợc hỏi mọi nguời giúp được nữa không ạ
hix không muộn chứ ạ
Sau 2 năm được moi lên, phần này là phần nào ?