Danh mục

Sử dụng MAPLE để đưa dạng toàn phương về dạng chính tắc

Số trang: 4      Loại file: pdf      Dung lượng: 213.32 KB      Lượt xem: 12      Lượt tải: 0    
Jamona

Phí tải xuống: miễn phí Tải xuống file đầy đủ (4 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Dạng toàn phương là một trong những khái niệm cơ bản của Toán cao cấp. Dạng toàn phương có nhiều ứng dụng trong kỹ thuật và kinh tế như nhận dạng các đường và mặt bậc hai, đưa ra các điều kiện đủ trong các bài toán tối ưu… Sử dụng phần mềm MAPLE giúp cho việc nghiên cứu các dạng toàn phương dễ dàng và hiệu quả hơn. Giả sử Vn là một không gian n chiều và S là một cơ sở của nó. Trong cơ sở S một dạng toàn phương là biểu thức có dạng Q( x, x)...
Nội dung trích xuất từ tài liệu:
Sử dụng MAPLE để đưa dạng toàn phương về dạng chính tắc Sử dụng MAPLE để đưa dạng toàn phương về dạng chính tắc PHAN ĐỨC CHÂU Đại học Kinh doanh và Công nghệ Hà Nội Dạng toàn phương là một trong những khái niệm cơ bản của Toán cao cấp. Dạng toàn phương có nhiều ứng dụng trong kỹ thuật và kinh tế như nhận dạng các đường và mặt bậc hai, đưa ra các điều kiện đủ trong các bài toán tối ưu… Sử dụng phần mềm MAPLE giúp cho việc nghiên cứu các dạng toàn phương dễ dàng và hiệu quả hơn. Giả sử Vn là một không gian n chiều và S là một cơ sở của nó. Trong cơ sở S một dạng toàn phương là biểu thức có dạng n Q( x, x) = ∑ aij xi x j = x' Ax i , i =1 trong đó ma trận A = ( aij ) là một ma trận đối xứng. Nếu trong Q(x,x) chỉ chứa các số hạng bình phương thì nói Q(x,x) có dạng chính tắc trong cơ sở S. Rút gọn một dạng toàn phương là tìm một cơ sở S’ trong đó Q có dạng chính tắc. Để đưa một dạng toàn về về dạng chính tắc thường dùng 3 cách: Phương pháp chéo hóa trực giao, phương pháp Jacobi và phương pháp Lagrange. Bài này nêu việc sử dụng phần mềm MAPLE để đưa Q về dạng chính tắc theo phương pháp chéo hóa trực giao. Gọi P là ma trận chuyển từ cơ sở trực chuẩn S sang cơ sở trực chuẩn S’: x = Py. Trong S’ dạng toàn phương trở thành (Py)’A(Py) = y’(P’AP)y. Do S và S’ là trực chuẩn nên P là một ma trận trực giao theo nghĩa P’P = E , E là ma trận đơn vị. Vậy P −1 = P' . Nếu P −1 AP là một ma trận đường chéo, thì Q chỉ chứa các số hạng bình phương hay Q có dạng chính tắc trong cơ sở S’. Khi đó nói P là ma trận làm chéo hóa trực giao ma trận A. Áp dụng quá trình trực giao hóa Gram-Schmidt để tìm ma trận P. Đoạn chương trình sau trong MAPLE sẽ thực hiện việc trên. Có hai thủ tục: a) cheohoatrucgiao để chéo hóa trực giao một ma trận đối xứng bất kỳ, ngoài ra đưa thêm một số thông tin về đa thức đặc trưng, giá trị riêng, vectơ riêng của ma trận đó, b) chinhtac để đưa dạng toàn phương về dạng chính tắc. Trong thủ tục này có một phần để nhận đúng ma trận A của dạng toàn phương, nếu Q đưa vào sai sẽ báo lỗi. > restart:with(linalg):with(LinearAlgebra): > cheohoatrucgiao:=proc(M::Matrix) local dt,n,lambda,vt,i,G,v,gt,u: global P,T: n:=ColumnDimension(M): dt:=CharacteristicPolynomial(M,lambda): print(`Da thuc dac trung: `,factor(dt)); (gt,vt):=Eigenvectors(M): print(`Gia tri rieng: `,gt,`Cot vecto rieng : `, simplify(vt)); for i from 1 to n do v[i]:=Vector[column](col(vt,i)): od: G:=GramSchmidt([seq(v[i],i=1..n)],normalized): P:=augment(seq(G[i],i=1..n)): P:=convert(P,Matrix): print(`Ma tran lam cheo hoa P =`,simplify(P)); T:=DiagonalMatrix(gt): print(`Ma tran cheo hoa P'AP = `,T); end proc: > chinhtac:=proc(tp) local n,A,i,j,Ct,Ctrg,tp1,k: n:=nops(indets(tp)): tp1:=tp: for i from 1 to n do tp1:=subs(x[i]=k*x[i],tp1) od: if is(tp1=(k^2)*tp)=false then ERROR(`Dang toan phuong cho sai`) fi: A:=Matrix(n,n): for i from 1 to n do A[i,i]:=coeff(tp,x[i]^2): for j from (i+1) to n do A[i,j]:=coeff(coeff(tp,x[i]),x[j])/2: A[j,i]:=A[i,j] : od : od: print(`Ma tran dang toan phuong A =`,A): cheohoatrucgiao(A); Ct:=add(T[i,i]*y[i]^2,i=1..n); print(`Dang chinh tac sau khi cheo hoa truc giao :`,Ct); Ctrg:=add(sign(evalf(T[i,i]))*z[i]^2,i=1..n); print(`Dang chinh tac rut gon :`,Ctrg); end proc: Sau khi đã viết đoạn trên, để đưa các dạng toàn phương bất kỳ về dạng chính tắc, trước hết cần nạp dạng toàn phương đang xét, tiếp theo gọi thủ tục chinhtac. Dưới đây nêu một số ví dụ: > `DANG TOAN PHUONG 2 AN`; tp:=5*x[1]^2-4*x[1]*x[2]+8*x[2]^2: `Vi du 1: Dang toan phuong `:=tp; chinhtac(tp); tp:=-x[1]^2-x[2]^2+6*x[1]*x[2]+3: `Vi du 2: Dang toan phuong `:=tp; chinhtac(tp): tp:=5*x[1]^2+5*x[2]^2+4*x[1]*x[2]-2*x[2]: `Vidu 3: Dang toan Phuong `:=tp; chinhtac(tp): DANG TOAN PHUONG 2 AN 2 2 Vi du 1: Dang toan phuong := 5 x1 - 4 x1 x2 + 8 x2 5 -2 Ma tran dang toan phuong A =,    -2 8   Da thuc dac trung: , (λ - 4) (λ - 9)  -1  2  4 ...

Tài liệu được xem nhiều: