Đại số tuyến tính trong matlab

15 574 0
Đại số tuyến tính trong matlab

Đ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

File có phần Phần Các câu lệnh đơn giản matlab đại số tuyến tính Phần Các đề tài đại số tuyến tính cho sinh viên Phần Các chương trình tham khảo Phần STT 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Hàm matlab A=[1 3;2 4] B=[3;2;5] A*B 2*A+B A^n chol(A) det(A) diag(v) eig(A) [v,d]=eig(A) eye(n) hadamard(n) Hilb inv(A) isempty(A) length(v) Linspace max(X) min(X) norm null ones(n) pascal(n) rank(A) reshape(A) size(A) tril(A) triu(A) vander(v) zeros(n) gs(A) [Q,R]=qr(A) [L,U]=lu(A) roots polyvalm polyval polyfit A\b Mô tả tạo ma trận cở 2,3 tạo ma trận cột cở hàng, 1cột Tính tích AB Tính 2A + B, ví dụ A=[2 1;2 0], B=[1 -2 1;2 5] Tính A^n với A ma trận vng Phân tích ma trận A thành tích ma trận theo phương pháp choleski Tính định thức ma trận vuông A Tạo ma trận chéo với p/tử đường chéo pt vécto v xuất trị riêng ma trận A xuất trị riêng vécto riêng ma trận A, chéo hóa ma trận tạo ma trận đơn vị cấp n cho trước Tạo ma trận Hadamard cấp n Ma trận Hilbert ma trận nghịch đảo ma trận A Kiểm tra A có ma trận khơng Tính độ dài vector Tạo vector cách Trả giá trị lớn vector X Trả giá trị nhỏ vector X Ma trận trực chuẩn vector riêng Khoảng trống Tạo ma trận cấp n có tất ptử Tạo ma trận pascal cấp n Tìm hạng ma trận A Thay đổi kích cỡ ma trận Kích cỡ ma trận A Trích ma trận tam giác từ ma trận A Trích ma trận tam giác từ ma trận A Tạo ma trận Vandermonde dựa vécto v Tạo ma trận cấp n Trực giao hóa Gram-Schmidt ma trận(A) Phân tích ma trận (A) thành tích ma trận Q R Phân tích ma trận(A) thành tích ma trận L U Tìm nghiệm đa thức tính trị đa thức mà biến ma trận Tính giá trị đa thức Xấp xỉ đa thức Giải hệ phương trình Ax = b Một số comments 1/ MATLAB cho phép ta nhập số liệu từ dòng lệnh Khi nhập ma trận từ bàn phím ta phải tuân theo quy định sau : • ngăn cách phần tử ma trận dấu “,” hay dấu trống • dùng dấu “;” để kết thúc hàng • bao phần tử ma trận cặp dấu ngoặc vng [ ] Ví dụ : >> A = [ ] kết A = 123 >> A = [1;2;3] kết A = 2/ Toán tử ‘ dùng để chuyển vị ma trận thực chuyển vị liên hợp ma trận phức Nếu muốn chuyển vị ma trận phức, ta dùng thêm toán tử “.” nghĩa phải viết “.’” Ví dụ: C = [1 + 2*i - 4*i; + i - 2*j]; X = C' Y = C.’ 3/ Chỉ số: Phần tử hàng i cột j ma trận m×n có kí hiệu A(i, j) Tuy nhiên ta tham chiếu tới phần tử mảng nhờ số, ví dụ A(k) với k = i + (j - 1)m Cách thường dùng để tham chiếu vec tơ hàng hay cột Trong trường hợp ma trận đầy đủ xem ma trận cột dài tạo từ cột ma trận ban đầu Như viết A(5) có nghĩa tham chiếu phần tử A(2, 2) Để xác định kích thước ma trận ta dùng lệnh length(trả kích thước lớn nhất) hay size(số hàng cột) Ví dụ: c = [1 4; 8]; length(c) [m, n] = size(c) 4/ Toán tử “:” : Toán tử “:” toán tử quan trọng MATLAB Nó xuất nhiều dạng khác Ví dụ: Lệnh : 1:10 tạo vec tơ hàng chứa 10 số nguyên từ đến 10 Lệnh: 100: -7: 50 tạo dãy số từ 100 đến 51, giảm lần Các biểu thức số tham chiếu tới phần ma trận Viết A(1:k, j) tham chiếu đến k phần tửđầu tiên cột j Ngoài toán tử “:” tham chiếu tới tất phần tử hàng hay cột Ví dụ: B = A(:, [1 ]) tạo ma trận B từ ma trận A cách đổi thứ tự cột từ [1 3] thành [1 2] Tạo ma trận hàm có sẵn: MATLAB cung cấp số hàm để tạo ma trận bản: zeros tạo ma trận mà phần tửđều zeros z = zeros(2, 4) ones tạo ma trận mà phần tửđều x = ones(2, 3) y = 5*ones(2, 2) rand tạo ma trận mà phần tử ngẫu nhiên phân bốđều d = rand(4, 4) randn tạo ma trận mà phần tử ngẫu nhiên phân bố trực giao e = randn(3, 3) magic(n) tạo ma trận cấp n gồm số nguyên từ đến n với tổng hàng tổng cột (n phải lớn hay 3) pascal(n) tạo ma trận xác định dương cấp n mà phần tử lấy từ tam giác Pascal Lệnh : pascal(4) tạo ma trận xác định dương cấp - eye(n) tạo ma trận đơn vị cấp n Lệnh: eye(3) tạo ma trận đơn vị cấp - eye(m, n) tạo ma trận đơn vị mở rộng Lệnh: eye(3, 4) tạo ma trận đơn vị gồm hàng cột Ta lắp ghép(concatenation) ma trận có sẵn thành ma trận Ví dụ: a = ones(3, 3) b = 5*ones(3, 3) c = [a + 2; b] Xoá hàng cột : Ta xố hàng cột từ ma trận dùng dấu [] Để xoá cột thứ ma trận b ta viết: b(:, 2) = [] Các lệnh xử lí ma trận: Cộng : X= A + B Trừ : X= A - B Nhân : X= A * B : X.*A nhân phần tử tương ứng với Chia : X = A/B lúc X*B = A : X = A\B lúc A*X = B : X=A./B chia phần tử tương ứng với Luỹ thừa : X = A^2 : X = A.^2 Nghịch đảo : X = inv(A) Định thức : d = det(A) Số chiều họ vector A : n=ndims(A) Tổng phần tử đường chéo ma trận A : s = trace(A) Phần Yêu cầu: Sinh viên khơng dùng hàm sẵn có matlab để viết chương trình Các đề tài 1/ Dùng phép biến đổi sơ cấp đưa ma trận dạng bậc thang tìm hạng ma trận A tùy ý Yêu cầu: Input: cho phép nhập vào ma trận tùy ý Output: Ma trận bậc thang r(A) 2/ Nhân hai ma trận với Yêu cầu: Input: cho phép nhập vào hai ma trận A B Chương trình phải kiểm tra phép nhân có thực hay khơng? Output: Ma trận tích 3/ Tính Am, với m số tự nhiên cho trước Yêu cầu: Input: Nhập vào ma trận vuông tùy ý số tự nhiên m Output: ma trận A m 4/ Tính định thức ma trận biến đổi sơ cấp Yêu cầu: Input: cho phép nhập vào ma trận vuông tùy ý Output: det(A) 5/ Tính định thức ma trận vng A cách khai triển theo hàng tùy ý (hoặc cột tùy ý) qua bù đại số Yêu cầu: Input: cho phép nhập vào ma trận vuông tùy ý Output: det(A) 6/ Tìm hạng ma trận sử dụng định thức (phương pháp định thức bao quanh) 7/ Tìm ma trận nghịch đảo ma trận vuông A biến đổi sơ cấp hàng cho ma trận � I | A   A I  ��� hang 1 Yêu cầu: Input: cho phép nhập vào ma trận vuông tùy ý Chương trình kiểm tra tính khả nghịch ma trận Output: Ma trận nghịch đảo: A1 8/ Tìm ma trận nghịch đảo công thức A1  PA det( A) Yêu cầu: Input: cho phép nhập vào ma trận vng tùy ý Chương trình kiểm tra tính khả nghịch ma trận Output: Ma trận nghịch đảo: A1 9/ Phân tích LU ma trận A Phân tích PA=LU Yêu cầu: Input: cho phép nhập vào ma trận vng cấp n Chương trình kiểm tra A phân tích thành A = LU hay khơng Nếu khơng tìm ma trận P phân tích PA= LU Output: Ma trận nghịch đảo: P, L, U 11/ Kiểm tra tính xác định dương ma trận vuông A (định nghĩa: ma trận vuông A gọi xác định dương, định thức dương) 10/ Phân tích Cholesky: A  R T R , A ma trận đối xứng, xác định dương 11/ Giải hệ phương trình phép biến đổi Gauss Yêu cầu: Input: cho phép nhập vào ma trận tùy ý A ma trận b Output: Nghiệm hệ dạng vécto Ma trận A b đọc từ file *.txt 12/ Giải hệ Cramer AX = b với A vuông, xi  det( A) �0 cơng thức x  ( x1 , x2 , , xn ) , det( Ai ) det( A) 13/ Tìm tọa độ vécto sở cho trước Yêu cầu: Input: cho vécto sở E Output: tọa độ vécto sở E 14/ Tìm ma trận chuyển sở từ E sang F Yêu cầu: Input: cho hai sở E F Output: ma trận chuyển sở P 15/ Tìm hạng họ vécto Yêu cầu: Input: cho họ vécto Output: hạng họ vécto vécto độc lập tuyến tính tối đa họ 16/ Kiểm tra tính độc lập tuyến tính, phụ thuộc tuyến tính họ vécto Kiểm tra vécto x có tổ hợp tuyến tính họ vécto M hay khơng? 17/ Tìm sở, số chiều khơng gian sinh họ vécto M Yêu cầu: Input: cho phép nhập vào họ vécto Output: Số chiều sở không gian sinh M 18/ Tìm sở số chiều khơng gian nghiệm hệ AX = Yêu cầu: Input: cho phép nhập vào ma trận A Output: Số chiều sở khơng gian nghiệm 19/ Tìm số chiều sở không gian giao F �G không gian tổng F  G hai không gian F G Input: nhập vào hai không gian (tập sinh hai không gian F G, nhập hệ pt) Output: số chiều sở giao tổng 20/ Dùng trình trực giao hóa Gram-Schmidt, tìm họ trực giao, họ trực chuẩn họ vécto độc lập tuyến tính Yêu cầu: Input: cho phép nhập vào họ vécto gồm m vécto độc lập tuyến tính (hoặc họ vécto bất kỳ, chương trình phải kiểm tra tính độc lập tuyến tính họ vécto) Output: Họ gồm m vécto trực giao, trực chuẩn 21/ Phân tích QR ma trận vng A q trình Gram – Schmidt u cầu: Input: cho phép nhập vào ma trận vuông A tùy ý Chương trình kiểm tra A có phân tích QR hay không (điều kiện: cột A họ độc lập tuyến tính) Output: Ma trận Q ma trận R 22/ Tìm hình chiếu vng góc vécto cho trước xuống khơng gian Tìm khoảng cách từ vécto đến không gian Yêu cầu: Input: cho phép nhập vào họ vécto M vécto x Output: hình chiếu vng góc vecto x xuống không gian F sinh M khoảng cách từ x đến F 23/ Cho ánh xạ tuyến tính f biết ma trận f sở E A Tìm ảnh vécto cho trước 24/ Cho ánh xạ tuyến tính f biết ma trận f sở E A Tìm sở, số chiều nhân ảnh ánh xạ tuyến tinh 25/ Cho ánh xạ tuyến tính f Tìm ma trận ánh xạ tuyến tính sở E cho trước 26/ Cho ma trận vuông A Tìm trị riêng, vécto riêng ma trận A 27/ Cho ma trận vng A Kiểm tra tính chéo hóa A Nếu được, tìm ma trận P ma trận D 28/ Cho ma trận đối xứng, thực vuông A Chéo hóa trực giao ma trận A 29/ Cho ma trận vng A chéo hóa Tính Am 30/ Cho dạng toàn phương Q( X )  X T AX Kiểm tra dạng toàn phương xác định dương hay khơng 31/ Cho dạng tồn phương Q( X )  X T AX Đưa dạng toàn phương tắc biến đổi trực giao 32/ Cho dạng toàn phương Q( X )  X T AX Phân loại dạng toàn phương 33/ Ứng dụng ma trận nghịch đảo lý thuyết mật mã 34/ Ứng dụng đại số tuyến tính tốn xấp xĩ hàm 35/ Ứng dụng đại số tuyến tính lý thuyết đồ họa Phần Các chương trình tham khảo Các chương trình download từ mạng phần lớn sinh viên viết nên chưa tối ưu Các Thầy cô tham khảo 1/ dùng biến đổi sơ cấp đưa ma trận dạng bậc thang function A=bdsc_bacthang(B) A=B; [m,n]=size(A); h=1; for k=1:m-1; for j=h:n; for i=k:m; if(A(i,j)~=0) break; end; end; if(A(i,j)~=0) break; end; end; if(i~=k) for l=h:n; a=A(k,l); A(k,l)=A(i,l); A(i,l)=a; end; end; if(j~=h) h=j; end; for i=k+1:m; if (A(i,h)~=0) a=A(i,h)/A(k,h); for j=h:n; A(i,j)=A(i,j)-a*A(k,j); end; end; end; h=h+1; end; disp('ma tran bac thang'); disp(A); end 1b/ dùng biến đổi sơ cấp đưa dạng bậc thang, tính hạng tính định thức function [B,dinhthuc,hang] = ladder(A) % chuyen ve bac thang % Dong thoi tim dinh thuc va hang cua ma tran dua vao bdsc if nargin n if n~=1 error ('kich co he so tu khong phu hop nhap lai end; if M~=N error ('kich co he so tu khong phu hop nhap lai end; end; if det(A)==0 error ('det=0,khong the dung phuong phap nay'); end; l=A; X=0; b=b'; for j=1:N if j==1 l=A; A'); b'); b'); b'); b'); l(:,j)=[]; l=[b l]; X(1,j)=det(l)/det(A); end; if j>=2 if jt b=c; end; z = size(b,1); t = size(b,2); %if z~=1 % if t==N error ('kich co he so tu khong phu hop'); % end; %end; %if t~=1 error ('kich co he so tu khong phu hop.'); %end; l=[A b]; i=1; d=0; for h=1:N k=l(h:N,:);%chon hang thu h den N k=k(:,h:m); %chon cot thu h den m for j=1:(m-h+1) for i=1:(N-h+1) if k(i,j)~=0 e=i; if h==1 f=j; end; if h~=1 f=1; end; break; end; end; if k(i,j)~=0 break; end; end;%tim phan tu khac dau tien de hoan doi k=circshift(k, [-(e-1), -(f-1)]); p=[l(1:(h-1),h:m);k]; l=[l(1:N,1:(h-1)) p]; for g=h:(N-1) for i=(g+1):N if l(g,g)~=0 c=l(i,g)/l(g,g); for j=g:m l(i,j)=l(i,j)-(c*l(g,j)); end; end; if l(g,g)==0 break; end; end; if l(g,g)==0 break; end; end;% bien doi so cap khu cac phan tu ben duoi end; B=l; rA=0; rB=0; for s=1:N i=N+1-s; for j=1:(m-1) if B(i,j)~=0 rA=i; break; end; end; if B(i,j)~=0 break; end; end;%tim hang ma tran he so for s=1:N i=N+1-s; for j=1:m if B(i,j)~=0 rB=i; break; end; end; if B(i,j)~=0 break; end; end;% tim hang ma tran mo rong if rA

Ngày đăng: 13/10/2019, 21:24

Tài liệu cùng người dùng

Tài liệu liên quan