1. Trang chủ
  2. » Luận Văn - Báo Cáo

giới thiệu về phần mềm matlab, tóm tắt một số lệnh cơ bản trong matlab nhằm phục vụ cho lập trình phần tử hữu hạn và thực hiện lập trình phần tử hữu hạn để giải bài toán cụ thể

37 246 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 722,44 KB

Nội dung

Nhiều phần mềm ứng dụng ra đời dựa trên cơ sở phương pháp phần tử hữu hạn như: SAP, NASTRAN, ABAQUS,SAMCEF, MIDAS, ANSYS … Trong bản báo cáo này, chúng em sử dụng Matlab - một công cụ ph

Trang 1

MỤC LỤC

Mở đầu 3

Chương 1: Giới thiệu Matlab 4

1.1 Khái niệm về Matlab 4

1.2 Ứng dụng của MatLab 5

1.3 Vẽ đồ thị trong Matlab 7

Chương 2: Lập trình phần tử hữu hạn 21

2.1 Tổng quan về lập trình phần tử hữu hạn 21

2.2 Thực hành lập trình 21

Kết luận 36

Tài liệu tham khảo 37

Trang 2

Nhiều phần mềm ứng dụng ra đời dựa trên cơ sở phương pháp phần tử hữu hạn như: SAP, NASTRAN, ABAQUS,SAMCEF, MIDAS, ANSYS … Trong bản báo cáo này, chúng em sử dụng Matlab - một công cụ phần mềm có lợi thế trong kỹ thuật lập trình phần tử hữu hạn, đáp ứng được nhiều bài toán.

MATLAB là một môi trường tính toán số và lập trình, được thiết kế bởi công ty MathWorks

MATLAB (Matrix Laboratory) vừa là một ngôn ngữ lập trình vừa là một phần

mềm ứng dụng tính toán rất hiệu quả

MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những

chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác MATLAB giúp đơngiản hóa việc giải quyết các bài toán tính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống như C, C++, và Fortran

MATLAB là ngôn ngữ của tính toán khoa học

Bản báo cáo của nhóm chúng em bao gồm các nội dung: giới thiệu về phần mềm Matlab, tóm tắt một số lệnh cơ bản trong Matlab nhằm phục vụ cho lập trình phần

tử hữu hạn và thực hiện lập trình phần tử hữu hạn để giải bài toán cụ thể Do trình

độ và thời gian nghiên cứu còn hạn chế nên những vấn đề mà nhóm tôi trình bày sẽkhông tránh khỏi thiếu sót Chúng em kính mong nhận được sự chỉ bảo, góp ý của thầy và các bạn để bài báo cáo được hoàn thiện hơn

Trang 3

CHƯƠNG I: GIỚI THIỆU VỀ MATLAB

thiết kế hệ thống điều khiển, hệ thống hộp công cụ (tool box), mô phỏng Jack

xây dựng MATLAB trở thành mô hình ngôn ngữ lập trình trên cơ sở ma

trận (matrix-based programming language).

Steve Bangert là người đã viết trình thông dịch cho MATLAB

Năm 1984, Jack Little kết hợp với Moler và Steve Bangert quyết định đưa MATLAB thành dự án thương mại - công ty The MathWorks ra đời thời gian này

Phiên bản đầu tiên MATLAB 1.0 ra dời năm 1984 viết bằng C cho DOS PC

MS-Ban đầu Matlab được phát triển để hỗ trợ sinh viên sử dụng hai thư

viện LINPACK và EISPACK dùng cho đại số tuyến tính (viết bằng Fortran) mà không cần biết lập trình Fortran

Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX

Năm 1987, MATLAB 3 phát hành

Năm 1990 Simulink 1.0 được phát hành gói chung với MATLAB

Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa màu và các ma

trận truy tìm Năm này cũng cho phát hành phiên bản MATLAB Student

Edition(MATLAB ấn bản cho học sinh).

Năm 1993 MATLAB cho MS Windows ra đời Đồng thời công ty này có trang web là www.mathworks.com

Năm 1995 MATLAB cho Linux ra đời Trình dịch MATLAB có khả năng chuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được phát hành trong dịp này

Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ liệu, hình ảnh hóa, bộ

truy sửa lỗi (debugger), và bộ tạo dựng GUI.

Năm 2000 MATLAB 6 cho đổi mới môi trường làm việc MATLAB, thay thế LINPACK và EISPACK bằng LAPACK và BLAS.[1]

Trang 4

Năm 2002 MATLAB 6.5 phát hành đã cải thiện tốc độ tính toán, sử dụng

phương pháp dịch JIT (Just in Time) và tái hỗ trợ MAC.

Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểu

nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và có môi trường phân tích số liệu tương tác

Đến tháng 12, 2008, phiên bản 7.7 được phát hành với SP3 cải thiện

Simulink cùng với hơn 75 sản phẩm khác

Năm 2009 cho ra đời 2 phiên bản 7.8 (R2009a) và 7.9 (R2009b)

Năm 2010 phiên bản 7.10 (R2010a) cũng đã được phát hành

Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất là giải các bài toán

số trị (cả đại số tuyến tính lẫn giải tích) trong nhiều lĩnh vực kĩ thuật

1.2 Vài nét về thao tác trong Matlab

Các lệnh vẽ đồ họa trong matlab: matlab cung cấp một loạt hàm để vẽ biểu diễn

các vecto số liệu cũng như giải thích và in các đường cong này

Plot đồ họa 2-D với số liệu 2 trục vô hướng và tuyến tính

Plot3 đồ họa 3-D với số liệu 2 trục vô hướng và tuyến tính

Polar đồ họa trong hệ tọa độ cực

Loglog đồ họa với các trục logarit

Semilogx đồ họa với các trục x logarit và trục y tuyến tính

Semilogy đồ họa với trục y logarit và trục x tuyến tính

Plotyy đồ họa với trục y có nhãn ở bên trái và bên phải

Đặc tả màu và kích thước đường vẽ: Để đặt tả màu và kích thước

đường vẽ ta dùng các tham số sau:

Linewidth: độ rộng đường thẳng tính bằng điểm

MarkerEdgeColor: màu của các cạnh của khối đánh dấu

MarkerFaceColor: màu của khối đánh dấu

MarkerSize: kích thước của khối đánh dấu

Các phép toán logic và quan hệ:

Trang 5

Lệnh Giải thích

= = Hai biểu thức bằng nhau

= Hai biểu thức không bằng nhau

< = (> =) Một biểu thức nhỏ hơn (lớn hơn) hoặc bằng biểu thức khác

< ( > ) Một biểu thức nhỏ hơn (lớn hơn) biểu thức khác

& Phép toán logic “and”

Phép toán logic “not”

| Phép toán logic “or”

Trang 6

< tam giác hướng

Có thể xây dựng những hàm riêng cho những ứng dụng đặc biệt

Cung cấp thư viện hàm đồ họa rất mạnh

Cung cấp gói ứng dụng Simulink đầy đủ để mô phỏng

Nhìn chung, Matlab là công cụ hữu ích cho các thao tác tính toán như

ma trận, vectơ, tính tích phân, đạo hào, vẽ đồ thị,v.v… Các thao tác này là phần cơ bản trong phương pháp phần tử hữu hạn Sau đây chúng tôi xin giới thiệu tóm tắt các lệnh cơ bản trong Matlab nhằm phục vụ cho việc lập trình phần tử hữu hạn.

1.4 Ma trận trong Matlab.

1.3.1 Các cách nhập ma trận trong Matlab.

Matlab cung cấp một vài phương tiện cho người sử dụng để tạo ra một

ma trận, mỗi phương tiện có những ưu điểm của nó và được sử dụng tùy theotừng yêu cầu bài toán Nói chung Matlab cung cấp ba phương tiện

- Nhập ma trận trực tiếp từ cửa sổ Command Window

- Nhập ma trận từ m-file

Trang 7

- Nhập ma trận từ những hàm có sẵn trong Matlab.

a Nhập ma trận trực tiếp từ cửa sổ Command Winodow.

Trong môn học toán cao cấp chúng ta đã biết nhập một ma trận như sau: A=

Đây là một ma trận có số hàng m=3 và số cột n=3 Để nhập ma trận trên trong Matlab ta nhập trực tiếp như sau:

Từ dòng nhắc lệnh trong cửa sổ command Window ta nhập

>> A=[2,7,0;4,8,6;5,3,1] và nhấn Enter sẽ cho kết quả là:

Ta có thể nhập một ma trận bằng cửa sổ soạn thảo M-file, mở cửa sổ này

bằng cách vào File New M-file Một cửa số soạn thảo sẽ được thực hiện ra cho

phép bạn soạn thảo dưới dạng text, do là cửa sổ soạn thảo dạng text cho nên bạn

có thể soạn thảo từ file word sau đó sau đó copy vào cửa sổ M-file Để nhập ma

Trang 8

trận ta soạn thảo tương tự như trong cửa sổ command window sau đó lưu vào file như sau:

Ví dụ: A=[2,7,0;4,8,6;5,3,1]; %không có dấu chấm phẩy sẽ in ra kết quả

Cũng tương tư như trên nếu số phần tử trên một hàng quá nhiều thì ta có thể xuống dòng

>> A=[1,2,3,4, 5,6,7,8,9];

Sau khi kết thúc soạn thảo ta lưu vào tên_file

Để thực thi các lệnh nhập trong M-file ta dùng lệnh sau trong command window như sau:

Trang 10

>> A(1,:)

ans =

là hàng đầu tiên của ma trận A

Cộng ma trận: Cộng hai ma trận được thực hiện như sau:

Chú ý rằng, C là một ma trận mới, không còn là tổng của hai ma trận A và B

Nhân hai ma trận: Tích hai ma trận A và B được thực hiện như sau:

Trang 11

S : biểu thức lấy tích phân

v : tên biến lấy tích phân

Trang 12

a,b : khoảng lấy tích phân

Cú pháp: Plot(tên biến, tên hàm)

Ý nghĩa: Vẽ đồ thị hàm 1 biến bằng cách nối các điểm dữ liệu

 Các bước vẽ:

 Bước 1 : Khai báo biến

 Bước 2 : Chia miền đồ thị

Trang 13

 Bước 3 : Nhập hàm

 Bước 4 : plot(tên biến, tên hàm)

CHÚ Ý

:

Điểm

dữ liệu càng nhiều (hay chia khoảngcàng nhỏ) thìhình vẽcàng đúng với đồ thị hàm số liên tục (đường cong trơn liên tục)

 Cách 1 : x=[ xmin: bước : xmax]

 Ví dụ: x=[-10:1:10]

Nghĩa là x chạy từ -10 đến 10 bước 1 (bước nhỏ)

 Cách 2 : linespace(điểm đầu,điểm cuối,số điểm cần vẽ)

 Ví dụ : x=linspace(-10,10,100)

Nghĩa là Chia x từ -10 đến 10 thành 100 điểm

Trang 14

CHÚ Ý : Nếu y là hàm phức thì ta có cú pháp:

Plot(real(y),imag(y))

Với real (y) là phần thực, imag(y) là phần ảo

2 Đặt tiêu đề, tạo nhãn, vẽ lưới cho đồ thị :

Title(‘tên đồ thị’) : tạo tiêu đề đồ thị

Xlabel(‘nhãn trục x’) : tạo nhãn cho trục x

Ylabel(‘nhãn trục y’) : tạo nhãn cho trục y

Trang 15

CHÚ Ý: Để biết được nhiều dạng hơn ta làm như sau Helpàplotàấn vào

chữ linespec Tùy chỉnh các đối tượng của đồ thị ngoài cách dùng các lệnh,

có thể tùy chỉnh trực tiếp trên đồ thị bằng cách sau :

 Tại cửa sổ Figure

 Click vào View trên thanh công cụ

Trang 16

4 Vẽ nhiều đồ thị trên cùng một trục tọa độ

Cách 1 : plot(tên biến, tên hàm 1,tên biến, tên hàm 2)

Trang 18

6 Vẽ nhiều

đồ thị trong cùng 1 cửa sổ

Trong đó : -

m : số hàng được chia

- n : số cột được chia

- p : vùng hiển thị của đồ thị

Ý nghĩa : Chia đồ thị thành các vùng để vẽ nhiều đồ thị trong cùng 1

Trang 20

CHƯƠNG 2: LẬP TRÌNH PHẦN TỬ HỮU HẠN

2.1 Tổng quan về lập trình phần tử hữu hạn

Trình bày cách viết các chương trình trong môi trường Matlab để giảiphương trình vi phân tuyến tính cấp hai bằng phương pháp phần tử hữu hạn.Tìmhiểu các bước cơ bản trong lập trình phần tử hữu hạn, sau đó minh họa các bướcnày thông qua một ví dụ cụ thể

Một cách tổng quát, có thể tóm tắt các bước lập trình giải phương trình viphân bằng phương pháp phần tử hữu hạn như sau:

1 Đọc dữ liệu đầu vào và xây dựng cơ sở dữ liệu để lưu thông tin các phần

tử hữu hạn

2 Tính toán ma trận và vector trên mỗi phần tử hữu hạn.

3 Lắp ghép các ma trận và vector phần tử để nhận được ma trận toàn cục A

1 Giải phương trình tìm nghiệm chính xác

2 Viết công thức nghiệm yếu

Trang 22

( x +1) vdx

Trang 23

Lấy TPTP số hạng đầu tiên ta được (đặt U= x

a) Tính chính xác ma trận và vec tơ trên phần tử thứ i:

Từ công thức nghiệm yếu ta có được ma trận trên phần tử thứ i là:

Trang 24

b) Tính gần đúng ma trận và vec tơ trên phần tử thứ i

Trang 31

e=[1:n;2:n+1]; %ma trận cơ 2×n chứa

thông tin các phần tử hữu hạn

end

B2: TÍNH TOÁN MA TRẬN VÀ VECTO CHO MỖI PHẦN TỬ HỮU HẠN

%Ma tran phan tu thu i

Ae=[(1/12*x2^5-1/3*x2^2*x1^3+1/2*x2*x1^4-1/4*x1^5)/(-hi^2), (-1/12*x2^4*x1+1/12*x2*x1^4)/(-hi^2);(-

%Tinh chinh xác ma tran va veto toan cuc

% Kich thuoc ma tran e

Trang 33

y=(68*x/93+56/(93*x^4)-2/(3*x)-2/(3*x^2));

plot(p,u,'-sb',x,y,'black');

legend('u1','u2');

e=[1:n;2:n+1]; %ma trận cơ 2×n chứa

thông tin các phần tử hữu hạn

end

B2: TÍNH TOÁN MA TRẬN VÀ VECTO CHO MỖI PHẦN TỬ HỮU HẠN

%Ma tran phan tu thu i

x1)),(x1^4+x2^4)./(8*(x2-x1));(x1^4+x2^4)./(8*(x2-x1)),(-5*x2^4-x1^4+8*x2^3*x1-4*x2^2*x1^2)./(8*(x2-x1))];

Trang 34

%Vecto phan tu thu i

Fe1=[(x1*x2-x1^2+x2-x1)./2;(x2^2-x1*x2+x2-x1)./2];

end

B3: LẮP GHÉP CÁC MA TRẬN VÀ VECTO PHẦN TỬ ĐỂ NHẬN ĐƯỢC

MA TRẬN A VÀ VECTO F TOÀN CỤC

%Tinh chinh xác ma tran va veto toan cuc

% Kich thuoc ma tran e

Trang 35

legend('u1','u2');

ĐỒ THỊ SO SÁNH

Trang 36

KẾT LUẬN

MatLab là chương trình hỗ trợ rất mạnh về Toán, tất cả các phép toán về

Ma trận, vẽ đồ thị, ngoại suy, nội suy

+ Được tích hợp sẵn rất nhiều các toolbox và các hàm tính toán phức tạp, ta chỉ việc áp dụng

+ Thời gian tính toán tương đối nhanh (nếu biết tối ưu chương trình: MatLab tính toán dựa trên dạng Matrận nên nếu biết đưa các vòng lặp về dạng Matrận sẽ rút ngắn được nhiều về thời gian tính toán)

+ Có thể tự học, tự mày mò để áp dụng (MatLab có rất nhiều Toolbox do nó hỗ trợ cho rất nhiều lĩnh vực khác nhau, tùy theo nhu cầu của bản thân mà ta tìm hiểu phần nào cần thiết, đừng để bị choáng trước sự "khổng lồ" của MatLab)

+ Muốn thành thạo sử dụng MATLAB bạn cần phải tự mình gõ các câu lệnh và xem kết quả câu lệnh, mắc lỗi và tìm cách sửa lỗi Cách học "trial and error" này theo tôi là cách tốt nhất để học lập trình Thời gian và công sức bạn bỏ ra bao nhiêu

sẽ mang lại cho bạn nhiều kiến thức bấy nhiêu

+ Tài liệu về MATLAB hiện nay đã có rất nhiều, cả tiếng Việt và tiếng Anh Để sửdụng MATLAB, không nhất thiết phải đọc nhiều sách Bạn hãy chọn một cuốn bất

kì liên quan đến lĩnh vực ứng dụng của MATLAB mà bạn quan tâm để đọc, làm theo các ví dụ và suy nghĩ Tài liệu quan trọng nhất chính là Help của MATLAB, nếu như bạn có khả năng tự học tốt, Help là tài liệu duy nhất bạn cần và nó đã có sẵn khi cài MATLAB

Xét cho cùng MATLAB chỉ là công cụ để thực hiện ý tưởng, MATLAB có thể cho

ta kết quả nhưng nó không thay ta suy nghĩ, không mang cho ta kiến thức Nắm chắc kiến thức chuyên môn là chìa khóa để sử dụng MATLAB có hiệu quả

Trang 37

TÀI LIỆU THAM KHẢO

[1] Phương pháp phần tử hữu hạn, TS.Phạm Quí Mười (Chủ biên) – TS Phan Đức Tuấn, Nhà xuất bản thông tin và truyền thông

[2] Giáo trình phương pháp tính, TS.Nguyễn Phú Vinh (Chủ

biên)

[3] Một số tài liệu tham khảo khác

Ngày đăng: 10/06/2019, 23:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w