Ngôn ngữ Matlab

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu ứng dụng công nghệ mạng nơron tế bào vào giải phương trình navier stokes trên mặt biển​ (Trang 34)

1.4.1 Tổng quan về Matlb

MATLAB là một bộ chương trình phần mềm lớn dành cho tính toán kỹ thuật. ta có thể dùng MATLAB để:

 Tính toán.

 Phát triển thuật toán.

 Thu thập dữ liệu.

 Mô hình và mô phỏng.

 Phân tích dữ liệu.

 Vẽ đồ thị.

 Giao diện đồ họa.

MATLAB là tên viết tắt từ “MATrix LABoratory”. Như tên của phần mềm cho thấy, phần cốt lõi của phần mềm là dữ liệu được lưu dưới dạng array (ma trận) và các phép tính tóan ma trận, giúp việc tính tóan trong MATLAB nhanh và thuận tiện hơn so với lập trình trong C hay FORTRAN. Đặc biệt, khả năng tính tóan của MATLAB có thể dễ dàng được mở rộng thông qua các bộ toolbox. Toolbox là tập hợp các hàm MATLAB (M-file) giúp giải quyết một bài tóan cụ thể.

MATLAB gồm 5 phần chính:

 Development Environment: là một bộ các công cụ giúp ta sử dụng các hàm và tập tin của MATLAB. Nó bao gồm: MATLAB desktop, Command Window, a

command history, an editor, debugger, browsers for viewing help, the workspace, files, the search path.

 MATLAB Mathematical Function Library: tập hợp các hàm tóan học như sum, sine, số học, v.v.

 MATLAB Language (scritp): ngôn ngữ lập trình bậc cao.

 Graphics: các công cụ giúp hiễn thị dữ liệu dưới dạng đồ thị. Ngòai ra nó còn cho phép xây dựng giao diện đồ họa.

 MATLAB Application Program Interface (API): bộ thư viện cho phép ta sử dụng các hức năng tính tóan của MATLAB trong chương trình C hay FORTRAN.

Giao diện

Command Window: Đây là cửa sổ làm việc chính của MATLAB. Tại đây ta thực

hiện tòan bộ việc nhập dữ liệu và xuất kết quả tính tóan. Dấu nháy >> báo hiệu chương trình sẵn sàng cho việc nhập dữ liệu. Ta kết thúc việc nhập dữ liệu bằng cách nhấn phím Enter. MATLAB sẽ thực thi dòng lệnh mà ta nhập vào

Command Window và trả kết quả trong Command Window.

Command History: Lưu lại tất cả các lệnh mà ta đã nhập vào trong Command Window. Ta có thể xem lại tất cả các lậnh bằng cách dùng scroll bar, hay thực

hiện lại lệnh đó bằng cách nhấp kép lên dòng lệnh. Ngòai ra ta còn có thể cut, paste, delete các lệnh.

Workspace browser: trong MATLAB các dữ liệu được lưu trong biến. Workspace browser liệt kê tất cả các biến mà ta đang sử dụng trong MATLAB.

Nó cung cấp thông tin về kích thước, loại dữ liệu. Ta có thể truy cập trực tiếp vào dữ liệu bằng cách nhấn kép vào biến để hiễn thị Array editor.

Launch pad: cho phép người dùng truy cập nhanh vào các bộ Toolbox, phần Help.

Editor: dùng để sọan thảo và debug các M-file của MATLAB.

Current Directory Browser: xem các file trong thư mục hiện hành.

Hình 1.10: Màn hình làm việc của MATLAB

1.4.2 Các thao tác cơ bản trên Matlab

Trong MATLAB, thanh trình đơn thay đổi tùy theo cửa sổ mà ta lựa chọn. Tuy vậy các trình đơn File, Desktop, Window, Help có mặt hầu hết trong các thanh trình đơn.

Trình đơn File:

New: tạo một đối tượng mới (biến, m-file, figure, model, GUI).

Open: mở một file theo định dạng của MATLAB (*.m, *.mat, *.mdl)

Import data…: nhập dữ liệu từ các file khác vào MATLAB.

Save workspace…: lưu các biến trong MATLAB vào file *.mat.

Set path: khai báo các đường dẫn của các thư mục chứa các m-file.

Preferences: thay đổi các định dạng về font, font size, color cũng như các

tùy chọn cho Editor, Command Window v.v.

Print: in.

Trình đơn Desktop:

Desktop layout: sắp xếp các cửa sổ trong giao diện.

Save layout: lưu cách sắp xếp cửa sổ.

Trình đơn Window dùng để kích họat (activate) cửa sổ.

Nút Start cung cấp shortcut tới các công cụ trong MATLAB

Biến

Tên của biến:

 có thể chứa tới 31 ký tự.

 phân biệt chữ hoa và thường.

 có thể chứa gạch thấp “_”

 bắt đầu bằng chữ cái.

MATLAB không yêu cầu ta phải khai báo kích thước của biến. Để tạo một biến mới ta chỉ cần gỏ tên biến, dấu bằng và giá trị gán cho biến. Nếu biến đã tồn tại trong MATLAB, giá trị của nó sẽ được thay đổi.

Ví dụ:

>> variable_1=25;

Nếu ta chỉ nhập tên biến, giá trị của biến sẽ hiễn thị trong Command Window

Ví dụ:

>>variable_1 25

Lưu ý rằng trong MATLAB nếu ta kết thúc câu lệnh bằng dấu “;” thì Command

Window sẽ không hiễn thị kết quả tính tóan ra màn hình.

Để hiện thị các câu lệnh đã nhập trứơc vào Command Window ta có thể dùng

phím Arrow.

Một số tên biến được dành riêng cho MATLAB:

 pi: số pi.

 inf: vô cùng.

 NaN: không phải là số.

Toán tử Các tóan tử cơ bản :  + : cộng.  - : trừ.  * : nhân.  / : chia.

 \ :chia bên trái (dùng cho ma trận).

 ^ : lũy thừa.

 ‘: hóan vị.

 ( ) (dấu ngoặc): thứ tự ưu tiên tính tóan.

Biểu thức

Biểu thức trong MATLAB bao gồm biến, dấu “=”, các tóan tử và hàm

Ví dụ:

>> variable_2=sine(5)+(4+variable_1)*exp(2);

1.333333333333333e+000 1.234500000000000e-006

Câu lệnh quá dài

Nếu câu lệnh quá dài ta dùng dấu 3 chấm “…” để thông báo câu lệnh được tiếp tục ở dòng tiếp theo.

Ví dụ:

>>s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ... -1/8 + 1/9 - 1/10 + 1/11 - 1/12;

Ma trận

Trong MATLAB ma trận là một array chứa các dữ liệu. Để nhập một ma trận vào MATLAB ta có thể dùng các cách sau:

 Nhập trực tiếp vào Command Window.

 Dùng các hàm trong MATLAB.

Nhập trực tiếp vào Command Window: Ví dụ: >> my_vector = [1 2 3] my_vector = 1 2 3 >> my_matrix = [1 2 3; 4 5 6; 7 8 9] my_matrix = 1 2 3 4 5 6 7 8 9 >> my_matrix = [1 2 3 4 5 6 7 8 9] my_matrix = 1 2 3 4 5 6 7 8 9 Đồ thị Đồ thị 2D

plot(X,Y) vẽ các điểm trong vector Y theo vector X Ví dụ:

>>x=[1:0.2:20]; >> y=sin(x); >> plot(x,y)

Hình.1.11: Đồ thị tạo ra bởi plot(x,y)

Trong MATLAB đồ thị được tạo trong một window gọi là figure. Khi ta dùng một lệnh vẽ đồ thị, nếu trong MATLAB không có sẵn một figure, một figure mới sẽ được tạo ra. Nếu đã có một hay nhiều figure, thì đồ thị mới sẽ thay thế đồ thị cũ trong figure hiện hữu. Để tránh điều này ta có thể tạo nên một figure (empty) bằng lệnh figure.

Đồ thị 3D

Ta có vẽ đồ thị 3 chiều dùng các lệnh sau:

 plot3: tương tự như plot như có thêm trục z.

 mesh: tạo đồ thị 3D dưới dạng lưới (mesh).

 surf: tạo bề mặt 3D.

1.5 Kết luận

Trong chương này giới thiệu những nội dung quan trọng về mô hình toán học, các dạng phương trình đạo hàm riêng, những khả năng ứng dụng và mối quan hệ với phương trình đạo hàm riêng, phương trình Navier-Stokes. Đồng thời, nghiên cứu các kiến thức cơ bản về công cụ Matlab.

CHƯƠNG 2

ỨNG DỤNG CỦA CÔNG NGHỆ MẠNG NƠRON TẾ BÀO VÀO GIẢI PHƯƠNG TRÌNH NAVIER-STOKES

2.1. Các thuật toán và giải pháp giải phương trình đạo hàm riêng trên CNN[4]

2.1.1. Mối tương quan giữa PDE và CNN

Mô hình toán học của CNN gồm tập lớn các phương trình vi phân có liên kết với nhau hình thành nên không gian toán học phong phú, động về kiến trúc thời gian-không gian tuân theo các lý thuyết về ổn định. Phương trình đạo hàm riêng là mô hình điển hình cho mô tả các hiện tượng tương tác động không gian- thời gian xảy ra trong vật lý, hóa học, và sinh học. Mối quan hệ về mặt toán học giữa CNN và PDE đã được nhiều người nghiên cứu đã cho thấy CNN là một mô hình động học cho nhiều tương tác có cấu trúc thời gian-không gian xảy ra trong phương trình đạo hàm riêng.

PDE có thể sai phân thành hệ các phương trình đại số tuyến tính và giải bằng phương pháp thông thường (phương pháp số) và có thể cài đặt trên máy PC. Cho đến nay nhiều phương trình đã được cài đặt thành công đảm bảo về độ chính xác có khả năng áp dụng hiệu quả trong các tính toán khoa học.

Phương pháp sai phân đã chứng tỏ ưu việt trong việc mô hình hóa và giải các phương trình vi phân cũng như phương trình đạo hàm riêng. Bản chất của việc sai phân là thay miền không gian liên tục của hàm bằng một lưới rời rạc với số bước chia đủ nhỏ mà giá trị mỗi điểm trên lưới xấp xỉ với giá trị của điểm tương ứng trong phương trình ban đầu với sai số chấp nhận được. Giữa các điểm chia có các ràng buộc thông qua các phương trình mô tả để tính toán giá trị của từng điểm theo yêu cầu bài toán. Ngoài ra hệ PDE thường có tính chất động theo miền thời gian do vậy quá trình giải các PDE là bài toán động theo bước thời gian. Hạn chế của máy PC là không thể hiện được bước thời gian thực mà chỉ giả định, nghĩa là kết quả tính toán ra sau khoảng thời gian ∆t nào đó là một kết quả tĩnh có thể lưu trữ trong bộ nhớ hoặc file dữ liệu. Kết quả này không thể đưa vào các hệ điều khiển thời gian thực được.

Qua việc nghiên cứu kiến trúc thời gian-không gian CNN cho thấy hoàn toàn có thể mô tả biểu diễn PDE bằng các thuộc tính động học và khả năng xử lý thời gian thực ở một số khía cạnh sau:

- Các tế bào liên kết cục bộ tạo thành lưới n chiều (n=1,2,3...) tùy theo số chiều của PDE cần giải, các liên kết cục bộ thông qua các trọng số liên kết, trọng số này sẽ thể hiện ràng buộc giữa các điểm trong lưới sai phân của PDE

- Mỗi tế bào trong chip CNN có vai trò tính toán cho một điểm trong lưới sai phân của PDE, như vậy việc tính toán xảy ra song song đồng thời trong toàn không gian sai phân và có tốc độ tính toán cực nhanh so với máy PC,

- Do kiến trúc liên kết cục bộ của các tế bào dẫn đến việc dễ dàng tăng số tế bào trong mạng nhưng vẫn đảm bảo hệ làm việc ổn định. Ưu điểm này vượt trội hơn hẳn so với một số kiến trúc khác khi tăng phần tử xử lý gây ra sự mất ổn định trong mạng. So với xử lý trên máy PC kích thước lớn của không gian tính toán sẽ phải thực hiện nhiều vòng lặp gây ảnh hưởng rất lớn đến tốc độ xử lý và sai số tích luỹ.

- Tín hiệu đưa vào xử lý có thể là tín hiệu analog với các phép toán analogic xử lý trực tiếp nên kết quả đưa ra rất nhanh và dễ dàng đưa ra các thiết bị thứ cấp, hiện nay tốc độ xử lý của tế bào CNN tới 1012

phép tính/giây.

- Thời gian tính toán của một tế bào chỉ là thời gian quá độ của mạch điện tế bào (thời gian thay đổi trạng thái của mỗi tế bào) nên chỉ cỡ micro giây có thể áp dụng tính toán cho một hệ động lực thay đổi theo thời gian gần như liên tục. Khả năng này cho phép thiết kế các hệ xử lý động như thị giác máy, nhận dạng mục tiêu di động, theo dõi đa mục tiêu...

- Sau một số lần thực nghiệm tính toán có thể lưu lại các trọng số liên kết như là ”mẫu học” cho hệ như vậy hệ CNN còn có khả năng biết học, một thuộc tính quan trọng của hệ nơ ron để tìm ra mẫu tối ưu cho mỗi bài toán.

- Quá trình xử lý còn thông qua sự hồi tiếp của hệ, nên hệ có khả năng tự điều chỉnh một tính chất rất phù hợp cho việc thiết kế các hệ điều khiển tự động.

qua các lân cận và lan truyền toàn cục cho toàn hệ. Do đó CNN còn có khả năng lan truyền tín hiệu trong quá trình xử lý. Các tác vụ phân chia thành mức local và global làm cho việc xử lý trong CNN linh hoạt và hiệu quả.

- Mỗi tế bào có một số đầu vào và một đầu ra các đầu vào có thể lấy từ cơ sở dữ liệu, từ các cảm biến, từ bộ nhớ ngoài... tùy theo nhiệm vụ xử lý. đặc biệt CNN có khả năng xử lý dữ liệu dạng LUỒNG. Do vậy nó có các đầu vào rất linh hoạt cho nhiều loại bài toán. Đầu ra cũng có thể đưa ra bộ nhớ lưu trữ hoặc các hệ xử lý thứ cấp thông qua các tín hiệu tương tự hay tín hiệu số.

- Bản chất của việc sử dụng CNN là ta phân rã các điểm sai phân thành từng nút tính toán rời rạc theo không gian và tìm các thông số liên kết cục bộ để xây dựng kiến trúc phần cứng. Tại mỗi điểm nút ta có một tế bào tính toán tương ứng do đó có thể xây dựng được một hệ tính toán song song vật lý thực thi tính toán.

Nhiều phương trình đã được mô phỏng qua các trạng thái hoạt động của hệ CNN khẳng định khả năng giải phương trình đạo hàm riêng trên CNN. Khi triển khai cho mỗi bài toán ta cần nghiên cứu một rõ ràng đầy đủ mối quan hệ giữa mô hình CNN và PDE nhằm xác định đảm bảo hệ CNN thiết kế cho bài toán tương đương với hệ PDE ban đầu.

Trước hết, ta phải xây dựng mô hình toán học mô tả kiến trúc vật lý cho hệ CNN gọi là phương trình sai phân vi phân CNN chuẩn (Cellular Partial Difference Differntial Equation-CPDDE). Sau đó phải chứng minh tính tương đương của phương trình này với phương trình đạo hàm riêng ban đầu. Vấn đề tương đương có thể tách thành hai: Nghiệm của phương trình CPDDE xấp xỉ chấp nhận được về sai số so với nghiệm chính xác của PDE ban đầu; hai mô hình CPDDE và PDE ban đầu tương đương về không gian động học, nghĩa là kiến trúc không gian các tế bào của hệ CNN phải tương ứng với các điểm trên lưới sai phân thu được sau khi rời rạc PDE ban đầu.

2.1.2. Điều kiện để PDE giải được bằng CNN

phân, do vậy việc sử dụng CNN để giải phương trình đạo hàm riêng dựa trên phương trình này. Tuy vậy, lớp các PDE rất rộng, để có thể áp dụng CNN vào để giải cần có những điều kiện ràng buộc nhất định. Nói cách khác chỉ những dạng PDE thỏa mãn điều kiện mới giải được bằng CNN.

Mô hình toán học chuẩn của CNN được gọi là CPDDE (Cellular Partial Difference Differential Equations) với một số giả thiết: mẫu là tuyến tính trong không gian đồng nhất; đầu vào và ngưỡng có giá trị là không (0); điều kiện biên kiểu zero flux. Từ đó ta đưa ra một số định nghĩa [10]:

Định nghĩa 2.9: Một mô hình phương trình đạo hàm riêng sai phân vi phân tế bào (Cellular Partial Difference Differential Equation - CPDDE) là một hệ NxM phương trình vi phân thường phi tuyến:

, , | | ,| | | | ,| | ( ) ( ) A ( ) C t ij mn i m j n mn i m j n n r m r n r m r L D x t T f x  T x          (2.1)

với điều kiện xij(0) = x0ij

Biến trạng thái xij là các điểm trên lưới đều hình chữ nhật được xác định bằng hai chỉ số (1≤ i ≤ N, 1≤ j ≤ M); f(.) là hàm phi tuyến đặc trưng cho đầu ra thuộc miền C(R); A

mn

TC

mn

T là mẫu ra và hồi tiếp; r là bán kính lân cận tương tác của mỗi tế bào; x0ij là điều kiện ban đầu.

Định nghĩa 2.10: Tập các PDE tương ứng của phương trình (2.1), với hai biến không gian z, w xác định trong miền hình chữ nhật (0≤ z ≤ lz, 0≤ w≤ lw) với các điều kiện ban đầu ( , ,0) 0( , )

~ ~ w z x w z x  là: ~ ~ ( t) ij( ) A( z, w) [ ( , , )] C( z, w) ( , , ) L D x tL D D f x z w tL D D x z w t (2.2) với giả sử ( , , ) ~ t w z x là hàm Ccủa 3 biến z,w,t; LA(Dz,Dw) và LC(Dz,Dw) là hàm đa thức khác hằng số của toán tử vi phân không gian

z Dz    và w Dw    ; ) , ( 0 ~ w z

x là hàm C của hai biến z và w;

Định nghĩa 2.11: Véc tơ x tij( )

x tij( ) x ih( z,jh tw, )

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu ứng dụng công nghệ mạng nơron tế bào vào giải phương trình navier stokes trên mặt biển​ (Trang 34)