tìm hiểu và ứng dụng giải một số bài toán kỹ thuât matlab - Pdf 25


THUYẾT MINH ĐÈ TÀI
NGHIÊN CỨU KHOA HỌC CẤP
TRƯỜNG: MATLAB TÌM HIỂU
VÀ ỨNG DỤNG
Trờng đạI học giao thông vận tảI
thuyết minh
đề tàI nghiên cứu khoa học cấp trờng

HANOI - 2002 mục lục

Phần 1 Giới thiệu về Matlab

1. Bắt đầu với Matlab

2. Các khái niệm cơ bản
a. Câu lệnh và biến
b. Các phép toán
c. Số dùng trong Matlab
d. Nhập số liệu từ bàn phím
e. In kết quả ra màn hình
f. Ma trận
g. Số phức và ma trận phức

3. Các hàm toán học
a. Các hàm lợng giác
b. Các hàm toán sơ cấp

4. Các thao tác đặc biệt trên ma trận

2. Giải bài toán động học cơ cấu phẳng

3. Giải bài toán cân bằng máy

4. Tính thiết kế bộ truyền bánh răng

5. Tính sức bền trục

6. Tính dao động
a. Tính dao động hệ một bậc tự do
b. Tính dao động hệ hai bậc tự do
c. Xác định tần số dao động riêng của hệ nhiều bậc tự do Kết luận

tài liệu tham khảo



Matlab là một phần mềm rất mạnh, cho phép giải rất nhanh các bài toán
phân tích số liệu, tính toán ma trận, xử lí tín hiệu, mô phỏng và tạo vẽ đồ
thị Lí do vì Matlab đã có một loạt các hàm chuyên giải quyết các vấn
đề đó đợc đặt trong Toolbox. Thêm nữa, Matlab lại rất dễ sử dụng: nó
không cần khai báo biến, các câu lệnh đợc viết rất gần gũi nh khi viết
các biểu thức toán học, tiết kiệm rất nhiều thời gian cho việc lập trình.

Một đặc điểm nổi bật nữa của Matlab là nó có khả năng mở rộng: ngời
sử dụng có thể tự sáng tạo những file hàm đặt vào Toolbox để thực hiện
giải những baì toán trong lĩnh vực chuyên môn của mình.

Sau một thời gian tự tìm hiểu và ứng dụng chúng tôi thấy rằng MATLAB
là một phần mềm rất thích hợp cho việc giải các bài toán kĩ thuật trong
nhiều lĩnh vực. Đặc biệt trong các trờng Đại học kĩ thuật nó có thể giúp
cho các cán bộ nghiên cứu và sinh viên có đợc một công cụ sắc bén để
nâng cao năng lực tính toán, tiết kiệm thời gian lập trình.
Đó là lí do để nhóm nghiên cứu chúng tôi mạnh dạn thực hiện đề tài có
tính chất tìm hiểu, giới thiệu và thử ứng dụng này.
Hình 2 là hình ảnh bạn thấy trên màn hình. Hình 2

Ví dụ 2: Nếu bạn muốn vẽ đồ thị hàm số y=5sinx+2cos2x+0,2x với biến
x chạy từ -10 đến 10, gia số của x là 0,1, trên Command Window bạn có
thể gõ vào các lệnh nh đợc thể hiện trong hình 3 dới đây:

Hình 3

Sau khi bấm Enter ở dòng lệnh cuối cùng, chơng trình chạy và
cho kết quả là đồ thị nh trong hình 4.

Hình 4

Nếu muốn lu giữ chơng trình vẽ đồ thị trên để có thể tu sửa hoặc chạy
nhièu lần, bạn hãy viết một file chơng trình ( gọi là M. file) nh sau:
trên cửa sổ Command Window bấm chọn File \ New \ M-file (hình 5):



Hình 9

Để chạy chơng trình trong file này, tại chỗ dấu nhắc trên màn hình
Command Window ta chỉ việc gõ tên file :
>> dothi
rồi bấm Enter.Chơng trình sẽ đợc thực hiện và kết quả cho ra là đồ thị
nh đợc thể hiện trên hình 4.
Trờng hợp bạn cất file .m vào một th mục ngoài, khi cần chạy chơng
trình có thể bấm chọn File \ Run Scrip, một cửa sổ sẽ xuất hiện và bạn
có thể gõ đờng dẫn và tên file vào đó rồi bấm phím Enter.

2. Các khái niệm cơ bản

a-Câu lệnh và biến trong Matlab
Các câu lệnh trong Matlab thờng có dạng sau:
biến = biểu thức
Tên biến đợc bắt đầu bằng một chữ cái, sau đó có thể là các chữ và số.
Ví dụ:
a2=4/5
Matlab chấp nhận tên biến (cũng nh tên hàm) có đến 19 kí tự và phân
biệt chữ in hoa với chữ in thờng. Ví dụ : A và a là tên hai biến khác
nhau.
Không giống với một số phần mềm lập trình khác, ở đây biến không
phải khai báo trớc. Nếu không viết tên biến và dấu = trớc biểu thức thì
chơng trình sẽ tự động tạo tên biến là ans ( đứng cho chữ answer).
Ví dụ:
>> 4/5

Các phép toán quan hệ
== bằng
<= nhỏ hơn hoặc bằng
>= lớn hơn hoặc bằng
~= không bằng
< nhỏ hơn
> lớn hơn
Các phép toán lô gic
& và
/ hoặc
~ không
Các phép toán quan hệ và lô gíc thờng đợc dùng trong các biêủ thức
của các toán tử điều khiển nh if, while.

c. Số dùng trong Matlab
Matlab dùng số thập phân truyền thống với số chữ số thập phân tuỳ chọn.
Bạn cũng có thể dùng số dới dạng luỹ thừa của 10 và số có đơn vị phức.
Dới đây là một số ví dụ về các số hợp thức dùng trong Matlab:
4 57 -180.1122
3.09837412 12.6529E4 20.2908e-2
12i -23.1261i 5e2i

d- Nhập số liệu từ bàn phím
Dùng lệnh input với qui cách viết nh sau:
a=input( Hãy nhập giá trị của a : a = )
Khi chạy chơng trình máy sẽ dừng để đợi ta gõ vào từ bàn phím giá trị
của a, sau đó bấm Enter.

e. In kết quả ra màn hình: có hai cách
Cách 1 : Không gõ dấu kết thúc ( ; ) ở cuối câu lệnh. Khi chạy kết quả


Các phần tử của ma trận có thể là các biểu thức. Ví dụ:
C=[ -1 2*3/5 2.2^3 (12+34/7)/3 ]

C =

-1.0000 1.2000 10.6480 5.6190

g. Số phức và ma trận phức
Matlab có thể thực hiện đợc các phép toán về số phức. Số phức
đợc biểu thị nhờ hàm i và j. Ví dụ viết số phức z dùng i và j nh
dới đây cho kết quả nh nhau:
z = 4+5*i
hoặc z = 4+5*j
Một ví dụ khác về số phức đợc viết dới dạng e mũ:
w =r* exp(i*theta)
Ma trận có các phần tử là số phức đợc viết nh sau:
A=[ 3+2*i 4-9*i ; 12+i 7-6*i ]

3. Các hàm toán học
a. Các hàm lợng giác
- sin : sin
- cos : cosin
- tan : tang
- asin : arcsin
- acos : arccosin
- atan : arctang
- atan2 : arctan góc phần t
- sinh : sin hypecbôlic
- cosh : cosin hypecbôlic

- sign : hàm xét dấu
- gcd : ứơc số chung lớn nhất
- lom : Bội số chung nhỏ nhất
- exp : hàm e mũ
- log : logarit cơ số tự nhiên
- log10 : logarit cơ số 10
Ví dụ 1:
a=2+5*i;
md= abs(a)
arg= angle(a)
Kết quả cho:
md =
5.3852
arg =
1.1903

4. Các thao tác đặc biệt trên ma trận

- Tạo ma trận hàng

>>t=0: 0.5: 3
t =
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

>> v= -2: 3

v =

-2 -1 0 1 2 3


>>g=c(3,2:4)

g =

10 11 12

- Tạo ma trận có cỡ lớn hơn từ các ma trận nhỏ

Ví dụ: tạo ma trận h từ hai ma trận e và g ở trên

>> h=[e ; g]

h =

2 3 4
6 7 8
10 11 12
Ví dụ khác: tạo ma trận k từ ma trận h và ma trận cột f
>> k= [ h f ]

k =

2 3 4 3
6 7 8 7
10 11 12 11

- Tạo một số ma trận đặc biệt

+ Vết của ma trận : Dùng lệnh diag để tạo một ma trận cột mà
các phần tử của nó là các phần tử nằm trên đờng chéo của ma trận cho

+ Ma trận mà các phần tử đều là các số 0 hoặc số 1:
Dùng hàm zeros và hàm ones.
Ví dụ:
>> K=zeros(3,4)

K =
0 0 0 0
0 0 0 0
0 0 0 0

>>M=ones(2,2)

M =
1 1
1 1

- Đảo ma trận
Dùng hàm fliplr để đảo ma trận từ trái sang phải và hàm flipud đảo ma
trận từ trên xuống dới.
Ví dụ : Cho ma trận M cỡ 4x4 rồi tiến hành đảo nh dới đây

>> M=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]

M =

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16


Ma trận chuyển vị của a là ac đợc xác định nh sau:
ac=a'
ac =
1 2 4 0
3 -1 6 1
-4 2 -1 3
5 0 1 5

- Cộng ma trận : hai ma trận phải cùng cỡ. Ta tính tổng của hai
ma trận a và ac nh sau:

at=a+ac
at =
2 5 0 5
5 -2 8 1
0 8 -2 4
5 1 4 10

- Cộng một số với ma trận:
Matlab coi số đó nh một ma trận cùng cỡ với ma trận đợc cộng, mỗi
phần tử của ma trận bằng chính số đó. Ví dụ: cộng số là 7 với ma trận at
ở trên ta đợc ma trận cs.

s =7;
cs=s+at
cs =
9 12 7 12
12 5 15 8
7 15 5 11
12 8 11 17

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

A =

2 1 9 7
1 3 8 5
5 3 4 2
9 0 6 6

B=[12; 2; -6; 8 ]'

B =

12
2
-6
8

x= A\B

x =

0.1026
-6.2051
4.8718
-3.6923
Thử lại xem A*x có bằng B không:
A*x

ans =

0.1026
-6.2051
4.8718
-3.6923

- Định thức của ma trận
Định thức của ma trận vuông đợc tính nhờ hàm det. Ví dụ tính định thức
D của ma trận A ở trên:
>> D=det(A)

D =

-39
- Nhân vô hớng, nhân có hớng véc tơ
Cho hai véc tơ m và n nh sau:
m=[1 1 3]; n=[4 2 0];
Tích vô hớng của m và n: dùng hàm dot
vh=dot(m,n)
vh = 6
Tích có hớng của m và n: dùng hàm cross
ch=cross(m,n)
ch = -6 12 -2
Còn tích có hớng của n và m:
ch2=cross(n,m)
ch2 = 6 -12 2

b- Các phép tính phần tử - phần tử của ma trận

Các phép tính này rất tiện ích và đợc phân biệt với các phép tính tiêu
chuẩn trên ma trận bằng dấu chấm ( . ) đợc đặt trớc các dấu phép tính.


Nếu y không phải là ma trận mà là một số, ví dụ y=2, thì kết quả nh
sau:
>> x.^2

ans =

1 4
9 16

- Nhân phần tử ma trận
Ví dụ
>> x.*y

ans =

3 8
2 8

- Chia phần tử ma trận
Ví dụ;
>> x./y

ans =

0.3333 0.5000
3.0000 2.0000 6. Các hàm thực hiện các phép tính với đa thức


p=[ 1 -2 -13 38 -24 ];
r=roots(p)

r =
-4.0000
3.0000
2.0000
1.0000
Ta thấy kết quả hoàn toàn chính xác.

- Hàm conv : Dùng nhân đa thức.

Quy cách viết: a=conv(b,c) trong đó b,c là hai ma trận hàng có các phần
tử là các hệ số của các đa thức cần nhân. Kết quả cho ra là ma trận a có
các phần tử là hệ số của ma trận tích.
Ví dụ : cần nhân hai đa thức x
3
+2x
2
+6 và 3x
4
-6x
2
+5x-10 ta làm nh sau:

b=[1 2 0 6];
c=[3 0 -6 5 -10];
a=conv(b,c)


[b,d]=deconv(a,c)

b =

1 2 0 6

d =

0 0 0 0 0 0 0 0

Ta thấy kết quả là hoàn toàn đúng.

7. các Hàm dùng phân tích dữ liệu

Các hàm tìm giá trị cực đại, cực tiểu và trung bình
- Hàm max : Tìm giá trị lớn nhất
Qui cách viết ln=max(a)
với a là ma trận hàng. Kết quả cho ra là một phần tử có giá trị lớn nhất
của a
Ví dụ:
a=[ 10 2 1 -30 23 8];
ln=max(a)
ln =
23
- Hàm min : tìm giá trị cực tiểu
Ví dụ:
bn=min(a)
bn =
-30
bn=mi

Ví dụ: Tính tổng các phần tử của ma trận a nh sau
T=sum(a)
T =
26

- Hàm diff : Tính giá trị sai khác của hai số đứng liền nhau. Qui cách
viết:
s=diff(x)
với x là một ma trận hàng hoặc cột.
Ví dụ:
>>x=[ 1.2 1.4 1.8 2.1 3 ];
>> s=diff(x)

s =

0.2000 0.4000 0.3000 0.9000
Ta dễ dàng thấy rằng hàm diff này có thể dùng để tính gần đúng đạo
hàm.
Nếu x là một ma trận bình thờng thì quá trình tính sẽ đợc thực hiện
theo thứ tự các cột.
- Hàm Interp1 : Dùng tìm các giá trị bị khuyết.
Ví dụ: Đã biết giá trị của hàm y=x3-3x+4 tại các điểm có x=0,1,2,3,4 và
5. Hãy xác định giá trị của y tại các điểm có x= 0,3, 0,5, , 4.2, 4,8.
Ta viết các lệnh nh sau:

x1=0:5;
y1=x1.^3-3*x1+4;
x2=[0 .3 .5 1.2 1.4 2.1 3.3 4.2 4.8 5];
y2=interp1(x1,y1,x2,'cubic')
plot(x1,y1,'ro',x2,y2,'b+')


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status