Các gói toán học có sẵn miễn phí cho gnu. Các ứng dụng toán học FFTW và GNU Octave làm bài kiểm tra cho bộ xử lý và PC. Sự phụ thuộc của kết quả vào tần số bộ nhớ

Theo đó, tôi không thể trình bày hết mọi thứ - tôi có khoảng 15 phút cho báo cáo.

Giới thiệu

Những gói hàng nổi tiếng là những gã khổng lồ tất cả hợp lại thành một

Khi chúng ta nói về phần mềm toán học, chúng ta nghĩ ngay đến những gã khổng lồ như Maple, Mathematica, MatLAB... Họ có một điểm chung: họ cố gắng bao quát mọi thứ. Tất nhiên, Mathematica chủ yếu được biết đến như một hệ thống tính toán ký hiệu và Matlab - dành cho các phép tính số, nhưng đồng thời, Mathematica có các thuật toán mạnh mẽ để tính toán dấu phẩy động và Matlab có một gói dành cho các phép tính ký hiệu. Hơn nữa, những người vị thành niên Các chức năng trong các chương trình, so với các chương trình dành cho mục đích này, trông thật thảm hại và lố bịch. Và MathCAD nổi tiếng cố gắng bao gồm mọi thứ, nhưng mọi thứ đều được triển khai ở mức tầm thường. Lý do rất đơn giản: bạn không thể ôm lấy sự bao la.

Phần mềm miễn phí làm tốt một việc

Ngược lại, hầu hết các phần mềm miễn phí đều tuân theo triết lý UNIX rằng một chương trình nên làm một việc nhưng phải làm tốt nó. Có rất nhiều phần mềm toán học miễn phí và hầu hết chúng được thiết kế cho một nhiệm vụ duy nhất. Ví dụ, có những chương trình chỉ biết cách xây dựng lưới cho phương pháp sai phân hữu hạn. Hoặc một chương trình được thiết kế để tính các chữ số của Pi. Hoặc một chương trình chỉ có thể xây dựng đồ thị nhưng rất tốt.

Tuy nhiên, cũng có những chương trình ở mức độ này hay mức độ khác tương tự như các gói nổi tiếng. Tôi sẽ nói về ba.

Máy tính tượng trưng: Maxima

Lịch sử dự án

Tôi sẽ bắt đầu với lịch sử của dự án này.

Đầu tiên, hãy để tôi nhắc bạn rằng máy tính thực chất là Máy tính Điện tử; chúng được tạo ra để tính toán các con số. Tuy nhiên, vào cuối những năm 50, đã xuất hiện ý tưởng cho rằng có thể làm cho máy tính hoạt động không chỉ với các con số mà còn với các biểu thức đại số. Đầu những năm 60, các hệ thống đại số máy tính đầu tiên bắt đầu xuất hiện. Và tất nhiên, một cơ quan hòa bình của Mỹ (Bộ Năng lượng, trên thực tế là một bộ phận của Lầu Năm Góc) cần có một hệ thống như vậy. Một cuộc đấu thầu đã được công bố và dự án có tên Macsyma (đánh vần là CS) đã thắng thầu. Trong nhiều năm, DOE Macsyma đã phát triển như một dự án thương mại do chính phủ tài trợ. Năm 1982, William Shelter tạo ra một nhánh của Macsyma có tên Maxima. Đầu những năm 90, Liên Xô sụp đổ, Chiến tranh Lạnh kết thúc và hậu quả gián tiếp của việc này là việc tài trợ cho DOE Macsyma gần như bị ngừng hoàn toàn. Đến cuối những năm 90, dự án gần như đã chết. Mã nguồn Macsyma đã được bán từng phần một và cuối cùng được chuyển đến Maple và Mathematica. Năm 1998, William Shelter được DOE cho phép xuất bản mã nguồn Maxima theo giấy phép GPL. Maxima trở thành phần mềm miễn phí. Shelter qua đời vào năm 2001, nhưng vào thời điểm đó đã có khá nhiều người đang làm việc trên Maxima và họ đã tiếp nhận dự án.

Giao diện: dòng lệnh hoặc wxMaxima

Maxima có giao diện dòng lệnh UNIX truyền thống nhưng cũng có thể nghe cổng mạng, hoạt động như một máy chủ. Thực tế này được sử dụng bởi nhiều shell (frontends) khác nhau cung cấp giao diện đồ họa. Phổ biến nhất là TeXmacs và wxMaxima. TeXmacs là trình soạn thảo văn bản khoa học trong đó bạn có thể chèn phiên Maxima vào tài liệu. wxMaxima trông giống như thế này:

Phiên bản mới nhất, 0.8.0, đã trở nên giống Mathematica và Maple hơn: trước đây dòng lệnh cho đầu vào tách biệt ở phía dưới.

Ngôn ngữ giống Lisp

Ngôn ngữ Maxima lấy ý tưởng cơ bản từ Lisp, vì Maxima được viết bằng Lisp-e. Đồng thời, nó tương tự như cả ngôn ngữ Mathematica và Maple, vì các chương trình này mượn nhiều ý tưởng và một phần mã từ Macsyma. Để tránh liệt kê các khả năng dài dòng và tẻ nhạt, tôi sẽ đưa ra một ví dụ về cách giải các bài toán điển hình của khóa học đầu tiên.

Hãy để chức năng được đưa ra

cực đại>> f(x) := x*tanh(x) + x + 1/x + 2;

Hãy kiểm tra xem nó là chẵn hay lẻ:

Như bạn có thể thấy, hàm này không chẵn cũng không lẻ. Hãy tìm giới hạn của hàm số tại điểm cộng hoặc trừ vô cùng:

cực đại>> giới hạn(f(x),x,-inf);

cực đại>> giới hạn(f(x),x,inf);

Vì vậy, tại điểm cộng vô cùng hàm số tiến tới vô cùng. Nó có tiệm cận xiên không?

cực đại>> giới hạn(f(x)/x, x,inf);

Đường tiệm cận xiên là - y=kx+b, và k=2. Hãy tìm b:

cực đại>> giới hạn(f(x)-2*x, x,inf);

Cuối cùng, hãy xây dựng một biểu đồ:

cực đại>> lô2d(f(x), , );

Hãy tìm đạo hàm của hàm của chúng tôi:

cực đại>> khác biệt(f(x),x);

Và đồng thời - tích phân không xác định:

cực đại>> tích phân(f(x), x);

Tích phân không hoạt động cho đến cuối cùng. Có thể chứng minh rằng tích phân này không được lấy trong các hàm cơ bản. Tuy nhiên, Maxima có thể lấy một số tích phân này bằng các hàm đặc biệt:

cực đại>> phần: risch(x/(exp(2*x)+1), x);

cực đại>> ir: -2*part + log(x) + x^2 + 2*x;

Cái gì đó khủng khiếp. Hãy mở rộng dấu ngoặc:

cực đại>> mở rộng(ir);

phương trình vi phân

Hoặc đây là một ví dụ về tính toán phức tạp hơn. Giả sử chúng ta cần giải một phương trình vi phân:

cực đại>> eq: "diff(y,x) + x*y = 1-x^2;

cực đại>> nghiệm: ode2(eq,y,x);

cực đại>> mở rộng(giải pháp);

Bạn có thể tìm thấy một số sách hướng dẫn sử dụng tiếng Nga cho Maxima trên Internet. Theo tôi, phần giới thiệu thành công nhất với cái nhìn tổng quan về các khả năng được trình bày trong một loạt bài viết của Tikhon Tarnavsky trên tạp chí LinuxFormat. Bây giờ những bài viết này đã được đăng trên phạm vi công cộng, bao gồm cả trên trang web Maxima của Nga. Thật không may, tài liệu về các tính năng nâng cao của maxima chỉ có bằng tiếng Anh. Tài liệu chính thức là 712 trang.

Tính toán số: Scilab

Scilab tương thích với MatLAB

Gói tính toán số nổi tiếng nhất là MatLAB. Scilab được tạo ra như một đối thủ cạnh tranh với matlab, với chính sách giá khiêm tốn hơn. Tuy nhiên, dự án đã không chứng tỏ được bản thân về mặt thương mại và mã nguồn được mở theo giấy phép tương tự như GNU GPL. Ngôn ngữ scilab được thiết kế tương thích nhất có thể với matlab, vì vậy hầu hết các phát triển matlab của bạn sẽ hoạt động trong scilab. Hiện tại, như bạn đã biết, sức mạnh chính của MATLAB tập trung vào các hộp công cụ của nó - các mô-đun được cung cấp riêng. Ngoài ra còn có các mô-đun dành cho scilab, nhưng số lượng mô-đun đó ít hơn nhiều.

Octave là GPL tương đương với Matlab

Sau đó, dự án GNU Octave xuất hiện, nhằm tạo ra một phiên bản tương tự của matlab-a, được phân phối theo GNU GPL mà không gặp bất kỳ vấn đề gì. Ngôn ngữ này trên thực tế cũng tương thích với Matlab, nhưng không có ngôn ngữ tương tự như Simulink - một công cụ để mô hình hóa và mô phỏng các hệ thống động.

Nhưng Octave có giao diện bảng điều khiển thuần túy (tất nhiên, cũng có giao diện đồ họa, phát triển nhất là QtOctave), cho phép nó được sử dụng trong các tập lệnh, để tự động tính toán và đơn giản hóa việc tích hợp vào các hệ thống phần mềm phức tạp. Hàng chục gói mở rộng đã được viết cho Octave.

Ngoài ra, còn có các bài viết về Scilab bằng tiếng Nga, ngoài ra, cách đây không lâu, nhà xuất bản AltLinux đã xuất bản cuốn sách “Scilab: Giải các bài toán kỹ thuật và toán học”. có sẵn trên trang web AltLinux.

Xử lý dữ liệu: GNU R

Về mặt hình thức, các công cụ xử lý dữ liệu thuộc về các chương trình tính toán số, bởi vì tất cả những gì chúng làm là tính toán trên các con số. Tuy nhiên, như bạn đã biết, một công cụ chuyên dụng luôn tốt hơn một công cụ phổ thông. Dưới những lời nói xử lí dữ liệu Khá nhiều loại hoạt động khác nhau bị ẩn: phân tích thống kê, mô hình thống kê, chỉ lấy mẫu dữ liệu cần thiết, chuyển đổi dữ liệu, xây dựng các biểu đồ và biểu đồ khác nhau.

Các chương trình xử lý dữ liệu có thể được phân loại theo cỡ mẫu điển hình mà chúng được thiết kế. Ví dụ, đối với các mẫu nhỏ, Statistica là phù hợp. Đối với các mẫu cỡ trung bình, GNU R rất phù hợp (nó lưu trữ tất cả dữ liệu trong RAM, vì vậy trên một PC thông thường, chúng tôi nhận được giới hạn là 1-2-4 gigabyte). Đối với khối lượng dữ liệu lớn và rất lớn (từ hàng trăm gigabyte đến hàng trăm terabyte), các hệ thống PAW và ROOT miễn phí được phát triển tại CERN là nhằm mục đích này.

GNU R là ngôn ngữ lập trình thông dịch được thiết kế để phân tích và lập mô hình thống kê. R là một triển khai miễn phí của ngôn ngữ tồn tại lâu đời S. Ngôn ngữ này rất chiết trung, ở một số điểm tương tự như C, ở một số điểm tương tự như C, ở những điểm khác - như Python, ở những điểm khác - như Haskell. Đối với GNU R, có gần một nghìn rưỡi gói mở rộng (được viết bằng chính R, bằng C hoặc Fortran), được thu thập trong kho lưu trữ CRAN (Mạng lưu trữ R toàn diện).

Các kiểu dữ liệu - số, chuỗi, thừa số, vectơ, danh sách và bảng dữ liệu

Các kiểu dữ liệu chính trong ngôn ngữ là số, chuỗi, thừa số, vectơ, danh sách và khung dữ liệu. Hệ số là dữ liệu có thể nhận một trong nhiều giá trị (giới tính, loại gỗ, loại logic, v.v.). Các vectơ tương tự như mảng - chúng là một tập hợp nhiều giá trị cùng loại; kích thước của vectơ không thể thay đổi. Cũng cần lưu ý rằng trong R không có vô hướng; ví dụ, một số, theo quan điểm của R, là một vectơ của một phần tử. Danh sách là sự tổng quát hóa của vectơ; chúng có thể chứa các đối tượng thuộc các loại khác nhau và độ dài của chúng có thể khác nhau. Ngoài ra, bạn có thể gán tên cho các thành phần danh sách riêng lẻ và tham chiếu các thành phần không phải bằng số mà bằng tên. Ví dụ:

(việc gán trong R thường được ký hiệu bằng dấu , mặc dù bạn có thể sử dụng quen thuộc hơn = ; Ngoài ra còn có một hình thức giá trị → biến). Để tham chiếu các thành phần trong danh sách theo số, dấu ngoặc vuông kép được sử dụng:

Hãy gán tên cho các thành phần trong danh sách:

(chức năng c tạo ra các vectơ). Bây giờ bạn có thể truy cập các thành phần danh sách theo tên:

Bảng dữ liệu (khung dữ liệu) trong R là một danh sách gồm các vectơ. Các bảng dữ liệu thường được tạo bằng cách tải từ một tệp bên ngoài.

Bài viết này là bài thứ hai trong loạt bài dành cho các ứng dụng thực tế khác nhau có thể được sử dụng để kiểm tra bộ xử lý, máy tính, máy tính xách tay và máy trạm và sau này sẽ tạo cơ sở cho gói thử nghiệm mới iXBT Application Benchmark 2017. Chúng ta hãy nhớ lại điều đó trong phần đầu tiên Trong loạt bài này, chúng tôi đã xem xét hai ứng dụng chuyên biệt LAMMPS và NAMD, được sử dụng để giải các bài toán động lực phân tử. Trong bài viết này, chúng tôi sẽ tập trung vào các gói toán học chuyên dụng FFTW và GNU Octave. Các ứng dụng này, như LAMMPS và NAMD, là một phần của bộ thử nghiệm chuyên biệt nổi tiếng SPECwpc 2.0. Hơn nữa, chúng tôi đã mượn chính các tác vụ tính toán (khối lượng công việc) và các lệnh khởi chạy chương trình với các tham số tương ứng từ gói SPECwpc 2.0.

FFTW 3.3.5

Môi trường GNU Octave hỗ trợ làm việc với các tệp tập lệnh () và để chạy tập lệnh, lệnh được sử dụng:

quãng tám-cli-4.0.3.exe

(Tệp octave-cli-4.0.3.exe nằm trong thư mục C:\Octave\Octave-4.0.3\bin\ khi cài đặt gói theo mặc định.)

Để thử nghiệm, chúng tôi sử dụng tệp tập lệnh thực hiện các phép toán với vòng lặp, tính tích phân, biến đổi Fourier nhanh và các phép toán với ma trận. Chúng tôi không viết tập lệnh này từ đầu mà lấy nó từ gói SPECwpc 2.0, bao gồm thử nghiệm dựa trên GNU Octave. Kịch bản này được gọi là obench.m. Kết quả kiểm tra là thời gian thực thi của tập lệnh.

Phòng thử nghiệm và phương pháp thử nghiệm

Để thử nghiệm bằng ứng dụng FFTW và GNU Octave, chúng tôi đã lắp ráp một băng ghế có cấu hình sau:

  • Bộ xử lý: Intel Core i7-6950X (Broadwell-E);
  • Bo mạch chủ: Asus Rampage V Edition 10 (Intel X99);
  • Bộ nhớ: 4x4 GB DDR4-2400 (Kingston HyperX Predator HX424C12PBK4/16);
  • Card màn hình: Nvidia Quadro 600;
  • Bộ nhớ: SSD Seagate ST480FN0021 (480 GB).

Trong quá trình thử nghiệm, thời gian cần thiết để hoàn thành nhiệm vụ thử nghiệm đã được đo lường.

Sự phụ thuộc của kết quả kiểm tra vào số lượng lõi bộ xử lý được sử dụng, vào tần số của lõi bộ xử lý và vào tần số bộ nhớ đã được xem xét.

Sự phụ thuộc của kết quả vào số lượng lõi xử lý

Số lõi của bộ xử lý Intel Core i7-6950X được sử dụng trong quá trình thử nghiệm được điều chỉnh thông qua cài đặt BIOS UEFI của bo mạch Asus Rampage V Edition 10. Chúng ta hãy nhớ lại rằng bộ xử lý Intel Core i7-6950X là 10 lõi nhưng hỗ trợ Hyper - Công nghệ phân luồng nên hệ điều hành và ứng dụng của nó được coi là 20 lõi (có 20 lõi logic).

Chúng tôi không tắt công nghệ Siêu phân luồng và chỉ thay đổi số lõi bộ xử lý vật lý từ 1 thành 10. Trong tương lai, chúng ta sẽ nói về lõi bộ xử lý logic, số lượng lõi thay đổi từ 2 thành 20 với gia số là 2.

Tần số hoạt động của tất cả các lõi bộ xử lý được cố định ở mức 4,0 GHz.

Như bạn có thể thấy, kết quả hóa ra rất kỳ lạ. Việc giải thích các kết quả cho gói GNU Octave khá đơn giản. Trong gói này, tốc độ hoàn thành nhiệm vụ kiểm tra thực tế không phụ thuộc vào số lượng lõi xử lý, tức là ở phiên bản bộ xử lý Intel Core i7-6950X, thậm chí hai lõi logic cũng khá đủ để hoàn thành nhiệm vụ kiểm tra. Khi số lõi bộ xử lý có sẵn tăng lên, tác vụ sẽ được thực hiện song song nhưng phần tải của mỗi lõi sẽ giảm tỷ lệ với số lượng của chúng. Kết quả là tốc độ thực hiện tác vụ kiểm tra không thay đổi khi số lượng lõi xử lý tăng lên.

Nhưng với ứng dụng FFTW, mọi thứ rất lạ và phi logic. Với 6, 12 và 14 lõi (logic), thời gian thực hiện tác vụ kiểm thử trở nên dài bất thường. Trong các trường hợp khác, thời gian thực hiện nhiệm vụ kiểm thử là gần như nhau. Kết quả khá lạ nhưng đã được kiểm tra lại nhiều lần.

Nếu bạn nhìn vào tải CPU trong quá trình thực hiện kiểm tra, tình huống sẽ như sau. Đầu tiên, tác vụ được thực hiện song song trên tất cả các lõi bộ xử lý. Thứ hai, tại một số thời điểm, tải trên lõi bộ xử lý thấp và tại các thời điểm khác lại cao. Hơn nữa, hành vi này được quan sát thấy ở bất kỳ số lượng lõi nào. Và tại sao, ở một số lõi xử lý nhất định, thời gian thực hiện thử nghiệm lại trở nên lớn bất thường vẫn chưa rõ ràng.

Chúng tôi đã tiến hành nghiên cứu sâu hơn về hành vi kỳ lạ này của bài kiểm tra. Để thực hiện điều này, chúng tôi đã vô hiệu hóa công nghệ Siêu phân luồng trên bộ xử lý và thử nghiệm lặp lại trong ứng dụng FFTW, thay đổi số lõi xử lý vật lý từ 1 thành 10. Kết quả thử nghiệm như sau:

Khi công nghệ Siêu phân luồng bị vô hiệu hóa, kết quả thậm chí còn phi logic hơn. Với 3, 5, 6, 7 và 9 lõi, thời gian thực hiện thử nghiệm lớn và với 1, 2, 4, 8 và 10 lõi thì ngắn. Nghĩa là, hóa ra hiệu quả của việc song song hóa một tác vụ phụ thuộc vào số lượng lõi bộ xử lý, nhưng hoàn toàn không có nghĩa là số lượng lõi lớn hơn sẽ cải thiện kết quả. Với một số lượng lõi nhất định, tác vụ được song song hóa tốt, nhưng với một số lượng nhất định, nó song song kém.

Tuy nhiên, chúng tôi vẫn nghi ngờ về tính đúng đắn của kết luận của mình, vì trong trường hợp này, chúng tôi không nói về bộ xử lý lõi thực sự có hai, bốn, sáu, v.v. mà là về việc chặn các lõi một cách giả tạo thông qua BIOS bo mạch chủ. Chúng tôi quyết định lặp lại thử nghiệm với một bộ xử lý khác - Intel Core i7-5820K sáu lõi (12 lõi logic bao gồm Siêu phân luồng). Như chúng ta đã thấy, với 6 lõi xử lý vật lý hoặc 12 lõi xử lý logic, thời gian thực hiện kiểm thử trở nên cao bất thường. Và kết quả này đã được xác nhận trên vi xử lý Intel Core i7-5820K. Bộ xử lý chạy ở tốc độ 3,6 GHz. Với tất cả các lõi có công nghệ Siêu phân luồng được kích hoạt (12 lõi), thời gian thực hiện tác vụ thử nghiệm dài bất thường: 1886 giây. Nếu bạn tắt các lõi tuần tự, thì với 10, 8, 4 và 2 lõi, thời gian thực hiện thử nghiệm là 200-400 giây và với 6 lõi - 1235 giây.

Như bạn có thể thấy, kết quả kỳ lạ tương tự thu được trên bộ xử lý Intel Core i7-5820K cũng như trên bộ xử lý Intel Core i7-6950X.

Bất chấp sự phụ thuộc kỳ lạ của kết quả kiểm tra FFTW vào số lượng lõi xử lý, chúng tôi đã quyết định để nó trong gói ứng dụng sẽ được sử dụng trong iXBT Application Benchmark 2017. Ứng dụng này chứng minh rõ ràng rằng nhiều lõi không phải lúc nào cũng tốt. Đôi khi nó xảy ra khác nhau.

Có lẽ trong phiên bản cuối cùng, chúng tôi sẽ giảm kích thước của biến đổi Fourier để loại trừ các trường hợp thử nghiệm như vậy kéo dài hơn 30 phút.

Sự phụ thuộc của kết quả vào tần số bộ xử lý

Bây giờ chúng ta hãy xem kết quả thử nghiệm trong các ứng dụng FFTW và GNU Octave phụ thuộc vào tần số bộ xử lý như thế nào.

Tần số lõi của bộ xử lý Intel Core i7-6950X đã được thay đổi trong cài đặt BIOS UEFI của bo mạch Asus Rampage V Edition 10 bằng cách thay đổi hệ số nhân. Tần số hoạt động của tất cả các lõi đã được cố định (nghĩa là chế độ Turbo Boost đã bị tắt). Tất cả các lõi bộ xử lý đã được sử dụng (10 vật lý/20 logic). Tần số thay đổi từ 3,0 GHz đến 4,2 GHz theo bước 200 MHz. Kết quả kiểm tra như sau:

Như có thể thấy từ kết quả kiểm tra, cả trong gói FFTW và gói GNU Octave, thời gian thực hiện kiểm tra phụ thuộc vào tần số bộ xử lý. Trong gói FFTW, khi tần số bộ xử lý tăng từ 3 lên 4,2 GHz (tăng 40%), thời gian thực hiện kiểm tra giảm 21%. Trong gói GNU Octave, tần số bộ xử lý tăng tương tự dẫn đến giảm 24% thời gian thực hiện các tác vụ thử nghiệm.

Như vậy, sự phụ thuộc của kết quả thử nghiệm FFTW và GNU Octave vào tần số bộ xử lý là khá điển hình. Tác vụ kiểm tra trong gói GNU Octave có tỷ lệ tốt hơn một chút theo tần số bộ xử lý và tác vụ trong gói FFTW có tỷ lệ kém hơn một chút.

Sự phụ thuộc của kết quả vào tần số bộ nhớ

Bây giờ chúng ta hãy xem sự phụ thuộc của tốc độ thực hiện các tác vụ kiểm tra vào tần suất hoạt động của bộ nhớ. Bộ nhớ DDR4 hoạt động ở chế độ bốn kênh (một mô-đun trên mỗi kênh) và tần số bộ nhớ đã được thay đổi trong cài đặt BIOS UEFI trong phạm vi từ 1600 MHz đến 2800 MHz theo các bước 200 MHz. Thời gian bộ nhớ đã được cố định và không thay đổi khi tần số thay đổi. Tất cả các lõi xử lý đều chạy ở tốc độ 4,0 GHz.

Kết quả kiểm tra như sau:

Như chúng ta có thể thấy, tốc độ thực hiện các tác vụ kiểm tra trong gói GNU Octave và FFTW không phụ thuộc vào tần số hoạt động của bộ nhớ. Ít nhất ở chế độ hoạt động bốn kênh, băng thông bộ nhớ DDR4 khá đủ ngay cả ở tần số 1600 MHz và việc tăng thêm tần số bộ nhớ không cho phép tăng tốc độ thực hiện các tác vụ kiểm tra.

Đây là kết quả điển hình cho hầu hết các ứng dụng. Các ứng dụng có tốc độ hoạt động phụ thuộc vào tần số bộ nhớ là một ngoại lệ đối với quy tắc này.

Phần kết luận

Vì vậy, trong bài viết thứ hai của loạt bài mới, chúng tôi đã xem xét hai bài kiểm tra dựa trên các ứng dụng toán học chuyên biệt FFTW và GNU Octave. Lấy bộ xử lý Intel Core i7-6950X 10 nhân làm ví dụ, cho thấy các tác vụ thử nghiệm trong các gói này được thực hiện song song trên tất cả các lõi xử lý nhưng không thể tải chúng 100%. Kết quả thử nghiệm trong ứng dụng GNU Octave thực tế không phụ thuộc vào số lượng lõi xử lý, trong khi kết quả thử nghiệm trong ứng dụng FFTW thì ngược lại, phụ thuộc rất nhiều vào số lượng lõi xử lý, nhưng sự phụ thuộc này rất kỳ lạ. Tại một số lõi nhất định (14, 12 và 6), thời gian thực hiện tác vụ kiểm tra trở nên lớn bất thường và trong mọi trường hợp khác, thời gian thực hiện tác vụ kiểm tra chỉ phụ thuộc một chút vào số lượng lõi.

Ngoài ra, người ta còn chứng minh rằng tốc độ thực hiện các tác vụ thử nghiệm trong gói FFTW và GNU Octave phụ thuộc tuyến tính vào tần số của lõi bộ xử lý (khi tần số thay đổi trong phạm vi từ 3 đến 4,2 GHz).

Cuối cùng, người ta đã chứng minh rằng thời gian thực hiện các tác vụ thử nghiệm trong ứng dụng FFTW và GNU Octave không phụ thuộc vào tần số bộ nhớ DDR4 (ở chế độ bốn kênh và trong phạm vi từ 1600 đến 2400 MHz).

Có một lưu ý nữa có thể được đưa ra liên quan đến các ứng dụng FFTW và GNU Octave khi sử dụng chúng để thử nghiệm. Gói GNU Octave có độ lặp lại kém và bạn nên thực hiện năm lần kiểm tra để thu được kết quả với sai số thấp. Ứng dụng FFTW cho kết quả nhất quán hơn, nhưng ứng dụng này cũng yêu cầu ít nhất ba lần chạy thử.

Trong bài viết tiếp theo của loạt bài này, chúng ta sẽ xem xét ba ứng dụng được sử dụng để kết xuất cảnh 3D: POV-Ray 3.7, LuxRender 1.6 và Blender 2.77a.

  • Hướng dẫn

# wget https://dl.fedoraproject.org/pub/epel/7/x86_64/ # yum localinstall epel-release-6-7.noarch.rpm

Và chỉ sau đó yum install octave mới hoạt động.
Cuối cùng, mọi thứ đã sẵn sàng và chương trình đã được cài đặt.


# quãng tám GNU Octave, phiên bản 3.8.2 Bản quyền (C) 2014 John W. Eaton và những người khác. Đây là phần mềm miễn phí; xem mã nguồn để biết các điều kiện sao chép. TUYỆT ĐỐI KHÔNG CÓ BẢO HÀNH; thậm chí không phải vì KHẢ NĂNG BÁN hoặc SỰ PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ. Để biết chi tiết, hãy nhập "bảo hành". Octave được định cấu hình cho "x86_64-redhat-linux-gnu". Thông tin bổ sung về Octave có sẵn tại http://www.octave.org. Hãy đóng góp nếu bạn thấy phần mềm này hữu ích. Để biết thêm thông tin, hãy truy cập http://www.octave.org/get-involved.html Đọc http://www.octave.org/bugs.html để tìm hiểu cách gửi báo cáo lỗi. Để biết thông tin về những thay đổi so với phiên bản trước, hãy nhập "tin tức". quãng tám:1>

Hoạt động ma trận

Chúng ta đừng lãng phí thời gian và thực hiện các thao tác có thể lặp lại bằng cách sử dụng bc và awk, những điều đã được thảo luận lần trước. Hãy chơi một chút với ma trận.


Đầu tiên là một phép hoán vị ma trận đơn giản:


quãng tám:1> A= A = 1 3 5 2 4 6 quãng tám:2> A" ans = 1 2 3 4 5 6

Hãy thử giải hệ phương trình tuyến tính:


x + y + z = 9 2x + 4y - 3z = 1 3x + 6y - 5z = 0

Chúng tôi lái xe trong ma trận MỘT, vectơ b và giải phương trình Ax = b ở dạng ma trận


quãng tám:1> A= A = 1 1 1 2 4 -3 3 6 -5 quãng tám:2> b= b = 9 1 0 quãng tám:3> x=A\b x = 7,00000 -1,00000 3,00000

Chúng ta tìm định thức và giá trị riêng của ma trận.


quãng tám:4> det (A) ans = -1,00000 quãng tám:5> eig (A) ans = -2,88897 2,76372 0,12525

Số phức cũng được hỗ trợ trong tính toán.


quãng tám:6> A=[-3 0 2; 1 -1 0; -2 -1 0] A = -3 0 2 1 -1 0 -2 -1 0 quãng tám:7> x=det (A) x = -6 quãng tám:8> y=eig(A) y = -1.00000 + 1,41421i -1,00000 - 1,41421i -2,00000 + 0,00000i

Hàm và Biến

Trong Octave, các biến và hàm dễ tạo hơn nhiều, chẳng hạn như trong Java hoặc C. Sử dụng ma trận làm ví dụ, chúng ta đã thấy cách khai báo biến. Tạo một hàm mới có cú pháp sau


hàm = tên_hàm (arg1, arg2, ..., argN) thân hàm cuối hàm
Theo quy định, một hàm mới được tạo trong một tệp riêng biệt hoặc trong tệp tập lệnh Octave
trước cuộc gọi đầu tiên của cô ấy. Nếu bạn có ý định sử dụng một chức năng tùy chỉnh trong các tệp tập lệnh khác nhau thì tất nhiên bạn nên tạo nó trong một tệp riêng biệt. Trong GNU Octave, các tệp chức năng có phần mở rộng .m và được tải tự động. Tên tệp phải khớp hoàn toàn với tên hàm.

Viết hàm giải phương trình bậc hai ax² + bx + c = 0


quãng tám:9> hàm = quadr(a, b, c) > D = sqrt(b^2-4*a*c); > x1 = (-b-D)/(2*a); > x2 = (-b+D)/(2*a); > hàm cuối quãng tám:10> =quadr(a, b, c) y1 = 2 y2 = 3

GUI

Thực ra ở đây chúng ta đang nói về toán học dòng lệnh nhưng vẫn chưa rõ cách hiển thị đồ thị hàm số trên màn hình. Tuy nhiên, không có bí mật nào ở đây - Gnuplot được sử dụng cho những mục đích này. Bạn có thể mô tả Lorentz Attractor bằng cách cài đặt gói bổ sung odepkg.


hàm = freessler (vt, vx) vyd = [- (vx(2) + vx(3)); vx(1) + 0,2 * vx(2); 0,2 + vx(1) * vx(3) - 5,7 * vx(3)]; endfunction A = odeset("MaxStep", 1e-1); = ode78 (@froessler, , , A); ô phụ(2, 2, 1); lưới điện trên"); cốt truyện (t, y(:,1), "-b;f_x(t);", t, y(:,2), "-g;f_y(t);", \ t, y(:,3 ), "-r;f_z(t);"); ô phụ(2, 2, 2); lưới điện trên"); cốt truyện (y(:,1), y(:,2), "-b;f_(xyz)(x, y);"); ô phụ(2, 2, 3); lưới điện trên"); cốt truyện (y(:,2), y(:,3), "-b;f_(xyz)(y, z);"); ô phụ(2, 2, 4); lưới điện trên"); lô3 (y(:,1), y(:,2), y(:,3), "-b;f_(xyz)(x, y, z);");


Shell đồ họa thuận tiện nhất để làm việc với Octave là chương trình QtOctave. Cái sau đã được ổn định và bao gồm trong gói kể từ khi phát hành Octave 4.0.

Cái gì tiếp theo?

Câu hỏi có thể nảy sinh: tại sao chúng ta lại cần các gói toán học mở? Mọi người đều cần các ứng dụng văn phòng, nhưng không phải ai cũng cần giải phương trình Poisson bằng phép biến đổi Laplace khi ngồi ở nhà. Đối với các trường đại học, MATLAB rẻ hơn nhiều so với các cá nhân và tổ chức thương mại. Các tổ chức thương mại, nếu cần thiết, sẽ tìm nguồn tài chính và cho những người bình thường học toán tại các trường đại học hoặc đếm theo cột.


Tất nhiên, đây là một quan niệm sai lầm. Các tính toán khoa học được thực hiện bằng phần mềm nguồn mở có thêm “mức độ bảo vệ”, bởi vì nếu muốn bất cứ ai cũng có thể lặp lại các phép tính tương tự và kiểm tra tính hợp lệ của kết quả. Các tính toán tương tự được thực hiện trên phần mềm đắt tiền cắt bỏ một phần khả năng kiểm tra kết quả. Vấn đề thực sự rộng hơn nhiều (văn bản tiếng Anh) và nó không chỉ liên quan đến các chương trình toán học mở hoặc độc quyền. Không có gì bí mật khi các tạp chí khoa học, theo quy định, không yêu cầu tác giả cung cấp đủ dữ liệu và phương pháp để đảm bảo sự lặp lại của các kết quả thí nghiệm và thử nghiệm mô hình. Các nhà kinh tế và tài chính đặc biệt thường phạm tội với điều này, chỉ đơn giản là phân loại dữ liệu của họ. Kiểm tra các tính toán và kết luận giữa một mẫu từ một loạt bài viết có dữ liệu “đã được phân loại” Thêm thẻ

Toán học miễn phí

Alexander Bikmeev hiểu toán học máy tính miễn phí là như thế nào và phần mềm miễn phí có tính toán học như thế nào.

Bất kỳ ngành khoa học nào, từ vật lý đến ngữ văn, đều sử dụng những thành tựu của toán học. Về vấn đề này, các chuyên gia không chuyên về toán học cần các công cụ cho phép họ đặt ra các vấn đề ở dạng toán học và thu được giải pháp dưới dạng công thức hoặc một tập hợp giá trị, nghĩa là họ cần các hệ thống toán học máy tính có thể đảm nhận công việc giải quyết. các vấn đề toán học bằng nhiều phương pháp khác nhau.

Thật không may, ở nước ta, những chương trình như vậy lại phổ biến trong một lĩnh vực hoạt động khoa học khá hẹp, và điều quan trọng nhất là do học sinh và sinh viên không được làm quen với các gói toán học chuyên nghiệp, chi phí chỉ cho một giấy phép cho thường lên tới hàng nghìn và hàng chục nghìn rúp.

Chúng tôi mời bạn khám phá thế giới của các gói toán học miễn phí có thể tải xuống miễn phí từ Internet, được sử dụng cho bất kỳ loại nghiên cứu nào (đôi khi phải đặt trước), đồng thời, nhờ có sẵn các văn bản nguồn, hãy nghiên cứu nội bộ của chúng. cấu trúc và, nếu muốn, mở rộng chức năng của chúng bằng lực lượng của riêng bạn.

Tính toán tượng trưng

Các hệ thống toán học máy tính (CM) đã được phát triển từ lâu và cực đại() là một trong những người đầu tiên. Ban đầu nó là một sản phẩm thương mại, nhưng không thể chịu được sự cạnh tranh nên hệ thống này trở nên miễn phí.

Vỏ bọc wxMaxima và một mục menu cho phép bạn hiển thị hoặc ẩn các bảng hoạt động toán học khỏi màn hình.

Ưu điểm chính cực đạiđi trước các hệ thống miễn phí khác là hỗ trợ tính toán biểu tượng. Nghĩa là, bằng cách nhập biểu thức hoặc phương trình giải tích, bạn cũng có thể nhận được kết quả ở dạng phân tích.

cực đại cho phép bạn giải các phương trình đại số, hệ phương trình, thực hiện các phép tính tích phân, vi phân, khai triển chuỗi, v.v. Ngoài ra, em còn có thể giải các phương trình vi phân, giá trị biên, bài toán Cauchy, thực hiện các phép tính đại số với ma trận, xây dựng đồ thị và bề mặt được xác định bởi các hàm khác nhau trong hệ tọa độ Descartes và hệ tọa độ cực. Thật khó để liệt kê tất cả các khả năng.

Dành cho SCM cực đại Một số shell đã được phát triển, trong đó thuận tiện nhất (đối với người dùng mới) là wxMaxima(xem hình 1). Bắt đầu từ phiên bản 0.8.0, nó đang nhanh chóng thay đổi theo chiều hướng tốt hơn. Phiên bản mới nhất (0.8.3) chứa các tính năng của các gói thương mại nổi tiếng như Cây phongToánCAD. Làm việc trong shell này khá đơn giản và cho phép bạn nhận được kết quả chấp nhận được chỉ sau vài phút sử dụng. Nhiều thao tác, có tên trong menu và trên thanh công cụ, được trang bị các trình hướng dẫn tiện lợi cho phép bạn giải quyết vấn đề ngay cả khi không biết ngôn ngữ và lệnh tích hợp cực đại. Chà, một thực tế quan trọng nữa - tất cả các shell cho SCM này đều được Nga hóa. Ngoài ra, bằng cách xem gói miễn phí cực đại, sinh viên sẽ có thể dễ dàng làm quen hơn với các gói thương mại, điều này là do sự tương đồng tương đối giữa giao diện và cú pháp được sử dụng (đặc biệt đối với cực đạiCây phong).

Hệ thống này được ghi chép đầy đủ nhưng tài liệu tham khảo chỉ được trình bày bằng tiếng Anh. Tạp chí của chúng tôi đã xuất bản các tài liệu đào tạo về làm việc tại SCM cực đại(LXF81–86). Là một ứng dụng bảng điều khiển, cực đại có thể hoạt động ở chế độ hàng loạt, nghĩa là bạn có thể gửi cho nó một tệp văn bản có danh sách các lệnh để xử lý và nhận lại tệp văn bản có kết quả và nếu bạn cho rằng đầu ra có thể được định dạng bằng hệ thống đánh dấu TeX, thì điều này cho phép bạn sử dụng nó làm cơ sở để xây dựng các ứng dụng của riêng bạn. Một ví dụ về sự phát triển như vậy là việc mở rộng TeXmac.

Dựa trên kinh nghiệm học tập hiện có, chúng ta có thể nói rằng học sinh năm cuối thành thạo việc làm trong cực đạiđủ nhanh và bắt đầu sử dụng nó khi hoàn thành các bài tập ở các môn học khác. Nhưng với mỗi khóa học, họ ngày càng gặp nhiều vấn đề hơn.

Thực tế là, cùng với rất nhiều khía cạnh tích cực, cực đại cũng có những cái tiêu cực. Thứ nhất, kết quả cuối cùng, đặc biệt là khi giải các bài toán phức tạp, phần lớn phụ thuộc vào trình độ hiểu biết toán học và kinh nghiệm sử dụng SCM nhất định, vì đôi khi bạn cần phải tự mình thực hiện các phép biến đổi sơ bộ. Thứ hai, cực đại hoạt động rất tốt với các biểu thức đại số, nhưng các biểu thức siêu việt, logarit và các biểu thức tương tự gây khó khăn đáng kể cho cô ấy. Tuy nhiên, nếu không thể thu được lời giải phân tích thì bạn luôn có thể sử dụng các phép tính số. Thứ ba, cơ hội cực đạiđể xây dựng các biểu đồ hoặc trực quan hóa phức tạp, ví dụ: trường vectơ, không thể so sánh với khả năng Cây phong. Và cuối cùng, thứ tư, để làm việc hiệu quả, cần nghiên cứu nhiều lệnh và hằng cực đại, và điều này cần có thời gian và sự kiên nhẫn.

SCM cực đạiđược bao gồm trong nhiều bản phân phối Linux, hoặc ít nhất là bắt buộc phải có trong kho. Nó được bao gồm trong các sản phẩm giáo dục như AltLinux School, Edubfox và EduMandriva.

Cửa sổ Studio SMath, trong đó hàm được xác định, đạo hàm của nó được tính toán và vẽ đồ thị.

Cần lưu ý rằng các kỹ sư vẫn quen làm việc với một ứng dụng máy tính mạnh mẽ như ToánCAD. Đây là một hệ thống tính toán kỹ thuật có sẵn cho mọi nền tảng (xem Gói thương mại), nhưng với chi phí cao. Tuy nhiên, nhà tuyển dụng yêu cầu sinh viên tốt nghiệp có thể làm việc trong hệ thống này. Cơ sở giáo dục nên làm gì?

Một dự án tiết kiệm đã ra đời ở nước ta: Studio SMath(http://ru.smath.info/forum/). Đây là một sản phẩm miễn phí, nhưng thật không may, vẫn chưa phải là sản phẩm miễn phí, nhà phát triển của nó, Andrey Ivashov, đang cố gắng tạo ra một sản phẩm thay thế cho con quái vật ToánCAD, và anh ấy đã thành công (xem Hình 2). Ứng dụng này được thiết kế cho môi trường .MẠNG LƯỚI, sau đó điều chỉnh cho phù hợp Bệnh tăng bạch cầu đơn nhân.

Studio SMath cho phép bạn thực hiện các phép tính phân tích, các phép toán ma trận, vẽ đồ thị và tính đạo hàm, thậm chí còn hỗ trợ các chức năng lập trình. Thật không may, tích hợp phân tích vẫn chưa được hỗ trợ, nhưng sản phẩm đang phát triển thành công và vào mùa thu năm 2009, tác giả đang hoàn thành việc phát triển cơ sở hạ tầng cho phép sử dụng các plug-in của bên thứ ba. Có lẽ khi đó sự phát triển của ứng dụng sẽ đạt đến một tầm cao mới và chúng ta sẽ có được một giải pháp thay thế chính thức ToánCAD.

Cũng cần lưu ý rằng vào mùa xuân năm 2009, theo thỏa thuận với tác giả, sản phẩm đã được đưa vào phân phối giáo dục EduMandriva. Mặc dù chức năng hạn chế, ứng dụng này cho phép bạn thực hiện các phép tính hàng ngày ở cấp độ học sinh và học sinh trung học cơ sở, cũng như các phép tính kỹ thuật đơn giản. Và nếu bạn coi đó Studio SMath cảm giác tuyệt vời trên máy tính bỏ túi và điện thoại thông minh được điều khiển bởi Windows Mobile, vì vậy việc làm quen với nó là điều bắt buộc đối với học sinh và sinh viên.

Trang web chính thức luôn chứa tài liệu ở định dạng DOC và ODT và trên diễn đàn chính thức, bạn có thể đặt câu hỏi cho nhà phát triển hoặc cộng đồng và thảo luận về các thuật toán được sử dụng để phát triển ứng dụng.

Cửa sổ wxMaxima với kết quả tính toán ký hiệu và đồ thị của hàm số

Để kết thúc phần này, tôi muốn thu hút sự chú ý đến thực tế là các gói toán học biểu tượng kết quả là tạo ra một biểu thức chứ không phải một con số. Hãy xem xét ví dụ được hiển thị trong Hình. 3, trong đó một hàm tùy chỉnh được xác định và đạo hàm bậc hai được tìm thấy cho nó; sau đó chức năng được tích hợp. Đồng thời, một lịch trình đã được tạo ra. Do đó, học sinh và sinh viên có thể thực hiện phân tích đầy đủ về chức năng một cách trực quan. Và đó không phải là tất cả: cực đại biết cách đơn giản hóa biểu thức bằng cách mở dấu ngoặc đơn, đưa các thuật ngữ tương tự, thực hiện thay thế và chỉ định các điều kiện và giả định nhất định áp đặt cho biểu thức. Thêm vào đó là khả năng giải một cách tượng trưng các phương trình và hệ phương trình, cũng như phương trình vi phân, và bạn sẽ hiểu rằng học sinh hiện đại không thể làm gì nếu không có những công cụ này và giáo viên khoa học có thể làm sinh động các bài học và bài tập thực hành bằng cách giới thiệu các nhiệm vụ tương tác hoặc tài liệu minh họa .

Tính toán số

Như bạn đã biết, không phải mọi vấn đề đều có thể được giải quyết bằng phương pháp phân tích, tức là có thể thu được lời giải dưới dạng một công thức nhất định. Sau đó, các phương pháp số khác nhau được đưa ra để giải quyết vấn đề với độ chính xác nhất định. Đại diện nổi tiếng nhất của các ứng dụng tính toán số là hệ thống đại số máy tính (CAS) Matlab.

Matlab rộng rãi trên toàn thế giới (xem so sánh trong LXF109), nhưng chi phí của các giấy phép giáo dục thậm chí còn vượt quá khả năng của không chỉ các trường học mà còn của nhiều trường đại học Nga. Ở nước ngoài, họ cũng thích đếm tiền hơn - và đầu tư nguồn nhân lực vào việc phát triển các sản phẩm tương tự miễn phí Matlab. Chúng ta hãy nhìn vào một số trong số họ.

Trước hết, theo tôi, cần tập trung vào dự án GNU Ostave(http://www.gnu.org/software/octave/). Các nhà phát triển định vị hệ thống này là “ngôn ngữ lập trình cấp cao để tính toán số”. Giống như nhiều dự án *nix miễn phí lâu đời, nó cung cấp giao diện dòng lệnh. Nhập vào thiết bị đầu cuối quãng tám– và (tất nhiên là nếu GNU quãng támđược cài đặt trên máy tính của bạn), lời nhắc về hệ thống này sẽ xuất hiện trước mặt bạn. Bắt đầu nhập lệnh và thiết bị đầu cuối sẽ hiển thị kết quả tính toán.

Giao diện dòng lệnh có những ưu điểm của nó, vì nó thực tế không chiếm tài nguyên máy tính của máy tính, để lại toàn bộ sức mạnh của bộ xử lý cho việc tính toán chứ không phải để hiển thị văn bản lệnh và kết quả tính toán đẹp mắt. Tuy nhiên, người dùng hiện đại hiếm khi sẵn sàng chấp nhận điều này.

. Vỏ bọc qtQuãng tám với các tính toán được thực hiện.

Trong một khoảng thời gian dài GNU quãng tám không có giao diện đồ họa cho đến khi nó xuất hiện qtQuãng tám(xem hình 4). Shell này rất giống với giao diện Matlab và cho phép bạn tự động hóa việc thực hiện một số thao tác thông thường (ví dụ: vẽ đồ thị) bằng trình hướng dẫn.

Ngôn ngữ hệ thống được làm giống nhất có thể với ngôn ngữ Matlab; Vì vậy, một người đã làm chủ được GNU quãng tám, sẽ có thể làm việc thực tế mà không cần đào tạo lại Matlab, và đây chính xác là những gì nhà tuyển dụng cần. Ngoài ra, những người đam mê phong trào phần mềm miễn phí đã tạo ra đủ số lượng gói mở rộng cho hệ thống. Do đó, chức năng của SKA không ngừng phát triển. Chà, sự hiện diện của tài liệu toàn diện (mặc dù bằng tiếng Anh) cho cả hệ thống và các gói mở rộng khiến sản phẩm này không chỉ mang lại lợi nhuận mà còn có thể truy cập được để nghiên cứu.

Những nhược điểm bao gồm giao diện shell không thân thiện với người dùng qtQuãng tám, đặc biệt là vì phiên bản chưa được cập nhật kể từ mùa thu năm 2008 (có vẻ như dự án đã bị bỏ dở). Các gói mở rộng không có nhiều chức năng và không tỏa sáng với khả năng đồ họa; Ngoài ra, chúng không tương đương nhau, vì tình huống là một dự án được phát triển bởi một sinh viên năm thứ nhất và dự án thứ hai, chẳng hạn, bởi một nhóm giáo viên đại học. Nhưng đây là một dự án hoàn toàn miễn phí nên bạn không phải lo lắng về tính thuần túy cấp phép của các giải pháp thu được.

Gói tiếp theo mà tôi muốn xem xét có tên là Scilab(http://www.scilab.org), chính cái tên của nó đã chỉ ra sự tương đồng với Matlab. Ban đầu nó cũng là một sản phẩm thương mại và được gọi là Blaise, và sau đó húng quế. Người tạo ra nó được lấy cảm hứng từ những phiên bản đầu tiên Matlab, và họ đã cạnh tranh một thời gian. Tuy nhiên, vào đầu những năm 90, Simulog đã ngừng bán nó và sau đó sáu nhà phát triển của Viện nghiên cứu quốc gia Pháp (INRIA) đã thành lập dự án Scilab.

Scilab nổi bật so với các công ty cùng ngành ở giao diện được phát triển tốt, sự hiện diện của một số lượng khá lớn các gói mở rộng chuyên dụng và thực tế là nó được Consortium hỗ trợ Scilab, bao gồm các tổ chức giáo dục và khoa học lớn từ khắp nơi trên thế giới.

Giao diện Scilab 5

Scilab- hệ thống miễn phí duy nhất tương tự Matlab, có công cụ tạo mô hình khối riêng được gọi là khoa học viễn tưởng. Việc phân phối sản phẩm bao gồm một tập lệnh và trình chỉnh sửa chức năng tích hợp sẵn với khả năng gỡ lỗi. Scilab có khả năng đồ họa tiên tiến để tạo các ứng dụng công nghệ cao. Bạn có thể làm quen với chức năng của hệ thống bằng cách xem các bản demo - một số trong số chúng khá ấn tượng (chọn các mục menu ? > Thể hiện khả năng).

Scilab chứa các hàm không chỉ để thực hiện tất cả các loại phép toán trên ma trận mà còn để xây dựng đồ thị và bề mặt ba chiều trong các hệ tọa độ khác nhau, các hàm làm việc với thuật toán di truyền, giải các bài toán trên đồ thị, hàm thống kê, công cụ mô phỏng, v.v. Một số hội nghị dành riêng cho việc sử dụng SKA được tổ chức hàng năm Scilab trong khoa học, giáo dục và sản xuất.

Một số cuốn sách đã được xuất bản trên khắp thế giới mô tả công việc trong Scilab cũng như giải quyết một số bài toán chuyên môn. Thật không may, không ai trong số họ đã được dịch sang tiếng Nga. Chỉ có hai cuốn sách được xuất bản ở Nga, một cuốn là một phần của dự án quốc gia và cuốn thứ hai là Scilabđược mô tả cùng với các gói không miễn phí. Tạp chí của chúng tôi cũng đã nhiều lần xuất bản các sách giáo khoa về làm việc trong Scilab(LXF106–109 và ), tuy nhiên vẫn còn thiếu tài liệu và tài liệu tham khảo không phải lúc nào cũng cho phép bạn hiểu cách thức hoạt động của chức năng này hoặc chức năng kia.

Freemat- một kết quả ấn tượng về khả năng của một nhóm gồm ba người cùng chí hướng.

Phát hành phiên bản thứ năm Scilabđánh dấu sự khởi đầu của một giai đoạn mới trong sự phát triển của hệ thống. Giao diện ứng dụng đã thay đổi (các nhà phát triển đã bỏ GTK-interface), công cụ tạo mô hình khối bắt đầu thay đổi khoa học viễn tưởng, vào tháng 10 năm 2009 sẽ đổi tên thành Xcos.

Một biến thể khác của chủ đề MatlabFreemat(); gói này có một tính năng chung quan trọng khác với Matlab, cụ thể là hỗ trợ lập trình hướng đối tượng. Giao diện chương trình khá dễ chịu. Tự động hoàn thành các lệnh được thực hiện trong cửa sổ chính. Trang web chính thức có hướng dẫn đầy đủ để làm việc với hệ thống (bằng tiếng Anh). Gói phân phối chương trình nhỏ, theo tiêu chuẩn ngày nay, có kích thước - 18 MB.

Hệ thống này cho phép giải số các phương trình và hệ phương trình, cả tuyến tính và phi tuyến, cũng như xử lý tín hiệu số (xem Hình 6); có khả năng làm việc với ma trận đa chiều. Điểm tích cực chính Freemat, so với ScilabQuãng tám, khả năng tương thích cao hơn của ngôn ngữ nội bộ của hệ thống với ngôn ngữ Matlab Và sử dụng OpenGLđể tạo đồ thị và bề mặt, làm cho chúng trông đẹp hơn.

Nhược điểm Freemat có hiệu suất thấp (một số tác vụ được giải quyết chậm hơn nhiều lần so với các gói khác) và thiếu các gói mở rộng. Hệ thống này chỉ được phát triển nhờ nỗ lực của một nhóm gồm ba người. Dự án không có cộng đồng lớn.

Toán khoảng cách

Các hệ thống được đề cập ở trên là các dự án cục bộ, nghĩa là công việc với chúng được thực hiện trên một máy. Nhưng điều này có thể bất tiện - ví dụ như với việc học từ xa; Ngoài ra, không phải tất cả học sinh đều đồng ý (và đôi khi có thể) cài đặt các ứng dụng này trên máy tính ở nhà của họ. Trong trường hợp này, cần có các công cụ để làm việc từ xa với các gói toán học.

SMath Studio trực tiếp: tính toán mà không cần rời khỏi trình duyệt (mặc dù không nhanh lắm).

Trong số những người chúng tôi đã xem xét, cơ hội như vậy được cung cấp bởi Studio SMath. Trong chuong Sống Trang web chính thức (http://smath.info/live) chứa một bảng tính ảo mà trên đó bất kỳ ai cũng có thể thực hiện các phép tính của mình. Hệ thống này rất thuận tiện, mặc dù nó không đặc biệt nhanh.

Chưa hết, hệ thống còn chuyên nghiệp hơn về mặt này HIỀN NHÂN(http://www.sagemath.org/). Hệ thống này bao gồm một máy chủ web cung cấp giao diện đồ họa để tương tác với mã Python, trên đó cốt lõi của nó được viết. Bất kỳ người dùng nào sử dụng trình duyệt web yêu thích của mình đều có thể kết nối với máy chủ, đăng ký và nhận không gian cá nhân của mình. Nó có thể mở hoặc đóng, nghĩa là chỉ có quản trị viên máy chủ và chủ sở hữu mới có thể truy cập được. Các bảng tính có thể được tạo trong không gian cá nhân và tất cả các phép tính được thực hiện trên chúng.

Trong trang tính, bạn có thể sử dụng bất kỳ ngôn ngữ có sẵn nào và có rất nhiều ngôn ngữ như vậy. Mặc định hệ thống HIỀN NHÂN kết hợp các sản phẩm sau: GAP, Maxima, Python, R, LaTeX. Ngoài ra, chúng có thể được kết nối Quãng tám, Tiên đề, Magma, Mathematica, Matlab, Maple, Mupad và những người khác. Kết quả là, chúng tôi có được một máy chủ làm việc từ xa duy nhất cho phép chúng tôi dạy bất kỳ gói toán học nào và thực hiện các phép tính bằng cả hệ thống toán học máy tính thương mại và miễn phí.

. Vì những lý do không rõ, Hiền nhân từ chối làm việc ở Firefox, nhưng nếu không thì đây là một giải pháp tốt cho công việc từ xa.

Hệ thống quyền truy cập vào không gian cá nhân và khả năng cộng tác với một bảng tính của nhiều người dùng cùng một lúc cho phép bạn tổ chức việc học từ xa với một trang giải thích tài liệu giáo dục có chứa các ví dụ về giải quyết vấn đề và các trang bài tập cá nhân cho mỗi học sinh.

Hiện nay có một số công khai HIỀN NHÂN-máy chủ - bạn có thể kết nối với họ, xem các trang được đăng trên phạm vi công cộng, tạo không gian cá nhân của riêng bạn và trong trường hợp gặp khó khăn, hãy yêu cầu trợ giúp từ cộng đồng. Để thực hiện việc này, chỉ cần đặt bảng tính ở chế độ công khai. Tôi đảm bảo với bạn: có rất nhiều người sẵn sàng giúp đỡ, vấn đề duy nhất là ngôn ngữ làm việc là tiếng Anh.

Trang web chính thức chứa các liên kết đến một máy chủ công cộng thử nghiệm (http://www.sagenb.org), cũng như các tài liệu giáo dục và sách được tạo bằng hệ thống này. Đăng ký và dùng thử HIỀN NHÂN- có lẽ đây là thứ bạn đang tìm kiếm? Điều đáng lưu ý là chúng tôi không thể đăng nhập vào máy chủ trong Firefox, nhưng không có vấn đề gì trong các trình duyệt khác.

Vì vậy, chúng tôi đã xem xét các hệ thống toán học máy tính miễn phí phổ biến nhất. Việc chúng có thể được sử dụng trong đào tạo và làm việc hay không là do bạn quyết định. Chúng tôi đã đưa ra lựa chọn của mình và chúng tôi không hối tiếc.

Hệ thống thương mại

Trong số các hệ thống thương mại, ba hệ thống phổ biến nhất là: Matlab(tính toán số), Cây phong(điểm nhấn chính là tính toán tượng trưng) và Toán học(kết hợp thành công nguyện vọng của hai điều đầu tiên). Gói kỹ thuật mạnh mẽ nổi bật ToánCAD, vì nó giống một máy tính kỹ thuật lớn hơn và không nhằm mục đích giải các vấn đề phức tạp của vật lý toán học hoặc lý thuyết mã hóa, xử lý tín hiệu, v.v.

Tất cả các gói này đều có phiên bản dành cho các nền tảng phổ biến nhất: Windows, Linux và Mac OS X. Dưới đây là chi phí cho một giấy phép của các gói này dành cho các tổ chức học thuật, theo bảng giá của Softline:

  • Matlab– 30.765 rúp;
  • Toán học– 9002 rúp;
  • Cây phong– 36.286 rúp;
  • ToánCAD– 5290 chà.

Bạn có thể rút ra kết luận của riêng bạn.