1. Trang chủ
  2. » Công Nghệ Thông Tin

Matlab ứng dụng trong kỹ thuật ppt

82 606 11
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Matlab Ứng Dụng Trong Kỹ Thuật
Trường học Khoa Xây Dựng và Cơ Học Ứng Dụng
Chuyên ngành Kỹ Thuật
Thể loại Tài liệu kỹ thuật
Định dạng
Số trang 82
Dung lượng 5,87 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tập tin loại này có thể lưu nhiều hơn một biến nhưng nó chỉ được sư dụng trong ứng dụng Matlab và không chia sẽ được với những chương trình khác.. Ta cũng có thể tham chiếu đến các phần

Trang 1

Matlab ứng dụng

trong kỹ thuật

Trang 2

Chương I

MATLAB CƠ BẢN

I TỔNG QUAN MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB:

1 Khởi động và thoát khỏi Matlab

 Khởi động Matlab:

 Trên cửa sổ Window nhấp đúp lên biểu tượng của Matlab

 Vào Start -> All Programs -> Matlab release 12 -> Matlab 12

Sau khi khởi động ứng dụng Matlab sẽ được mở, giao diện chính của Matlab như hình

 Thoát khỏi Matlab:

Để thoát khỏi ứng dụng Matlab có thể chọn Exit Matlab từ menu File trên Desktop hoặc nhập quit trong Command Window

exit, quit Thoát khỏi Matlab finish Kết thúc Mfile

2 Giới thiệu môi trường làm việc và các công cụ của Matlab

 Giới thiệu khái quát giao diện làm việc chính của Matlab

Khi khởi động Matlab giao diện chính sẽ mở ra, giao diện này chứa các công cụ (giao tiếp người dùng) để quản lý các tập tin, biến và các ứng dụng phụ trợ khác

 Sử dụng Matlab như một máy tính

Khi dấu nhắc “>>” nhấp nháy trong Command Window chỉ ra rằng Matlab đã sẳn sàng cho việc nhập dữ liệu Khi nhìn thấy dấu nhắc “>>” lúc đó bạn có thể nhập vào một biến hoặc chạy một hàm nào đó

Bạn chỉ cần nhập vào biểu thức bạn muốn tính Ví dụ ta muốn tính biểu thức

1 2 3  bạn nhập biểu thức sau dấu nháy “>>” như sau

Nếu không nhập vào biến để lấy giá trị ra, Matlab sử dụng biến mặc định ans

(answer) để nhận giá trị của phép tính vừa thực hiện ans cũng như các biến khác,

Trang 3

bạn có quyền tham chiếu đến nó khi cần thiết Trong trường hợp bạn muốn dùng biến để lấy giá trị đầu ra, bạn chỉ cần nhập

Tên biến cũng được sử dụng để tham chiếu đến kết quả của phép tính trước Khi

ta cần tính 4 x ta chỉ cần nhập

Kết thúc mỗi dòng lệnh, nhấn <Enter> nếu bạn muốn kiểm tra kết quả của

việc thực thi dòng lệnh ngay lập tức Ngược lại, nhập dấu “;” trước khi nhấn

<Enter> kết quả thực thi của dòng lệnh vừa nhập sẽ không hiển thị trên màn hình

Ta có thể nhập nhiều biểu thức trên cùng một dòng

3 Biểu thức ( EXPRESSION)

Cũng giống như hầu hết các ngôn ngữ lập trình khác, MATLAB cũng cung cấp những biểu thức toán học, nhưng không giống các ngôn ngữ lập trình khác, hầu hết các biểu thức này đều liên quan đến ma trận

 Biến số ( variables)

Trang 4

Biến chỉ sử được tối đa 31 ký tự có nghĩa, biến phân biệt giữa chữ hoa và chữ thường

Biến bắt đầu bằng một từ theo sau là từ hay số hoặc dấu gạch chân (_)

Có hai loại biến:

 Biến toàn cục: có tác dụng trong toàn bộ chương trình

 Biến cục bộ: chỉ có tác dụng trong phạm vi khai báo (nội trong hàm)

Ngoài ra MATLAB còn cung cấp một số biến đặc biệt ví dụ như pi, i, j, ans … Dùng các lệnh who và whos để kiểm tra biến, lệnh clear và clear all để xóa

biến đã sử dụng

Ví dụ:

3.2 Số (Numbers):

MATLAB sử dụng các quy ước thập phân Sử dụng ghi chú khoa học (

scientific notation) e và số ảo ( imaginary Numbers) để biểu diển giá trị số

Tất cả những con số đều được lưu kiểu định dạng (format)

Dùng hàm format để định dạng kiểu số:

Lệnh sử dụng Kết quả Ví dụ: số pi

format long 16 con số sau dấu chấm 3.14159265358979

format long e 16 con số có dấu 3.141592653589793e+00 format short 5 con số sau dấu chấm 3.1416

format short e 5 con số có dấu 3.1416e+00

format bank Thập phân hai chữ số 3.14

Ví dụ:

Trang 5

MATLAB cung cấp một lượng lớn các hàm toán học cơ bản bao gồm abs,

sqrt, exp, sin,… Trong MATLAB có hai loại hàm:

Các hàm build-in là những hàm chúng ta chỉ được sử dụng chứ không

được hiệu chỉnh

Các hàm M-file chúng ta có thể xem và hiệu chỉnh nội dung của hàm

Một vài hàm đặc biệt, cho giá trị là hằng số:

pi: 3.141759…

i,j: đơn vị ảo i,j = 1

eps: điểm chấm động có quan hệ đến độ chính xác, 2-52

realmin: Số chấm động nhỏ nhất, 2-1022 realmax: Số điểm chấm động lớn nhất, 21023

NaN: Not a number( Không phải là một con số)

Inf: Infinity( Số vô cùng lơn, không xác định)

4 Nhập và xuất dữ liệu thông qua tập tin

Matlab sử dụng hai dạng tập tin dữ liệu

 Dạng thứ nhất mat-file là tập tin được định dạng kiểu nhị phân, tập tin loại này có phần mở rộng *.mat Tập tin loại này có thể lưu nhiều hơn một biến nhưng nó chỉ được sư dụng trong ứng dụng Matlab và không chia sẽ được với những chương trình khác

 Dạng thứ hai dat-file là tập tin được định dạng kiểu ASCII, tập tin loại này có phần mở rộng *.mat dat-file có thể được chia sẽ với các ứng dụng khác, tuy nhiên nó chỉ có thể lưu được một biến duy nhất

Để lưu và tải tập tin ta sử dụng hàm save và load

Ví dụ lưu tập tin dữ liệu mat-file trong thư mục hiện hành và lấy dữ liệu trở lại từ mat-file

Trang 6

Nếu muốn lưu dữ liệu này vào tập tin dat-file trong thư mục hiện hành ta làm như sau:

Ngoài ra ta còn có thể tạo một tin dữ liệu có phần mở rộng *.m

5 Nhập và xuất dữ liệu bằng bàn phím

Trang 7

Lệnh ‘input’ yêu cầu người dùng nhập dữ liệu từ phím

Để thể hiện giá trị của một biến và chuỗi trên màn hình ta sử dụng hai lệnh

‘disp()’ và ‘fprintf’

6 Lưu và tải tập tin có phần mở rộng *.txt

6.1 Lưu tập tin *.txt

6.2 Tải tập tin *.txt

Trang 8

II CÁC HÀM TOÁN HỌC

Có rất nhiều hàm chuẩn được xây dựng trong Matlab để hổ trợ việc tính toán cho người sử dụng

Những hàm toán học cơ bản trong Matlab

cos(x) Tính cos của x cos(2)

sin(x) Tính sin của x cos(10)

tan(x) Tính tang của x sin(7)

acos(x) Tính acos của x tan(2)

asin(x) Tính asin của x acos(5)

atan(x) Tính atan của x asin(4)

exp(x) x

log(x) Lấy logarit cơ số e sqrt(8)

log10(x) Lấy logarit cơ số 10 log(4)

abs(x) Trị tuyệt đối của x log10(10)

sign(x) Lấy dấu của x sign([1 -1 5]) = [1 -1 1]

max(x) Lấy giá trị lớn nhất max([1 -1 5]) = 5

min(x) Lấy giá trị nhỏ nhất min([1 -1 5]) = -1

ceil(x) Làm tròn về dương vô cùng ceil([1.25, -4.54, 6.5, -7.1 ])

1 Tạo ma trận

 Bạn có thể tạo ma trận theo nhiều cách khác nhau:

 Xây dựng ma trận bằng việc nhập từng phần tử một

 Tải một file dữ liệu từ bên ngoài

 Xây dựng các ma trận nhờ các hàm build-in

 Tạo một ma trận bằng hàm do ta tạo ra

 Một vài nguyên tắc cơ bản để xây dựng ma trận là:

Trang 9

 Phân biệt giữa các phần tử trong hàng là khoảng trắng hoặc dấu phẩy

Sử dụng dấu chấm phẩy (;) để ngăn cách giữa các hàng

Bao quanh một ma trận là cặp dấu: “ [ ] ”

Ví dụ: cần khai báo một ma trận như sau:

Khi ta không nhập một biến lấy dữ liệu ra, Matlab tự động sử dụng biến ans

để gán kết quả của phép tính Và biến này cũng được sử dụng như những biến khác

Vec tơ hàng là ma trận 1 x n gồm 1 hàng và n cột

Vec tơ cột là một ma trận cỡ m x1, gồm một cột và m hàng

Sử dụng dấu “ ’ ” để chuyển đổi qua lại giữa các vec tơ hàng và vectơ cột

Ma trận số phức

Trang 10

2 Chỉ số ma trận

Phần tử ở dòng i cột j của ma trận A được kí hiệu A(i,j) Ví dụ A(4,2) là phần tử ở dòng bốn, cột hai của ma trận A

Ta cũng có thể tham chiếu đến các phần tử của một ma trận bằng một chỉ số duy nhất A(k), cách này thường dùng để tham chiếu đến các phần tử của vector hàng hoặc cột Tuy nhiên ta cũng có thể áp dụng cho các ma trận hai chiều, trong trường hợp này chỉ số là vị trí của phần tử trong ma trận

Nếu ta truy xuất vào phần tử ở bên ngoài ma trận Matlab sẽ báo lỗi

Ngược lại, nếu ta gán một giá trị cho một phần tử ở bên ngoài ma trận thì kích thước ma trận sẽ tự động tăng lên để cung cấp vị trí cho các phần tử mới

Truy xuất vào hàng thứ i, cột bất kì của ma trận A ta thực hiện A(i ,: ) Ngược lại khi cần truy xuất vào hàng bất kì, cột j của ma trận A ta thực hiện A(:,j)

Ma trận Phần tử hàng của ma Phần tử cột của ma

Trang 11

trận trận

Toán tử “ : ” đây là một trong những toán tử quan trọng nhất của Matlab, nó

xuất hiện trong các dạng khác nhau

 Biểu thức

Với khai báo như trên ta thu được một vactor có một hàng, năm cột với bước nhảy mặc định là một

Để định giá trị bước nhảy ta khai báo như sau:

Khai báo chỉ số phần tử của ma trận A(1:k,j) nghĩa là lấy các phần tử ở dòng một đến dòng k và cột j của ma trận A

Trang 12

Nếu muốn truy xuất vào phần tử cuối của hàng hoặc cột trong một ma trận ta có thể thực hiện như sau:

Xóa một hàng hoặc một cột của một ma trận thực hiện phép gán hàng hoặc

cột cần xoá bỏ bằng [ ]

Thêm vào một ma trận một hàng hoặc một cột ta thực hiện như sau:

Ghép chuỗi: là quá trình xử lý lắp ghép nhiều ma trận con (nhỏ) thành một ma trận lớn, yêu cầu của phép ghép là các ma trận con phải có kích thước phù hợp

3 Các hàm liên quan đến xử lý ma trận

clear all; clc

A1=[1 2;5 6], A2=[3 4;7 8], A3=[9 10 11 12;13 14 15 16],

A=[A1 A2;A3]

Trang 13

size Cho biết kích thướt của ma trận

median: Tính giá trị trung bình của ma trận

max Tìm phần tử lớn nhất trong ma trận

min Tìm phần tử nhỏ nhất trong ma trận

mean Tính giá trị trung bình của dãy

length Hàm trả về chiều dài của một mảng

4 Một số hàm tạo nhanh ma trận

eye(m,n) Tạo ma trận đồng nhất có kích thước mxn eye(n) Tạo ma trận vuông đồng nhất có kích

thước nxn zeros(m,n) Tạo ma trận có kích thước mxn với tất cả

các phần tử bằng không ones(m,n) Tạo ma trận có kích thước mxn với tất cả

các phần tử bằng một diag(A) Chéo hóa ma trận A rand(m,n) Tạo ma trận ngẫu nhiên có kích thước mxn

5 Các phép tính trên ma trận

+, - Cộng hoặc trừ hai ma trận cùng kích thướt

A*B Nhân hai ma trận A và B

A/B Chia hai ma trận (chia phải) A và B

A\B Chia trái hai ma trận B và A

A.*B Nhân từng phần tử của hai ma trận A và B

A./B Chia từng phần tử của hai ma trận A và B

A.\B Chia từng phần tử của hai ma trận B và A

.^ Mũ cho từng phần tử của mảng

2./x

2

1 2/3 x/y

1/2

1 3/2

x./2

1/2

1 3/2

Trang 14

Các bước đồ họa:

Y= sin(X);

2 Chọn cửa sổ và vị trí của đối tượng đồ

họa trong cửa sổ

figure(‘Name’,’Hinh sine’); subplot(2,2,1);

3 Gọi hàm vẽ đồ thị h =plot(X,Y);

4 Xác định thuộc tính cho hình như kiểu

đường, màu sắc, … set(h, ‘LineStyle’,’-‘,’Color’,’r’)

5 Xác định các thuộc tính của axis, axes,

7 Xuất kết quả

Trang 15

V LẬP TRÌNH VỚI MATLAB

MATLAB cho phép người dùng lập trình theo hai loại : scripts và function

SCRIPTS: Là hình thức đơn giản nhất của M-file bởi vì nó không có thông số vào và ra Chúng là một tập hợp các lệnh và các hàm của MATLAB Scripts hoạt

động dựa vào đối tượng tồn tại trong Workspace Tất cả các biến tạo ra trong

scripts đều có thể sử dụng sau khi scripts kết thúc

Ví dụ:

FUNCTION : Là scripts tuy nhiên có thêm đối số vào ( input arguments)

và đối số ra ( output arguments) Hoạt động của biến trong một workspace riêng, các biến này chia rẽ với các biến trong workspace mà ta thực hiện trong scripts

hay ở command line

Các thành phần cơ bản của một hàm (function)

 Dòng định nghĩa hàm

Dòng cho biết ý nghĩa của hàm (Dòng H1 )

Dòng chú thích ý nghĩa của hàm ( Dòng Help line )

 Nội dung của hàm

Dòng định nghĩa hàm cho biết: Tên của hàm và các đối số của hàm được minh

Trang 16

Việc đặt tên hàm cũng có ràng buộc giống như việc đặt tên biến: bắt đầu bằng tên hàm bằng kí tự tiếp theo là các con số và dấu gạch dưới

Đối số của hàm: Nếu hàm có nhiều giá trị trả về thì ta đặt tất cả các đối số này trong dấu ngoặc vuông []

function [x,y,z]= sphere (theta, phi, rho)

Nếu hàm không có giá trị trả về ta có thể để trống hay để dấu []

function print_result (x) hay function []= print_result (x)

Dòng H1: Đây là dòng trợ giúp đầu tiên, cho biết ý nghĩa của hàm, dòng này

ngay sau dòng định nghĩa hàm và bắt đầu với kí tự “ %

Ví dụ : hàm average.m

% AVERAGE means of vectơ Elements

Dòng này sẽ là dòng đầu tiên xuất hiện khi bạn gõ help function_name ( Tên hàm

) tại dòng nhắc (>>) của MATLAB Dòng này chứa thông tin rất quan trọng của hàm

Các dòng trợ giúp ( Help line):

Các dòng này được tạo ra nhmằ mục đích chú thích các thông số của hàm cũng như các ví dụ khi sử dụng hàm này Các dòng này xuất hiện sau dòng H1 line khi bạn gõ

help function_name tại dòng nhắc của MATLAB Các dòng này sẽ kết thúc khi có

dòng trắng giữa hai dòng có “ %”

Ví dụ bạn gõ help sin tại dòng nhắc MATLAB:

Có kết quả như sau:

Nội dung của hàm: đây chính là phần chính của hàm

Trang 17

Chú thích trong MATLAB :

Như đã đề cập ở trên, Dòng chú thích là dòng bắt đầu với dấu % Dòng chú

thích có thể xuất hiện bất cứ đâu trong *.m ( tập tin của MATLAB) và ta có thể

đặt ở cuối dòng lệnh

Ví dụ:

%% Tinh tong cac phan tu

y=sum(x) % su dung ham sum

Hàm hoạt động như thế nào:

Người dùng có thể gọi hàm ở dòng nhắc Matlab hay bất cứ nơi nào trong

*.m ( tập tin của MATLAB) chắc rằng các thông số cần thiết cho hàm đủ là được

Khi gặp một tên mới MATLAB :

1 Kiểm tra xem có phải là tên biến hay không

2 Kiểm tra xem có phải là hàm con (subfunction) và hàm riêng ( private function( Hàm nằm trong thư mục con của thư mục hiện hành gọi là hàm riêng)) hay không

3 Kiểm tra xem hàm này có trong đường dẩn hiện hành hay không

Nội dung của hàm

Dòng H1 Các dòng trợ giúp

function [avg,med] = newstats(u) % Primary function

% NEWSTATS Find mean and median with internal

Trang 18

Kiểm tra biến vào và ra của một hàm:

Ta sử dụng hai hàm sau: nargin và nargout để kiểm tra thông số vào và ra

của một hàm

Ví dụ:

Các phép toán logic:

Phép toán Ý nghĩa

& Và

Bảng toán logic

Các hàm logic ( Logical function :

1 C = xor(A,B)

Ý nghĩa:

Toán tử quan hệ:

Trang 19

>= Lớn hơn hoặc bằng

disp(x);

 Dạng 2:

if ( biểu thức logic ) lệnh 1

Trang 21

Vòng lặp for :

for index = start:increment:end

statements

end

start và end lần lượt là giá trị bắt đầu và kết thúc của index, increment là

bước nhảy, nếu không cài đặt bước nhảy thì MATLAB mặc định increment =1, mỗi lần lặp sẽ kết thúc khi gặp từ khóa end Việc đầu tiên khi thực hiện vòng lặp

for là MATLAB kiểm tra xem sẽ lặp bao nhiêu lần, sau đó mới bắt đầu thực thi

vòng lặp

Lưu đồ:

Ví dụ1:

Trang 22

Vòng lặp while :

while ( điều kiện )

lệnh

end

Đối với vòng lặp while thì số lần lặp không xác định, số lần lặp phụ thuộc vào điều kiện đúng hay sai Trong khi điều kiện còn đúng thì vòng lặp vẫn còn tiếp tục vì vậy trong phần lệnh của vòng lặp while luôn có điều kiện để dừng vòng lặp Trong quá trình xây dựng và chạy thử chương trình nếu rơi vào vòng

Trang 23

lặp vô hạn thì bạn nhấn tổ hợp phím: Ctrl+(pause/brreak) để kết thúc chương trình

Lưu đồ:

Ví dụ 1:

Trang 25

end

Trang 26

Chương II

HỆ PHƯƠNG TRÌNH TUYẾN TÍNH

Trong chương này ta đi giải (tìm nghiệm) của hệ phương trình tuyến tính có dạng:

Sẽ có ba trường hợp xảy ra:

Trường hợp thứ nhất: số phương trình (M) bằng với số ẩn số (N), vì vậy ma trận A vuông

do đó nghiệm của hệ phương trình có thể được viết 1

xA b trong trường hợp ma trận A không suy biến

Ta có thể sử dụng Matlab:

Nếu ma trận A vuông nhưng suy biến, tức là trong ma trận A có một vài hàng hoặc cột phụ thuộc tuyến tính với những hàng hoặc cột khác

Khi đó hạng của ma trận A nhỏ hơn M Nếu ta loại bỏ tất cả các dòng phụ thuộc tuyến tính cho đến khi chỉ còn lại những dòng độc lập tuyến tính, lúc này M<N ta qua trường hợp thứ hai

Trang 27

Trường hợp thứ hai: số phương trình (M) nhỏ hơn số ẩn số (N), trong trường hợp này hệ phương trình không có nghiệm duy nhất

Trường hợp thứ ba: khi số phương trình (M) lớn hơn số ẩn số (N)

I GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH BẰNG THƯ VIỆN CỦA MATLAB

1 Thực hiện phép chia thông thường

2 Phương pháp tách LU

3 Sử dụng hàm solve

II TÌM NGHIỆM CỦA HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH BẰNG PHƯƠNG PHÁP SỐ

1 Phương pháp khử Gauss

Trang 28

Để đơn giản ta giả sử ma trận hệ số A có kích thước 3x3 ta có hệ

aij = aij – factor * akj end

bi = bi - factor * bk end

Khử thuận

end

xn = bn / ann for i = n-1 : 1 sum = 0 for j = i+1 : n

Thế ngược

sum = sum + aij * xj

Khử thuận

Thế ngược

Trang 29

end

xi = (bi - sum)/aii end

Chương trình Matlab giải hệ phương trình đại số tuyến tính bằng phương pháp khử Gauss

1 2 3

x x x

2 Phương pháp khử Gauss có tìm trụ lớn nhất

Phương pháp khử Gauss ở trên sẽ không thực hiện được nếu một trong các trụ

' ''

11, 22, 33

a a a bằng không, dù hệ có nghiệm duy nhất Ngoài ra nếu định thức của ma trận hệ số khác không, nhưng nếu một vài phần tử trụ về trị tuyệt đối rất nhỏ so với những phần tử còn lại trong cùng hàng thì khi chia các phần tử ấy cho phần tử trụ sai số làm tròn sẽ lớn, do đó có thể làm giảm nhiều độ chính xác của nghiệm tìm được

Để khắc phục những hạn chế vừa nêu, người ta thường dùng phương pháp Gauss có tìm trụ lớn nhất để tìm nghiệm Nội dung của phương pháp như sau:

Khi khử x1 trong sơ đồ Gauss, người ta chọn số lớn nhất về trị tuyệt đối trong các số

11, 21, 31

a a a làm trụ lớn nhất và gọi là trụ lớn nhất thứ nhất Sau đó ta hoán vị hàng

chứa trụ lớn nhất thứ nhất với hàng thứ nhất để trụ lớn nhất nằm đúng ở hàng một, cột một của sơ đồ Gauss và quá trình khử x1 được tiến hành như mục trên

Khi khử x2 trong sơ đồ Gauss, người ta chọn số lớn nhất về trị tuyệt đối trong các số

' '

22, 32

a a làm trụ lớn nhất và gọi là trụ lớn nhất thứ hai Sau đó ta hoán vị hàng chứa trụ

Trang 30

lớn nhất thứ hai với hàng thứ hai để trụ lớn nhất nằm đúng ở hàng hai, cột hai của sơ đồ Gauss và quá trình khử x2 được tiến hành như mục trên

Cuối cùng thực hiện phép thế ngược để tìm nghiệm

Giải thuật của phép khử Gauss có tìm trụ lớn nhất:

for k = 1 : n-1 Kiểm tra tìm trụ lớn nhất

for i = k+1 : n factor = aik / akk for j = k+1 : n

aij = aij – factor * akj end

bi = bi - factor * bk end

Khử thuận

end

xn = bn / ann for i = n-1 : 1 sum = 0 for j = i+1 : n sum = sum + aij * xj end

Xi = (bi - sum)/aii

Thế ngược

end Chương trình Matlab giải hệ phương trình đại số tuyến tính bằng phương pháp khử Gauss có tìm trụ lớn nhất

1 2 3

x x x

Trang 31

3 Phương pháp tách LU

Tách LU của một ma trận không suy biến A nghĩa là biểu diễn ma trận A là tích của ma

trận tam giác dưới và ma trận tam giác trên PALU

Thực hiện phép biến đổi, ta xét ma trận không suy biến có kích thước 3x3

a   tiến hành phép đổi hàng sao cho

 1 0

k kk

a   , nếu điều này không xảy ra ma trận

Trang 32

suy biến dừng lại

5 Tăng k lên một đơn vị, nếu k < N-1 trở lại bước

1 ngược lại đến bước 6

6 Lấy phần dước của ma trận A(N-1) làm ma trận

L, phần trên làm ma trận U Sau khi tách được hai ma trận L,U ta tiến hành bước thế tiến và luồi để tìm nghiệm

s = bi s = bi for j = i+1 : n for j = 1 : i-1

x x x

Trang 33

4 Phương pháp lặp Jacobi

Từ hệ phương trình Ax b ta luôn biến đổi được x k1 Axk b

x x

Trang 34

5 Phương pháp lặp Gauss-Seidel

Ở phương pháp lặp Gauss tại mỗi bước lặp các biến được cập nhật ở cùng thời điểm Trong phương pháp Gauss-Seidel sử dụng phương pháp sử lý song song, tại mỗi bước lặp giá trị của của biến được cập nhật theo theo trình tự Vì vậy trong cùng một bước lặp giá trị của mỗi biến được tính ở mỗi thời điểm khác nhau

x x

Trang 35

III BÀI TẬP ÁP DỤNG

Bài 1: Giải bài toán chuyển động của Robot: cho Robot hai bậc tự do R_R Tại mỗi

khớp đặt một motor Gọi 1 và 2 là góc quay của các khớp tương ứng

Toại độ cuối của cánh tay Robot được tính

  Với L1, L2 lần lượt là chiều dài các khâu

Bài toán đặc ra là xác định quy luật điều khiển motor để cánh tay Robot có thể di chuyển từ vị trí này đến vị trí khác với điều kiện vận tốc và gia tốc tại điểm đầu và điểm cuối bằng không

Đa thức được chọn để điều khiển motor

bb b b b b được xác định từ điều kiện chuyển động

Khi t 0, 1 0 và 2 0 đã biết và tt f, 1 t f2 t f đã biết

Theo điều kiện chuyển động ta có

Trang 37

Chương II

NỘI SUY - NGOẠI SUY

Trong thực hành ta thường gặp những hàm số yf x( ) mà không biết biểu thức giải tích cụ thể f của chúng Thông thường, ta chỉ biết các giá trị y y0, 1, ,y ncủa hàm số tại các điểm khác nhau x x0, , ,1 x của đoạn na b Các giá trị này có được nhờ thí nghiệm, , 

đo đạc,…Tuy nhiên số lần làm thí nghiệm hoặc đo đạt là hữu hạn trong khi đó nhiều khi

ta muốn xác định giá trị của chúng tại các điểm không trùng với x Muốn thế, ta tìm i

cách xây dựng một đa thức 1

đi qua các điểm dữ liệu đã cho

I SỬ DỤNG HÀM THƯ VIỆN MATLAB: interp1, interp2, interp3, spline, polyfit

1 Nội suy một chiều: interp1

x dựa vào phép nội suy của tập dữ liệu X, Y Vevtor

X xác định điểm tại đó giá trị của hàm đã biết

 'linear' : nội suy tuyến tính (mặc định)

 'spline': nội suy đường cong bậc ba

 'pchip', 'cubic' : nội đường cong Hermit

Chương trình so sánh các phương

pháp nội suy một chiều

Trang 38

yspline X Y x Trả về vector giá trị y tương ứng với vector có giá trị i x dựa vào i

phép nội suy đa thức bậc ba của tập dữ liệu X, Y Vevtor X xác định điểm tại đó giá trị

của hàm đã biết

3 Nội suy đa thức theo hàm: polyfit

 , , 

ppolyfit x y n tìm hệ số của đa thức bậc n thỏa các điểm dữ liệu cho trước Kết quả

p là ma trận hệ số của đa thức có dạng   1

p xp xp x    p xp

Trang 39

4 Nội suy hai chiều: interp2

Là phương pháp nội suy giữa các điểm dữ liệu đã có, đi tìm giá trị của hàm hai chiều f(x,y) dựa trên những điểm dữ liệu được cung cấp

 'linear' : nội suy tuyến tính (mặc định)

 'spline': nội suy đường cong bậc ba

 'cubic' : nội đường cong Hermit Chương trình nội suy hai chiều

Trang 40

II DÙNG PHƯƠNG PHÁP SỐ ĐỂ NỘI SUY ĐA THỨC

1 Phương pháp nội suy Lagrange

Cho N+1 điểm dữ liệu  x y0, 0 , x y1, 1, ,x N,y N  Ta cần tìm hệ số của một đa thức bậc N đi qua tất cả các điểm dữ liệu này

Ngày đăng: 12/07/2014, 18:20

HÌNH ẢNH LIÊN QUAN

Bảng toán logic - Matlab ứng dụng trong kỹ thuật ppt
Bảng to án logic (Trang 18)
Bảng Gauss bài toán 1 chiều - Matlab ứng dụng trong kỹ thuật ppt
ng Gauss bài toán 1 chiều (Trang 69)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w