Lời nói đầu : ‚Môn ứng dụng Matlap trong kỹ thuật ô tô’’ đ-ợc biên soạn nhằm giúp các bạn là sinh viên các ngành khoa học kỹ thuật nắm đựoc cơ sở của phần mềm trợ giúp tính toán Matlap
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
Trang 2Lời nói đầu :
‚Môn ứng dụng Matlap trong kỹ thuật ô tô’’ đ-ợc biên soạn nhằm giúp các bạn
là sinh viên các ngành khoa học kỹ thuật nắm đựoc cơ sở của phần mềm trợ giúp tính toán Matlap ,qua đó dùng Matlap để giải quyết các bài tập lớn ,đồ án ,luận văn tốt nghiệp Matlap thực sự là một phần mềm rất mạnh ,vừa có khả năng lập trình nh- nhiều ngôn ngữ khác ,vừa là một môi tr-ờng tính toán thực dụng có thể dùng ngay hàng trăm hàm và ch-ơng trình con đã đ-ợc lập trình sẵn để giải quyết bài toán về ma trận ,đại số tuyến tính ,giải tích số ,ph-ơng trình vi phân ,quy hoạch tuyến tính tối -u hoá cũng nh- các ch-ơng trình về đồ hoạ Hiện nay Matlap đã xâm nhập vào hầu hết các lĩnh vực ,từ kỹ thuật cơ sở đến những vấn đề có tính chuyên môn rất cao
Một -u điểm của Matlap là học là học tập phần mềm này rất đơn giản ,chỉ cần vài buổi học là học viên có thể nắm đ-ợc phần cơ bản của ch-ơng trình để rồi qua
đó tìm hiểu thêm các tài liệu rất phong phú của Matlap trên mạng internet Đối với các bạn đã thành thạo một ngôn ngữ truyền thống nào đó ,việc tham khảo phần mềm Matlap sẽ giúp cho bạn cơ hội tham khảo rất nhiều ch-ơng trình tính toán tinh
vi của Matlap qua các tập tin nguồn có sẵn ,dựa vào đây bạn có thể viết lại ngôn ngữ mà bạn -a thích
Thiết kế bài giảng :
Thac sĩ : Lê Anh Vũ
Thạc sỹ : Đồng Minh Tuấn
Trang 3Ch-ơngI: giỚi thiệu chung về Matlap, phạm vi ứng dụng 1.1.Giới thiệu chung về matlap
Matlap vừa là 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ả Matlap là từ viết tắt của ‚Matrix Laboratory‛ được phát triển bởi tập đoàn
The Math Works,Ins of Natick,Massachusetts – Hoa kỳ từ những năm 1970.Lúc
đầu Matlap đ-ợc dùng chủ yếu để giải quyết các vấn đề về matrân ,đại số tuyến tính ,giải tích số, hiện nay khả năng tính toán của Matlap rất lớn ,bao trùm nhiều lĩnh vực khác nhau
Matlap 6.0 đ-ợc phát hành vào mùa thu năm 2000 và chạy trên nhiều hệ điều hành khác nhau tiếp đó là phiên bản 6.5 rồi 7.0 và hiên nay là 7.5 Tr-ơng trình
Matlap bao gồm phần lõi (core) và các Modul phần mềm đ-ợc gọi là các toolbox
(hộp công cụ) Mỗi toolbox phục vụ những tính toán riêng biệt nào đó ,Ví dụ
toolbox optimization thì chuyên để giải quyết các bài toán tối -u và vv…
1.1.1.cách cài đặt Matlap
ở đây chúng tôi giới thiệu cho các bạn cách cài đặt Matlap 7.5 đầu tiên các bạn
có thể chọn mua đĩa Matlap phiên bản 7.5 tại các cửa hiệu máy tính Sau đó cho đĩa vào ổ CD rom Sau đó mở dĩa CD vào setup màn hình hien ra nhu sau:
Chọn install,sau đó bấm next một màn hình sau hiện ra :
Trang 4NhËp m· sè vµo password vµ bÊm next
Mét mµn h×nh míi hiÖn ra:
Chän yes vµ bÊm next mµn h×nh sau sÏ hiÖn ra:
Trang 5Chọn Typical và tiếp tục bấm next
Chọn ổ C làm nơi cài ch-ơng trình Matlap bấm next Nh- vậy Matlap sẽ tự động cài ch-ơng trình vào máy của bạn
1.2 Giao diện đồ hoạ, các phím chức năng
1.2.1 Các kiểu biến trong Matlap
Trong Matlap sử dụng các biến cơ bản sau:
a.Biến toàn cục
Muốn truy xuất đ-ợc các biến dùng chung cho ch-ơng trình chính và các tập tin hàm (đóng vai trò nh- các ch-ơng trình con ) thì phải khai báo biến này là biến toàn cục bằng dòng lệnh
Trang 6Ngoài ra còn dùng lệnh symm để khai báo nhiều biến symbolic một lúc :
>> Symm (x,y,z) : Tạo ba biến symbolic x,y,z
1.2.2 Giao diện đồ hoạ
Trang 7 : phÝm quay l¹i
: DÞch chuyÓn con chuét vÒ bªn ph¶i man h×nh
: DÞch chuyÓn con chuét vÒ bªn tr¸i mµn h×nh
: phÝm dÞch chuyÓn con chuét xuèng d-íi mµn h×nh lÖnh
1.3.C¸c ph-¬ng ph¸p lµm viÖc víi Matlap
Trang 81.4 Quy cách viết dãy lệnh, biểu thức của Matlap
Chế độ t-ơng tác trong cách một chỉ thích hợp với bài toán nhỏ ,đơn giản Đối với bài toán đòi hỏi phải sử dụng nhiều lệnh ,một tập lệnh đ-ợc dùng lặp đi lặp lại
hoặc làm việc với các dãy số có số phần tử rất lớn chúng ta cần tạo Script file 1.4.1Tạo và sử dụng Script file
Chúng ta có thể viết và l-u các tr-ơng trình Matlap trong các tập tin có phần đuôi
dạng (.m) đ-ợc gọi là các M – file Matlap dùng hai loại M-file là Cript file (tập tin lệnh) và funtion file (tập tin hàm ) Hai loại này khác nhau khi tạo file và sử dụng
Cách tạo :
Trang 9Sau khi vào M- file thì có cửa sổ hiện ra (hình2)
Sau khi soạn xong chúng ta l-u lại tên file (không vào tên đuôi m ).Tên file tuân
theo quy tắc tên biến trong Matlap ,file này đ-ợc l-u trong th- mục hiện hành
(current directory) th-ờng là th- mục work ,sau khi l-u trở lại màn hình Destop để
chạy ch-ơng trình
Cấu trúc đề nghị của một cript file gồm các phần cơ bản sau:
Phần chú thích (comments section) : viết các dòng chú thích cho tr-ơng
trìnhgồm: tên của ch-ơng trình và các từ khoá mo tả ch-ơng trình ,định nghĩa các biến đầu vào và đầu ra ,chú ý phải xác định rõ đơn vị đo l-ờng cho tất cả các biến đầu vào và đầu ra ,tên của từng hàm tự tạo đ-ợc sử dụng trong ch-ơng trình
1.4.2.Tạo và sử dụng funtion file
Một dạng M- file trong Matlap là function file (tập tin hàm ) đây là hàm do
Trang 10tính chất cục bộ (local) có nghĩa là giá trị các biến này không đ-ợc truy xuất bên
ngoài không gian tập tin hàm do vậy dùng tập tin hàm để tránh việc lặp đi lặp lại một tập lệnh nào đó
Goloball:
Việc khai báo phải thực hiện ở ch-ơng trình chính và ở các function file có liên
quan Trong các tập tin hàm thì phải khai báo biến toàn cục ở dòng thực thi đầu tiên
và th-ờng viết hoa
1.5 Làm việc với các tệp dữ liệu của Matlap
Dòng đầu tiên của một function file đ-ợc gọi là dòng định nghĩa hàm (function
definition line)
Function[output variables]
Nhờ từ khoá function Matlap phân biệt đ-ợc một M_file là function file hoặc
là script file Tên hàm tự đặt tuân theo tên biến trong Matlap
Các dòng tiếp theo là các dòng chú thích ,các biến đầu vào đầu ra ,các đơn vị
đo l-ờng
1.5.1 Những l-u ý về tập tin hàm :
Function seqppllot
(ý nghĩa là ng-ời lập muốn vẽ một hình vuông khi biết cạnh của nó )
Trong một ch-ơng trình tính toán dùng Matlap ,nếu không cần truy xuất tất cả
các biến trong một script file nào đó hãy sử dụng một tập tin hàm thay thế script
file này nó sẽ làm cho workspace bớt cồng kềnh và giảm đ-ợc bộ nhớ
ch-ơng ii: xử lý các dữ liệu dạng mảng trên matlap
Trang 11và vác ứng dụng
Một trong những điểm mạnh của Matlap là khả năng sử lý một tập số đ-ợc xắp
xếp theo một thứ tự nào đó (gọi là mảng ) nh- là một biến đơn (single
variable).Khả năng này làm cho ch-ơng trình viết bằng Matlap rất gọn và dễ hiểu
.Do mảng là một đối t-ợng cơ sở của Matlap ,nên việc lắm vững các phép tính về mảng là một trong các yêu cầu cơ bản khi sử dụng Matlap
Mảng y =([7,-3,2,0] )là hoàn toàn khác với mảng x ở trên do thứ tự các phần
tử ở hai mảng là khác nhau Matlap có thể cộng hai mảng x và y có cùng kích th-ớc
Trang 12Mét m¶ng trong Matlap cã thÓ cã nhiÒu dßng nhiÒu cét mét m¶ng nh- vËy cßn
®-îc gäi lµ mét ma trËn m¶ng hai chiÒu ®-îc thÓ hiÖn [ m, n]
Trang 132.1.4.M¶ng kiÓu « (cell array)
Matlap cã c¸c phÐp tÝnh vÒ m¶ng (array operations) cßn gäi lµ phÐp tÝnh trªn c¸c
phÇn tö t-¬ng øng vµ c¸c phÐp tÝnh vÒ matran (matrix operations)
Trang 15a.Cộng và trừ hai matran
Cho hai matran A= [aij] ,B =[bij] có cùng kích th-ớc ,phép cộng C =A + B hoặc phép trừ D = A - B sẽ đ-ợc thực hiện nh- cộng hay trừ hai mảng nh- đã trình bày
b.Phép nhân hai matran :
Cho matran A có kích th-ớc m p và matran B có kích th-ớc p q tích của hai matran đ-ợc Matlap thực hiện bằng lệnh A*B và sẽ sinh ra một matran C có kích th-ớc m q và với i = 1,2,…m và j = 1,2,…q
Phép nhân hai matran A và B đòi hỏi matran A và B phải t-ơng thích với nhau ,nghĩa là số dòng của matran B phải bằng số cột của matran A
c.Chuyển vị hai ma trận :
Trang 16Giả sử có ma trận A = thì ma tran chuyển vị sẽ là : A =
Cú pháp lệnh:
A =
A
e.Tính định thức của ma tran vuông
Để tính định thức của matran vuông trong Matlap sử dụng lệnh doet ()
Trang 17Cú pháp lệnh
>> A =
>> ef
q.Truy xuất một phần tử của ma tran Trích véc tơ dòng cột matran con
Khi tạo xong matran A nào đó ,phát hiện phần tử ở dòng n cột m cần thay đổi giá trị giả sử a thành b ta chỉ việc vào lệnh :
A(n,m) = b
Giả sử có matran A nh- sau:
A =
[ a1, a2, a3, a4]
[ a21, a22, a23, a24]
[ a31, a32, a33, a34]
[ a41, a42, a43, a44]
k.Một số lệnh thông dụng khác trong matran
eig(X) :dùng để tính trị riêng và véc tơ riêng của một matran vuông
[V,D] =eig(X) trả về matran đ-ờng chéo D chứa các trị riêng và một matran V
có các cột là véc tơ riêng t-ơng ứng sao cho : X*V =V*D
[V,D]=eigs(X) trả về một mảtận đ-ờng chéo D chứa sáu trị riêng có giá trị (độ
lớn lớn nhất và một matran V có các cột là các véc tơ riêng t-ơng ứng Tr-ờng hợp
muốn kết quả có n trị riêng ta dùng eigs(X,n)
lu(X) dùng để phân tích matran vuông thành các matran đặc biệt
[L,U] = lu (X) tạo matran tam giác trên U và một matran L (là tích của một
matran tam giác d-ới và một matran hoán vị )sao cho X = L*U
Trang 18[L,U,P] = lu(X) tạo matran tam giác d-ới L ,matran tam giác trên U và matran
hoán vị sao cho : P*X = L*U Ta có quam hệ A-1 = U-1L-1P
sparse (X) :Chuyển matran X thành thành matran sparese (matran th-a)
full(X) chuyển matran sparse (X) thành Matran đầy đủ
issparse (X) trả về giá trị 1 nếu matran X là matran sparse và trả về giá trị 0 nếu matran X không phải là matran sparse
Bài tập cuối ch-ơng
câu 1 : Thiết lập matran vuông A có kích th-ớc 10 10 nh- sau bằng ba cách:
Câu 2 : Tự tạo một cơ sở dữ liệu của các học viên cùng lớp với các tr-ờng :
ho_ten,email,dia_chi,số điện thoại
Câu3.Tính độ cứng của nhíp :
Trong đó là hệ số thực nghiệm , ,E là mô dul đàn hồi của vật liệu
với lk là ẵ chiều dài lá nhíp thứ k (tính từ quang treo đến đầu mút của lá )
Dữ liệu đã biết chỉ số của lá Bề rộng b,Cm Bề dầy lá nhíp
Trang 197-9 45 0.575 4.5*0.5753/12
=0.0713 Một phần hai chiều dài lá nhíp (tính từ quang treo đến đầu mút của lá )
Phản lực tác động tại các đầu mút của lá nhíp đ-ợc xác định từ hệ ph-ơng trình :
Trong đó Ak,Bk,Ck ,đ-ợc xác định từ biểu thức :
Trong đó lk là 1/2 chiều dài lá nhíp thứ k (tính từ quang đến đầu mút của lá )
Jk là mô men quán tính mặt cắt ngang của lá nhíp thứ k :
Cho dữ liệu các lá nhíp và tải trọng :
Số hiệu lá
nhíp
Trang 21Ch-ơng III : Công cụ toán học,Cách lập trình ứng dụng
trong Matlap 3.1 Các cộng cụ xử lý đa thức
Nếu trong ph-ơng trình hoặc biểu thức có nhiều hơn một biến Matlap sẽ giả
thiết biến gần với biến mặc định x (theo bảng chữ cái ) là biến phải tìm (ẩn của bài
Trang 22Dùng để tìm điểm cực tiểu của một hàm một biến trong một khoảng định
tr-ớc Điểm cực tiểu của hàm một biến y = fun(x) trong khoảng định tr-ớc (x 1 ,x 2 )
đ-ợc xác định bằng hàm fminbnb theo cú pháp :
fminbnb
Trong đó fun là tên của hàm cần tìm cực tiểu (ở dạng inline object hay dạng m
– file ) x và fval đ-ợc trả về giá trị của biến x thuộc (x 1 ,x 2 ) tại đó hàm fun đạt giá
trị cực tiểu
b.Hàm fminunc
Hàm fminunc dùng để tìm điểm cực tiểu địa ph-ơng của một hàm nhiều biến
từ một điểm định tr-ớc ,nó đ-ợc dùng để giải bài toán tối -u không có điều kiện dàng buộc
cú pháp :
fminunc
Trong đó fun là tên của hàm cần tìm cực tiểu (ở dạng inline object hay dạng m –
file ) , x và fval đ-ợc trả về là giá trị của biến x ở lân cận điểm x0 mà tại đó hàm
fun đạt cực tiểu ,x0 là điểm định tr-ớc và Matlap bắt đầu dò tìm điểm cực tiểu từ
điểm đó
Trang 23c Hàm fmincon
Hàm fmincon dùng để tìm cực tiểu của một hàm với các điều kiện dàng buộc
.Vấn đề ở đây là tìm cực tiểu của hàm fun(x) với các điều kiện dàng buộc :
Trong đó x và fval đ-ợc trả về giá trị của biến x mà tại đó hàm fun đạt cực tiểu
,fun là tên hàm cần tìm cực tiểu (ở dạng m –file) ,x0 là điểm định tr-ớc và Matlap
bắt đầu dò tìm cực tiểu từ điểm đó A,b,Aeq,lb,ub là các véc tơ và ma tran xác định
các điều kiện ràng buộc, nonlcon là tên hàm dạng m –file định nghĩa các hàm ở vế
trái của các điều kiện dàng buộc
3.2.2 Ph-ơng pháp nội suy trong Matlap
a.Nội suy một chiều :
cú pháp lệnh của nội suy tuyến tính :
>> y = interp
Trong đó :
Trang 24- y là véc tơ chứa các giá trị nội suy tại các giá trị t-ơng ứng xác định bởi véc tơ x*
- Y là véc tơ chứa các giá trị đ-ợc biết tr-ớc của hàm tại các giá trị t-ơng ứng xác định bởi véc tơ x
b.Nội suy hai chiều
Để tính đạo hàm của hàm số dùng lệnh diffu
Tr-ớc tiên khai báo các biến số sau đó dùng lệnh diffu để tính đạo hàm của nó
Cú pháp lệnh :
diffu
Trong đó x là biến số của hàm n là bậc mũ của biểu thức ,p là cấp của đạo hàm
cần tính Nếu trong biểu thức tính toán có từ hai biến trở lên để tính đạo hàm riêng của biểu thức theo biến nào đó ta dùng
Cú pháp lệnh nh- sau :
f(x,y z) = a*x + b* y + … c*z
diffu
% tính đạo hàm riêng bậc p theo biến nào đấy
ví dụ: Tính đạo hàm riêng cấp hai theo biến y của hàm số f(x,y) = ax 3 + by 4 + 9
diffu
Trang 25ans =
12*b*y^2
3.3.2 Tính tích phân hàm số
Matlap đã cho ra một số lệnh để tính tích phân của hàm số nh-ng thông dụng và
dễ dùng thì th-ờng hay dùng lệnh intd
3.3.3 Khai triển Taylor một hàm
Hàm taylor (f,n,a) khai triển Taylor hàm số f thành một đa thức symbolic xấp
xỉ bậc (n-1) tại lân cận điểm a ,nếu a đ-ợc bỏ qua xem nh- a = 0 thì chúng ta có khai triển (Maclaurin)
Trang 26Hàm diffsolve (f(x)) dùng để giải một ph-ơng trình vi phân mô tả bằng biểu
thức f(x) ,kết quả của hàm là một nghiệm dạng symbolic Trong biểu thức f(x) ta
dùng ký hiệu D để biểu thị đạo hàm bậc nhất ,D2 để biểu thị đạo hàm bậc hai Bất
kỳ ký tự nào đi liền ngay toán tử đạo hàm sẽ đ-ợc xem là biến phụ thuộc Ví dụ Dy thể hiện trong Matlap là (biến độc lập mặc định là biến t)
>> ans = C1*sinh(c*t) +C2*cosh (c*t) % Nghiệm tổng quát
Nếu ph-ơng trình vi phân có các điều kiện biên thì y(0) = a , thì cú pháp lệnh để giải ph-ơng trình vi phân cấp hai nh- sau :
Trang 27hàm diffsolve ,nếu muốn chỉ rõ biến độc lập thay vì biến mặc định t dùng cú pháp
Trang 28>> BaiK
Bµi tËp K sÏ lËp tøc chiÕm kh«ng gian lµm viÖc cña mµn h×nh comand Window,
c¸c phÇn kh¸c ®ang ch¹y trªn mµn h×nh sÏ dõng l¹i
Trang 29if (diem>1),(diem<4)
else
end
b.LÖnh switch and case
CÊu tróc switch and case cho phÐp ch-¬ng tr×nh cã nhiÒu sù lùa chän vµ chØ thùc
hiÖn mét trong c¸c nh¸n nµy tuú thuéc vµo gi¸ trÞ cña biÓu thøc ®Çu vµo (inpput
expression).CÊu tróc switch and case cã d¹ng nh- sau:
switch biÓu thøc ®Çu vµo (v« h-íng hoÆc chuçi ký tù )
Trang 31x =
2.09455148154233
Trang 33 Cã thÓ lång lÖnh for vµ lÖnh Switch and case
Cã thÓ lång lÖnh for vµ lÖnh try catch
Cã thÓ lång lÖnh for vµ lÖnh While
Cã thÓ lång lÖnh for vµ lÖnh return
Cã thÓ lång lÖnh for vµ lÖnh Breaker