Code matlab đại số tuyến tính

1/ MATLAB chất nhận được ta nhập số liệu tự mẫu lệnh. khi nhập ma trận từ bỏ bàn phím ta đề nghị tuân thủ theo đúng các cơ chế sau :

• phân cách những bộ phận của ma trận bằng dấu “,” tuyệt vệt trống

• dùng vệt “;” để chấm dứt một hàng

• bao những bộ phận của ma trận bởi cặp vết ngoặc vuông < >

lấy ví dụ như : >> A = < 1 2 3 > hiệu quả là A = 1 2 3 >> A = <1;2;3>

tác dụng là A =

1

2 3

2/ Tân oán tử ‘ dùng để đưa vị một ma trận thực cùng gửi vị phối hợp một ma trận

phức. Nếu chỉ ước ao chuyển vị ma trận phức, ta dùng thêm tân oán tử “.” tức thị đề nghị

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

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

X = C"

Y = C.’

3/ Chỉ số: Phần tử làm việc hàng i cột j của ma trận m×n có kí hiệu là A(i, j). Tuy

nhiên ta cũng có thể tđam mê chiếu cho tới phần tử của mảng nhờ vào một chỉ số, ví dụ A(k) cùng với k

= i + (j - 1)m. Cách này hay dùng để làm tmê mẩn chiếu vec tơ sản phẩm hay cột. Trong trường

hợp ma trận đầy đủ thì nó được xem là ma trận một cột lâu năm tạo nên tự những cột của ma trận

lúc đầu. do vậy viết A(5) tức là tmê mẩn chiếu thành phần A(2, 2).

Để xác định kích cỡ của một ma trận ta dùng lệnh length(trả về size

phệ nhất) hay 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ử “:” : Tân oán tử “:” là một trong những toán thù tử đặc biệt quan trọng của MATLAB. Nó xuất

hiện nghỉ ngơi các dạng khác nhau. Ví dụ: Lệnh :

1:10

sinh sản một vec tơ hàng chứa 10 số ngulặng từ là một mang đến 10.

Lệnh: 100: -7: 50

sinh sản một hàng số từ 100 cho 51, sút 7 mỗi lần.

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

chiếu mang lại k phần tửtrước tiên của cột j. Bên cạnh đó tân oán tử “:” tđê mê chiếu tới tất cả các

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

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

tạo nên ma trận B từ ma trận A bằng phương pháp thay đổi trang bị từ những cột tự <1 2 3> thành <1 3 2>

Tạo ma trận bằng hàm có sẵn: MATLAB cung cấp một vài hàm để tạo những

ma trận cơ bản:

zeros tạo nên ma trận mà các phần tửđa số là zeros

z = zeros(2, 4)

ones tạo ra ma trận cơ mà những phần tửgần như là một

x = ones(2, 3)

y = 5*ones(2, 2)

rand tạo nên ma trận nhưng các bộ phận hốt nhiên phân bốđông đảo

d = rand(4, 4)

randn tạo ra ma trận nhưng mà các phần tử thiên nhiên phân bố trực giao

e = randn(3, 3)

magic(n) tạo ra ma trận cấp cho n tất cả các số nguyên ổn từ là một đến n2 cùng với tổng các sản phẩm

bởi tổng những cột (n cần to hơn hay bằng 3).

pascal(n) tạo nên ma trận xác định dương cấp n mà lại các thành phần mang tự tam giác Pascal.

Lệnh :

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

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

Lệnh:

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

- eye(m, n) tạo thành ma trận đơn vị chức năng không ngừng mở rộng

Lệnh:

eye(3, 4) chế tác ma trận đơn vị gồm 3 hàng 4 cột

Ta hoàn toàn có thể đính thêm ghép(concatenation) các ma trận 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 cùng cột : Ta rất có thể xoá hàng với cột tự ma trận bởi cần sử dụng dấu <>. Để

xoá cột thứ hai 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 bộ phận khớp ứng cùng nhau

Chia : X = A/B dịp kia X*B = A

: X = AB thời gian đó A*X = B

: X=A./B chia các bộ phận tương ứng với nhau

Luỹ thừa : X = A^2

: X = A.^2

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

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

Số chiều của mình vector A : n=ndims(A)

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

Phần 2.

Yêu cầu: Sinch viên ko được sử dụng những hàm sẵn bao gồm vào matlab để viết chương trình.

Các vấn đề.

1/ Dùng các phnghiền biến đổi sơ cung cấp gửi ma trận về dạng bậc thang với search hạng của ma trận A tùy ý.

Yêu cầu: Input: cho phép nhập vào trong 1 ma trận tùy ý. Output: Ma trận cầu thang với r(A).

2/ Nhân hai ma trận cùng nhau.

Yêu cầu: Input: được cho phép nhập lệ hai ma trận A và B. Chương thơm trình nên khám nghiệm phxay nhân có tiến hành được tuyệt không? Output: Ma trận tích.

3/ Tính Am, cùng với m là số tự nhiên đến trước.

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

4/ Tính định thức của ma trận bởi biến hóa sơ cấp cho.

Yêu cầu: Input: chất nhận được 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 phương pháp 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 một ma trận vuông tùy ý. Output: det(A).

6/ Tìm hạng của ma trận bằng những sử dụng các định thức nhỏ (cách thức định thức bao quanh).

7/ Tìm ma trận nghịch hòn đảo của ma trận vuông A bởi đổi khác sơ cấp so với hàng đến ma trận

*
.

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

8/ Tìm ma trận nghịch hòn đảo bằng công thức

*
.

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

9/ Phân tích LU của ma trận A. Phân tích PA=LU.

Yêu cầu: Input: có thể chấp nhận được nhập vào một ma trận vuông cấp n. Cmùi hương trình kiểm tra A hoàn toàn có thể đối chiếu thành A = LU hay không. Nếu không thì tìm kiếm ma trận P với phân tích PA= LU. Output: Ma trận nghịch đảo: Phường., L, U.

11/ Kiểm tra tính xác định dương của ma trận vuông A. (định nghĩa: ma trận vuông A hotline là xác định dương, trường hợp những định thức nhỏ thiết yếu đầy đủ dương).

10/ Phân tích Cholesky:

*
, trong số ấy A là ma trận đối xứng, xác minh dương.

11/ Giải hệ pmùi hương trình bằng phxay đổi khác Gauss.

Yêu cầu: Input: có thể chấp nhận được nhập vào một trong những 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 lớn.

Ma trận A và b rất có thể được hiểu trường đoản cú tệp tin *.txt

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

*
bởi bí quyết
*
,

trong những số đó

*
.

13/ Tìm tọa độ của một vécto trong một đại lý mang đến trước.

Yêu cầu: Input: cho một véckhổng lồ với một cơ sở E. Output: tọa độ của vécto trong đại lý E.


You watching:
Code matlab đại số tuyến tính


See more: Tặng Mã Code Afk Arena Codes, Afk Arena Redemption Code List


See more: Code Ffmpeg Lách Âm Thanh Và Hình Ảnh Youtube Năm 2020, Chia Sẻ Cho Các Bác Code Lách Âm Thanh Youtube


14/ Tìm ma trận gửi các đại lý trường đoản cú E thanh lịch F.

Yêu cầu: Input: mang lại nhì các đại lý E với F. Output: ma trận gửi cửa hàng Phường.

15/ Tìm hạng của họ vécto.

Yêu cầu: Input: cho 1 chúng ta vécto. Output: hạng của họ vécto lớn này cùng những vécto độc lập tuyến tính buổi tối nhiều của mình

16/ Kiểm tra tính độc lập tuyến tính, phụ thuộc con đường tính của họ vécto lớn. Kiểm tra vécto x bao gồm là tổng hợp con đường tính của mình vécto M giỏi không?

17/ Tìm cửa hàng, số chiều của không gian bé hình thành vày chúng ta véckhổng lồ M.

Yêu cầu: Input: chất nhận được nhập vào một trong những họ véckhổng lồ. Output: Số chiều cùng cửa hàng của không khí bé hiện ra do M.

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

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

19/ Tìm số chiều cùng đại lý của không khí giao

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

20/ Dùng quá trình trực giao hóa Gram-Schmidt, tra cứu chúng ta trực giao, chúng ta trực chuẩn chỉnh của mình véckhổng lồ hòa bình tuyến tính.

Yêu cầu: Input: chất nhận được nhập vào một trong những họ vécto lớn gồm m vécto độc lập tuyến tính (hoặc chúng ta vécto lớn bất kỳ, công tác đề nghị đánh giá tính tự do tuyến đường tính của mình vécto). Output: Họ tất cả m véckhổng lồ trực giao, có thể trực chuẩn chỉnh.

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

Yêu cầu: Input: chất nhận được nhtràn vào ma trận vuông A tùy ý. Chương trình khám nghiệm A có so với QR hay là không (điều kiện: những cột của A là chúng ta chủ quyền tuyến đường tính). Output: Ma trận Q với ma trận R.

22/ Tìm hình chiếu vuông góc của một véckhổng lồ cho trước xuống không gian con. Tìm khoảng cách tự véclớn mang lại không khí bé.

Yêu cầu: Input: được cho phép nhập vào một họ vécto lớn M với véckhổng lồ x. Output: hình chiếu vuông góc của veckhổng lồ x xuống không gian bé F được hình thành vị M và khoảng cách từ bỏ x cho F.

23/ Cho ánh xạ tuyến tính f biết ma trận của f vào cơ sở E là A. Tìm hình họa của một véckhổng lồ cho trước.

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

25/ Cho ánh xạ tuyến đường tính f. Tìm ma trận của ánh xạ con đường tính vào cửa hàng E cho trước.

26/ Cho ma trận vuông A. Tìm trị riêng, véclớn riêng rẽ của ma trận A.

27/ Cho ma trận vuông A. Kiểm tra tính chéo cánh hóa của A. Nếu được, kiếm tìm ma trận Phường và 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 vuông A chéo cánh hóa được. Tính Am.

30/ Cho dạng toàn phương . Kiểm tra dạng toàn phương thơm xác minh dương hay không.

31/ Cho dạng toàn pmùi hương . Đưa dạng toàn phương về thiết yếu tắc bởi chuyển đổi trực giao.

32/ Cho dạng toàn phương . Phân nhiều loại dạng toàn phương.

33/ Ứng dụng ma trận nghịch đảo vào định hướng mật mã

34/ Ứng dụng đại số đường tính vào bài bác toán xấp xĩ hàm.

35/ Ứng dụng đại số tuyến đường tính vào lý thuyết hình ảnh.

Phần 3. Các công tác tìm hiểu thêm. Các lịch trình này được download từ bỏ mạng hoặc phần lớn do sinh viên viết đề nghị chưa chắc chắn rằng về tối ưu.

1/ sử dụng thay đổi sơ cấp cho đưa ma trận về dạng bậc 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 đổi sơ cung cấp mang 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 "pnhị 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 ="*pnhì 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 dinch thuc ma tran khong nuốm doi

F=l(1,1:m);

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

B=;%ma tran B cố kỉnh the boi B ma xet su nỗ lực doi dau hang 1

hang=0;

for s=1:N %tyên ổn 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 phương thức Cramer

function = cramer(A,b)

if nargin "pnhì 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 pnhị 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 teo he so tu vì chưng khong phu hop nhap lai b");

end;

if n~=N error ("kich teo 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 vị khong phu hop nhap lai b");

end;

if M~=N error ("kich co he so tu bởi 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ởi cách thức khử Gauss

function = gauss(A,b)

if nargin "pnhị 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 vì

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 co he so tu vị khong phu hop");

% end;

%end;

%if t~=1 error ("kich teo he so tu do 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 khu vực 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;%tyên ổn 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;% tlặng hang ma tran mo rong

if rA

X= ("phuong trinch vo nghiem");

end;

if rA==rB

if rA

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

end;

u=0;

if rA==(m-1) %giai nghiem he theo phuong phap khu 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 ma trận nghịch hòn đảo

function = nghichdao (A)% tlặng ma tran nghich dao theo ma tran phu hop

if nargin "pnhì 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 %tinch dinch 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;%tyên ma tran dinc thuc con

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,dinch thuc

if nargin "pnhị 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 quy trình trực giao Gram-Schmidt chuyển chúng ta hòa bình con đường tính về chúng ta trực chuẩn chỉnh

function orthonormal_basis = Gram_Schmidt_process(A)

matrix_kích thước = 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;

over

if flag == 0;

if rank(A) ~= n

A = basis_col(A);

end

matrix_form 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_);

over

end

kết thúc

7/ Kiểm tra chúng ta véckhổng lồ có phải là chúng ta 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;

end

end

over

kết thúc

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

result = 1;

else

result = 0;

over

kết thúc

8/ Bài toán thù bình phương rất tè.

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 và y. Coefficients of the approximating polynomial are stored in

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

% approximating polynomial are also generated.

if ( n >= length(t))

error("Degree is too big")

kết thúc

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ử lịch trình trên bằng cách 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 vào lý thuyết mật mã.

Đoạn code sử dụng mã hóa lên tiếng

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 = ";

over

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

B = A*b;

B = B(:)";

Đoạn code lời giải ban bố

function s = dcode(B, A)

% Coded message, stored in the vector B, is

% decoded with the aid of the nonsingular matrix A

% và is stored in the string s.

= size(A);

p = length(B);

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

d = AB;

s = char(d(:)");

Chạy test công tác trên:

a/ s=’Toi hoc dẻo so tuyen tinh’

b/ A=pascal(4) tạo thành ma trận khả nghịch tùy ý( vào ngôi trường đúng theo này dùng mt pascal cấp cho 4)


Chuyên mục:
giftcode