1/ MATLAB chất nhận được ta nhập số liệu từ mẫu lệnh.

Bạn đang xem: Cách nhập ma trận trong matlab

Khi nhập ma trận từ bàn phím ta buộc phải tuân theo các quy định sau :

• phân làn các bộ phận của ma trận bằng dấu “,” hay vệt trống

• cần sử dụng dấu “;” để xong một mặt hàng

• bao các thành phần của ma trận bằng cặp vết ngoặc vuông < >

Ví dụ : >> A = < 1 2 3 > kết quả là A = 1 2 3 >> A = <1;2;3>

công dụng là A =

1

2 3

2/ Toán tử ‘ dùng làm chuyển vị một ma trận thực và chuyển vị phối hợp một ma trận

phức. Giả dụ chỉ mong mỏi chuyển vị ma trận phức, ta dùng thêm toán tử “.” nghĩa là cần

viết “.’”. Ví dụ:

C = <1 + 2*i 2 - 4*i; 3 + i 2 - 2*j>;

X = C"

Y = C.’

3/ Chỉ số: thành phần ở hàng i cột j của ma trận m×n tất cả kí hiệu là A(i, j). Tuy

nhiên ta cũng hoàn toàn có thể tham chiếu tới phần tử của mảng nhờ một chỉ số, lấy ví dụ như A(k) với k

= i + (j - 1)m. Giải pháp này thường dùng để làm tham chiếu vec tơ hàng xuất xắc cột. Vào trường

hợp ma trận rất đầy đủ thì nó được coi là ma trận một cột dài tạo thành từ các cột của ma trận

ban đầu. Như vậy viết A(5) có nghĩa là tham chiếu bộ phận A(2, 2).

Để xác minh kích thước của một ma trận ta sử dụng lệnh length(trả về form size

lớn nhất) tốt size(số hàng cùng cột). Ví dụ:

c = <1 2 3 4; 5 6 7 8>;

length(c)

= size(c)

4/ Toán tử “:” : Toán tử “:” là 1 toán tử quan trọng đặc biệt của MATLAB. Nó xuất

hiện ở các dạng không giống nhau. Ví dụ: Lệnh :

1:10

tạo một vec tơ hàng đựng 10 số nguyên từ 1 đến 10.

Lệnh: 100: -7: 50

tạo một hàng số từ bỏ 100 cho 51, sút 7 mỗi lần.

Các biểu thức chỉ số tham chiếu tới một phần của ma trận. Viết A(1:k, j) là tham

chiếu mang đến k phần tửđầu tiên của cột j. Trong khi toán tử “:” tham chiếu tới tất cả các

phần tử của một hàng hay một cột. Ví dụ:

B = A(:, <1 3 2 >)

tạo ra ma trận B từ bỏ ma trận A bằng phương pháp đổi đồ vật tự các cột từ bỏ <1 2 3> thành <1 3 2>

Tạo ma trận bằng hàm tất cả sẵn: MATLAB cung ứng một số hàm để tạo những

ma trận cơ bản:

zeros tạo thành ma trận mà những phần tửđều là zeros

z = zeros(2, 4)

ones tạo nên ma trận mà các phần tửđều là 1 trong

x = ones(2, 3)

y = 5*ones(2, 2)

rand tạo nên ma trận mà các phần tử ngẫu nhiên phân bốđều

d = rand(4, 4)

randn tạo thành ma trận cơ mà các phần tử ngẫu nhiên phân bố trực giao

e = randn(3, 3)

magic(n) tạo thành ma trận cấp cho n gồm những số nguyên từ một đến n2 cùng với tổng các hàng

bằng tổng các cột (n phải lớn hơn hay bằng 3).

pascal(n) tạo ra ma trận khẳng định dương cấp n mà lại các phần tử lấy từ tam giác Pascal.

Lệnh :

pascal(4) tạo nên ma trận xác định dương cấp cho 4

- eye(n) tạo nên ma trận đơn vị chức năng cấp n

Lệnh:

eye(3) chế tạo ma trận đơn vị chức năng cấp 3

- eye(m, n) tạo ma trận 1-1 vị mở rộng

Lệnh:

eye(3, 4) tạo thành ma trận đơn vị chức năng gồm 3 mặt hàng 4 cột

Ta hoàn toàn có thể lắp ghép(concatenation) những ma trận tất cả sẵn thành một

ma trận mới. Ví dụ:

a = ones(3, 3)

b = 5*ones(3, 3)

c =

Xoá hàng với cột : Ta có thể xoá hàng cùng cột trường đoản cú ma trận bởi dùng lốt <>. Để

xoá cột thứ 2 của ma trận b ta viết:

b(:, 2) = <>

Các lệnh cập nhật ma trận:

cộng : X= A + B

Trừ : X= A - B

Nhân : X= A * B

: X.*A nhân các thành phần tương ứng với nhau

phân tách : X = A/B cơ hội đó X*B = A

: X = AB cơ hội đó A*X = B

: X=A./B phân chia các phần tử tương ứng cùng nhau

Luỹ thừa : X = A^2

: X = A.^2

Nghịch hòn đảo : X = inv(A)

Định thức : d = det(A)

Số chiều của họ vector A : n=ndims(A)

Tổng các thành phần trên đường chéo cánh chính ma trận A : s = trace(A)

Phần 2.

Yêu cầu: Sinh viên không được dùng các hàm sẵn có trong matlab nhằm viết chương trình.

Các đề tài.

1/ Dùng các phép đổi khác sơ cấp đưa ma trận về dạng cầu thang và tra cứu hạng của ma trận A tùy ý.

Yêu cầu: Input: được cho phép nhập vào một trong những ma trận tùy ý. Output: Ma trận cầu thang và r(A).

2/ Nhân nhì ma trận cùng với nhau.

Yêu cầu: Input: chất nhận được nhập vào hai ma trận A cùng B. Chương trình đề nghị kiểm tra phép nhân có tiến hành được tốt không? Output: Ma trận tích.

3/ Tính Am, với m là số tự nhiên và thoải mái cho trước.

Yêu cầu: Input: Nhập vào một ma trận vuông tùy ý và số thoải mái và tự nhiên m. Output: một ma trận Am.

4/ Tính định thức của ma trận bằng thay đổi sơ cấp.

Yêu cầu: Input: cho phép nhập vào trong 1 ma trận vuông tùy ý. Output: det(A).

5/ Tính định thức của ma trận vuông A bằng cách khai triển theo một hàng tùy ý (hoặc một cột tùy ý) qua những bù đại số.

Yêu cầu: Input: được cho phép nhập vào trong 1 ma trận vuông tùy ý. Output: det(A).

6/ tra cứu hạng của ma trận bằng các sử dụng các định thức nhỏ (phương pháp định thức bao quanh).

7/ tìm ma trận nghịch đảo của ma trận vuông A bằng chuyển đổi sơ cấp so với hàng cho ma trận

*
.

Yêu cầu: Input: chất nhận được nhập vào một ma trận vuông tùy ý. Chương trình bình chọn tính khả nghịch của ma trận. Output: Ma trận nghịch đảo: .

8/ tra cứu ma trận nghịch đảo bằng công thức

*
.

Yêu cầu: Input: cho phép nhập vào trong 1 ma trận vuông tùy ý. Chương trình đánh giá tính khả nghịch của ma trận. Output: Ma trận nghịch đảo: .

9/ so với LU của ma trận A. So sánh PA=LU.

Yêu cầu: Input: chất nhận được nhập vào một ma trận vuông cung cấp n. Chương trình kiểm soát A có thể phân tích thành A = LU giỏi không. Nếu như không thì kiếm tìm ma trận p. Và so sánh PA= LU. Output: Ma trận nghịch đảo: P, L, U.

11/ soát sổ tính khẳng định dương của ma trận vuông A. (định nghĩa: ma trận vuông A hotline là khẳng định dương, nếu những định thức con thiết yếu đều dương).

10/ đối chiếu Cholesky:

*
, trong số ấy A là ma trận đối xứng, khẳng định dương.

11/ Giải hệ phương trình bởi phép đổi khác Gauss.

Yêu cầu: Input: chất nhận được nhập vào một ma trận tùy ý A cùng ma trận b. Output: Nghiệm của hệ nghỉ ngơi dạng vécto.

Ma trận A với b có thể được đọc từ file *.txt

12/ Giải hệ Cramer AX = b cùng với A vuông,

*
bởi công thức
*
,

trong kia

*
.

13/ tra cứu tọa độ của một vécto trong một cửa hàng cho trước.

Yêu cầu: Input: cho 1 vécto và một các đại lý E.

Xem thêm: Thuốc Ho Dị Ứng Thời Tiết - Khi Nào Thì Bị Ho Dị Ứng Và Cách Điều Trị

Output: tọa độ của vécto trong đại lý E.

14/ tìm ma trận chuyển cơ sở từ E thanh lịch F.

Yêu cầu: Input: mang lại hai cơ sở E với F. Output: ma trận đưa cơ sở p.

15/ tìm kiếm hạng của mình vécto.

Yêu cầu: Input: cho 1 họ vécto. Output: hạng của mình vécto này và các vécto chủ quyền tuyến tính về tối đa của mình

16/ bình chọn tính tự do tuyến tính, nhờ vào tuyến tính của mình vécto. Khám nghiệm vécto x gồm là tổ hợp tuyến tính của mình vécto M giỏi không?

17/ search cơ sở, số chiều của không gian con sinh ra vày họ vécto M.

Yêu cầu: Input: cho phép nhập vào trong 1 họ vécto. Output: Số chiều và đại lý của không khí con sinh ra vì M.

18/ Tìm đại lý và số chiều của không gian nghiệm của hệ thuần duy nhất AX = 0.

Yêu cầu: Input: có thể chấp nhận được nhập vào ma trận A. Output: Số chiều và đại lý của không khí nghiệm.

19/ tra cứu số chiều và các đại lý của không gian giao

*
và không gian tổng
*
của hai không khí con F và G. Input: nhập vào hai không khí con (tập sinh của hai không gian con F và G, hoặc nhập hệ pt). Output: số chiều và đại lý của giao cùng tổng.

20/ Dùng quá trình trực giao hóa Gram-Schmidt, tìm chúng ta trực giao, bọn họ trực chuẩn của họ vécto độc lập tuyến tính.

Yêu cầu: Input: được cho phép nhập vào trong 1 họ vécto bao gồm m vécto độc lập tuyến tính (hoặc chúng ta vécto bất kỳ, chương trình buộc phải kiểm tra tính hòa bình tuyến tính của họ vécto). Output: Họ tất cả m vécto trực giao, hoàn toàn có thể trực chuẩn.

21/ phân tích QR của ma trận vuông A bằng quá trình Gram – Schmidt.

Yêu cầu: Input: được cho phép nhập vào ma trận vuông A tùy ý. Chương trình chất vấn A tất cả phân tích QR hay không (điều kiện: các cột của A là họ độc lập tuyến tính). Output: Ma trận Q với ma trận R.

22/ kiếm tìm hình chiếu vuông góc của một vécto mang lại trước xuống không gian con. Tìm khoảng cách từ vécto đến không khí con.

Yêu cầu: Input: chất nhận được nhập vào một họ vécto M và vécto x. Output: hình chiếu vuông góc của vecto x xuống không gian con F được sinh ra bởi M và khoảng cách từ x đến F.

23/ đến ánh xạ tuyến đường tính f biết ma trận của f trong cơ sở E là A. Tìm hình ảnh của một vécto cho trước.

24/ mang lại ánh xạ tuyến đường tính f biết ma trận của f trong đại lý E là A. Tìm kiếm cơ sở, số chiều của nhân và hình ảnh của ánh xạ con đường tinh.

25/ mang lại ánh xạ tuyến tính f. Tìm ma trận của ánh xạ con đường tính trong cơ sở E cho trước.

26/ mang đến ma trận vuông A. Search trị riêng, vécto riêng của ma trận A.

27/ cho ma trận vuông A. đánh giá tính chéo cánh hóa của A. Nếu được, tìm kiếm ma trận p và ma trận D.

28/ mang lại ma trận đối xứng, thực vuông A. Chéo cánh hóa trực giao ma trận A.

29/ mang đến ma trận vuông A chéo hóa được. Tính Am.

30/ cho dạng toàn phương . đánh giá dạng toàn phương xác định dương tuyệt không.

31/ cho dạng toàn phương . Đưa dạng toàn phương về bao gồm tắc bằng đổi khác trực giao.

32/ mang đến dạng toàn phương . Phân loại dạng toàn phương.

33/ Ứng dụng ma trận nghịch hòn đảo trong kim chỉ nan mật mã

34/ Ứng dụng đại số đường tính trong vấn đề xấp xĩ hàm.

35/ Ứng dụng đại số đường tính trong triết lý đồ họa.

Phần 3. Các chương trình tham khảo. Các chương trình này được download từ mạng hoặc đa số do sinh viên viết yêu cầu chưa chắc hẳn là tối ưu.

1/ dùng đổi khác sơ cấp đưa ma trận về dạng cầu thang

function A=bdsc_bacthang(B)

A=B;

=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 hóa sơ cấp đưa về dạng bậc thang, tính hạng và tính định thức.

function = ladder(A) % chuyen ve sầu bac thang

% Dong thoi tim dinh thuc va hang cua ma tran dua vao bdsc

if nargin "phai nhap vao ma tran can phan tich");

end;

N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot

m = size(A,2);

l=A;

i=1;

d=0;

if N~=m

dinhthuc ="*phai la ma tran vuong*";

end;

for h=1:N

k=l(h:N,:);

k=k(:,h:m);

for j=1:(m-h+1) % tim phan tu khac khong dau tien theo tt cot hang

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;

d=d+(e-1)*(N-1)+(f-1)*(m-1);

k=circshift(k, <-(e-1), -(f-1)>);

p=;

l=;

for g=h:(N-1) % quần thể cac phan tu theo sau ben duoi

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;

end;

E=l(2:N,1:m,:); % bien doi de dinh thuc ma tran khong cầm doi

F=l(1,1:m);

F=((-1)^d)*F;

B=;%ma tran B cố gắng the boi B ma xet su thay doi dau hang 1

hang=0;

for s=1:N %tim hang ma tran

i=N+1-s;

for j=1:m

if B(i,j)~=0

hang=i;

break;

end;

end;

if B(i,j)~=0

break;

end;

end;

if N==m % tim dinh thuc ma tran

dinhthuc=1;

for i=1:N

dinhthuc=dinhthuc*B(i,i);

end;

end;

2/ Giải hệ phương trình bằng cách thức Cramer

function = cramer(A,b)

if nargin "phai nhap vao ma tran can phan tich");

end;

N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot

m = size(A,2);

if N~=m error ("khong phai la he cramer,nhap lai ma tran he so A");

end;

n = size(b,1);

M = size(b,2);

if n>M

b=b";

if M~=1 error ("kich co he so tu bởi vì khong phu hop nhap lai b");

end;

if n~=N error ("kich co he so tu bởi khong phu hop nhap lai b");

end;

end;

if M>n

if n~=1 error ("kich co he so tu bởi vì khong phu hop nhap lai b");

end;

if M~=N error ("kich co he so tu vì chưng khong phu hop nhap lai b");

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;

l(:,j)=<>;

l=;

X(1,j)=det(l)/det(A);

end;

if j>=2

if j

l=A;

a=l;

x=a(1:N,1:(j-1),:);

y=a(1:N,(j+1):N,:);

l=;

l=;

X(1,j)=det(l)/det(A);

end;

if j==N

l=A;

l(:,j)=<>;

l=;

X(1,j)=det(l)/det(A);

end;

end;

end;

3/ Giải hệ bằng phương thức khử Gauss

function = gauss(A,b)

if nargin "phai nhap vao ma tran can phan tich");

end;

N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot

m = size(A,2)+1;

z = size(b,1);%kiem tra he so tu bởi

t = size(b,2);

c=b;

if t>z

for j=1:t % chuyen vi ma tran

for i=1:z

b(j,i)=c(i,j);

end;

end;

b=b(:,1:z);

end;

if z>t

b=c;

end;

z = size(b,1);

t = size(b,2);

%if z~=1

% if t==N error ("kich teo he so tu do khong phu hop");

% end;

%end;

%if t~=1 error ("kich co he so tu vì chưng khong phu hop.");

%end;

l=;

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 0 dau tien de hoan doi

k=circshift(k, <-(e-1), -(f-1)>);

p=;

l=;

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 quần thể 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

X= ("phuong trinh vo nghiem");

end;

if rA==rB

if rA

X= ("phuong trinh teo vo so nghiem");

end;

u=0;

if rA==(m-1) %giai nghiem he theo phuong phap quần thể Gauss

for s=1:(m-1)

i=m-s;

if i==(m-1);

X(i)=B(i,m)/B(i,i);

end;

if i~=(m-1)

for c=1:(s-1)

y=m-c;

u=u+X(y)*B(i,y);

X(i)=(B(i,m)-u)/B(i,i);

end;

end;

u=0;

end;

end;

end;

4/ tìm kiếm ma trận nghịch hòn đảo

function = nghichdao (A)% tim ma tran nghich dao theo ma tran phu hop

if nargin "phai nhap vao ma tran can phan tich");

end;

N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot

m = size(A,2);

d=0;

a=A;

i=1;

if N~=m

error ("ma tran khong vuong");

end;

l=A;

for h=1:N %bien doi bac thang

k=A(h:N,:);

k=k(:,h:N);

for j=1:(N-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;

d=d+(e-1)*(N-1)+(f-1)*(N-1);

k=circshift(k, <-(e-1), -(f-1)>);

p=;

A=;

for g=h:(N-1)

for i=(g+1):N

if A(g,g)~=0

c=A(i,g)/A(g,g);

for j=g:N

A(i,j)=A(i,j)-(c*A(g,j));

end;

end;

if A(g,g)==0

break;

end;

end;

if A(g,g)==0

break;

end;

end;

end;

E=A(2:N,1:N,:);

F=A(1,1:N);

F=((-1)^d)*F;

K=;

dinhthuccha=1;

for i=1:N %tinh dinh thuc

dinhthuccha=dinhthuccha*K(i,i);

end;

for o=1:N

l(o,:)=<>;

D=l;

for t=1:N

l(:,t)=<>;

N=N-1;

for h=1:N

k=l(h:N,:);

k=k(:,h:N);

for j=1:(N-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;

d=d+(e-1)*(N-1)+(f-1)*(N-1);

k=circshift(k, <-(e-1), -(f-1)>);

p=;

l=;

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:N

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;

end;

E=l(2:N,1:N,:);

F=l(1,1:N);

F=((-1)^d)*F;

G=;

dinhthuccon=1;

for i=1:N

dinhthuccon=dinhthuccon*G(i,i);

end;

B(o,t)=((-1)^(o+t))*dinhthuccon;

dinhthuccon=1;

l=D;

N=N+1;

end;

l=a;

end;%tim ma tran dinh thuc bé

C=B;

for j=1:N % chuyen vi ma tran

for i=1:N

B(i,j)=C(j,i);

end;

end;

B=B/dinhthuccha;

5/Phân tích LU của ma trận A

function = LU(A)%tam giac duoi,tam giac tren,dinh thuc

if nargin "phai nhap vao ma tran can phan tich");

end;

a=A;

N = size(A,1);%1 la dong,2 la cot

m = size(A,2);

if N~=m

A = ("khong la ma tran vuong");

end;

if N==m

l=zeros(N);

u=zeros(N);

for i=1:N

l(i,i)=1;

end;

for j=1:N

u(1,j)=A(1,j);

end;

if u(1,1)== 0

error("khong the phan tich duoc, nhap lai ma tran khac");

end;

for i=2:N

l(i,1)=A(i,1)/u(1,1);

end;

for i=2:N-1

for j=i:N

sum=0;

for k=1:i-1

sum=sum+l(i,k)*u(k,j);

end;

u(i,j)=A(i,j)-sum;

end;

if u(i,i)==0

error("khong the phan tich duoc, nhap lai ma tran khac");

end;

for j=i+1:N

sum=0;

for k=1:i-1

sum=sum+l(j,k)*u(k,i);

end;

l(j,i)=(A(j,i)-sum)/u(i,i);

end;

end;

sum=0;

for k=1:N-1

sum=sum+l(N,k)*u(k,N);

end;

u(N,N)=A(N,N)-sum;

dinhthuc=1;

for i=1:N

dinhthuc = dinhthuc*u(i,i)*l(i,i);

end;

end;

A=a;

6/ Dùng quá trình trực giao Gram-Schmidt đưa họ chủ quyền tuyến tính về chúng ta trực chuẩn chỉnh

function orthonormal_basis = Gram_Schmidt_process(A)

matrix_size = size(A);

m = matrix_size(1,1);

n = matrix_size(1,2);

if A == zeros(m,n)

error("There does not exist any type of basis for the zero vector space.");

elseif n == 1

orthonormal_basis = A(1:m,1)/norm(A(1:m,1));

else

flag = 0;

if is_orthonormal_set(A) == 1

orthonormal_basis = A;

flag = 1;

kết thúc

if flag == 0;

if rank(A) ~= n

A = basis_col(A);

kết thúc

matrix_size = size(A);

m = matrix_size(1,1);

n = matrix_size(1,2);

orthonormal_basis = A(1:m,1)/norm(A(1:m,1));

for i = 2:n

u = A(1:m,i);

v = zeros(m,1);

for j = 1:(i - 1)

v = v - dot(u,orthonormal_basis(1:m,j))*orthonormal_basis(1:m,j);

kết thúc

v_ = u + v;

orthonormal_basis(1:m,i) = v_/norm(v_);

end

over

end

7/ khám nghiệm họ vécto liệu có phải là họ trực giao

function result = is_orthogonal_set(A)

matrix_size = size(A);

m = matrix_size(1,1);

n = matrix_size(1,2);

tolerance = 10^-10;

if n == 1

result = 1;

else

orthogonal_counter = 0;

for i = 1:n

for j = 1:n

if i == j

else

if abs(dot(A(1:m,i),A(1:m,j)))

orthogonal_counter = orthogonal_counter + 1;

kết thúc

over

kết thúc

end

if orthogonal_counter == factorial(n)/factorial(n - 2);

result = 1;

else

result = 0;

over

end

8/ bài toán bình phương rất tiểu.

function c = fit(n, t, y)

% The least-squares approximating polynomial of degree n (n>=0).

% Coordinates of points khổng lồ be fitted are stored in the column vectors

% t & y. Coefficients of the approximating polynomial are stored in

% the vector c. Graphs of the data points và the least-squares

% approximating polynomial are also generated.

if ( n >= length(t))

error("Degree is too big")

end

v = fliplr(vander(t));

v = v(:,1:(n+1));

c = vy;

c = fliplr(c");

x = linspace(min(t),max(t));

w = polyval(c, x);

plot(t,y,"ro",x,w);

title(sprintf("The least-squares polynomial of degree n = %2.0f",n))

legend("data points","fitting polynomial")

Chạy thử chương trình trên bằng phương pháp nhập:

a/ t = linspace(0, pi/2, 10); t = t";

b/ y = sin(2*t);

c/ c = fit(3, t, y)

9/ Ứng dụng trong triết lý mật mã.

Đoạn code cần sử dụng mã hóa thông tin

function B = code(s, A)

% String s is coded using a nonsingular matrix A.

% A coded message is stored in the vector B.

p = length(s);

= size(A);

b = double(s);

r = rem(p,n);

if r ~= 0

b = ";

end

b = reshape(b,n,length(b)/n);

B = A*b;

B = B(:)";

Đoạn code giải mã thông tin

function s = dcode(B, A)

% Coded message, stored in the vector B, is

% decoded with the aid of the nonsingular matrix A

% and is stored in the string s.

= size(A);

p = length(B);

B = reshape(B,n,p/n);

d = AB;

s = char(d(:)");

Chạy thử lịch trình trên:

a/ s=’Toi hoc dai so tuyen tinh’

b/ A=pascal(4) tạo ra ma trận khả nghịch tùy ý( trong trường đúng theo này sử dụng mt pascal cấp cho 4)