Xin nhờ hỏi về cách tính ma trận nghịch đảo !

Liên hệ QC

HuuThanh

Thành viên chính thức
Tham gia
4/1/07
Bài viết
70
Được thích
109
Mình cần phải tính ma trận nghịch đảo của một ma trận nhưng hmình không hiểu tại sao kh tính chươg trình báo lỗi #NUM. Mình không hiểu cách chỉnh sửa bằng cách nào. Mong các bạn chỉ giúp !!! Xin trân thành cảm ơn !!!
 

File đính kèm

Mình cần phải tính ma trận nghịch đảo của một ma trận nhưng hmình không hiểu tại sao kh tính chươg trình báo lỗi #NUM. Mình không hiểu cách chỉnh sửa bằng cách nào. Mong các bạn chỉ giúp !!! Xin trân thành cảm ơn !!!

Trong phần help của excel nói rằng:

Mã:
[B]MINVERSE(array)[/B]
Array is a numeric array with an equal number of rows and columns.
[B][COLOR="Blue"](Mảng phải là mảng kiểu số với số dòng và số cột bằng nhau.)[/COLOR][/B]

[B]Remarks[/B]
•	Array can be given as a cell range, such as A1:C3; as an array constant, such as {1,2,3;4,5,6;7,8,9}; or as a name for either of these.
•	If any cells in array are empty or contain text, MINVERSE returns the #VALUE! error value. 
[B][COLOR="Blue"](Nếu bất kỳ ô nào trong mảng mà rỗng hoặc chứa ký tự kiểu chữ (Text), hàm MINVERSE báo lỗi và trả về giá trị #VALUE!)[/COLOR][/B]
•	MINVERSE also returns the #VALUE! error value if array does not have an equal number of rows and columns. 
[B][COLOR="Blue"](Hàm MINVERSE cũng sẽ báo lỗi và trả về giá trị #VALUE! nếu mảng không thòa mãn điều kiện số dòng và số cột bằng nhau)[/COLOR][/B]
•	Formulas that return arrays must be entered as array formulas. 
•	Inverse matrices, like determinants, are generally used for solving systems of mathematical equations involving several variables. The product of a matrix and its inverse is the identity matrix— the square array in which the diagonal values equal 1, and all other values equal 0. 
•	As an example of how a two-row, two-column matrix is calculated, suppose that the range A1:B2 contains the letters a, b, c, and d that represent any four numbers. The following table shows the inverse of the matrix A1:B2.
[B][COLOR="Blue"](Một ví dụ về cách tính ma trận nghịch đảo cho mảng có hai hàng và hai cột, 
Giả sử vùng A1:B2 chứa các ký tự a,b,c,d đại diện cho 4 số. 
Bản bên dưới cho biết ma trận nghịch đảo của ma trận A1:B2)
[/COLOR][/B][B]	Column A	Column B
Row 1	d/(a*d-b*c)	b/(b*c-a*d)
Row 2	c/(b*c-a*d)	a/(a*d-b*c)
[/B]•	MINVERSE is calculated with an accuracy of approximately 16 digits, which may lead to a small numeric error when the cancellation is not complete. 
•	Some square matrices cannot be inverted and will return the #NUM! error value with MINVERSE. The determinant for a noninvertable matrix is 0. 
[B][COLOR="Blue"](Một số ma trận vuông không thể nghịch đảo được và hàm MINVERSE sẽ báo lỗi và trả về giá trị #NUM!. 
Phần tử quyết định một mảng không thể nghịch đảo là giá trị 0)
[/COLOR][/B]

Trong bài của bạn, mình dùng MINVERSE cho 15 hàng và 15 cột thì ok. nhưng qua tới hàng/cột thứ 16,17,18 thì nó báo lỗi #NUM!.

Xét thấy theo công thức nghịch đảo như ví dụ mảng có hai hàng và hai cột ta nhận thấy nếu mảng có nhiều giá trị 0 quá thì xác suất không thể nghịch đảo được càng cao; có nghĩa là giá trị đem chia nghịch đảo bằng 0 thì không thể chia được (nói cách khác là không thể nghịch đảo được).

Vài lời giải thích như vậy với bạn, có thể chưa thỏa mãn với bạn. Chúng ta có thể tham khảo và thào luận tiếp.
 
Lần chỉnh sửa cuối:
Chào bạn ca_dafi !!!
Mình cảm ơn bạn về những thông tin bạn cung cấp cho mình. Mình cần tính ma trận nghịch đảo của những ma trận có kích thước lớn. Do mình đang làm bài toán phần tử hữu hạn (ma trận cần tính toán trong bài toán này có cấp rất cao ). Mình đã test với ma trận có kích thước 18*18 với những giá trị khác thì excel tính rất tốt. Mình không hiểu số liệu trong ma trận của mình có vấn đề gì mà khi tính toán chương trình lại báo lỗi như vậy. Theo mình có lẽ không phải trong ma trận có nhiều số 0 sẽ gây khó khăn trong việc tính toán ma trận nghịch đảo. Mình nghĩ rằng có thể khi tính toán ma trận này thì giá trị min or max vượt quá giới hạn tính toán của Excel (nhưng điều này mình không chắc chắn lắm). Rất mong các bạn hướng dẫn giúp mình. Xin chân thành cảm ơn !!!
 
Mình đính chính đoạn này
Mã:
nếu mảng có [B][COLOR="Blue"]nhiều giá trị 0[/COLOR][/B] quá thì xác suất không thể nghịch đảo được càng cao
như sau:

Mã:
nếu mảng có [B][COLOR="Blue"]nhiều giá trị giống nhau[/COLOR][/B] quá thì xác suất không thể nghịch đảo được càng cao

Bạn thử với ma trận 18 x 18 và tất cả các phần tử trong mảng đều có giá trị giống nhau thử xem (mình dùng phép thử để suy luận nhé).
Mã:
Ví dụ với giá trị 1 trước; sau đó thử với giá trị 3450 hoặc số bất kỳ.
Lưu ý: đây chỉ là một trường hợp mảng không thể nghịch đảo được.
Hàm MINVERSE cũng đều trả về giá trị #NUM!.
Có nghĩa là sao ??
Giá trị nghịch đảo của một phần tử nghịch đảo là một phép chia; cho nên nếu phép chia có mẫu số = 0 thì không thể chia được.

Thân.


Vấn đề còn lại là làm sao xác định được mảng này là mảng không thể nghịch đảo
 
Mình cần tính ma trận nghịch đảo của những ma trận có kích thước lớn. Do mình đang làm bài toán phần tử hữu hạn (ma trận cần tính toán trong bài toán này có cấp rất cao ). Mình đã test với ma trận có kích thước 18*18 với những giá trị khác thì excel tính rất tốt. Mình không hiểu số liệu trong ma trận của mình có vấn đề gì mà khi tính toán chương trình lại báo lỗi như vậy. Theo mình có lẽ không phải trong ma trận có nhiều số 0 sẽ gây khó khăn trong việc tính toán ma trận nghịch đảo. Mình nghĩ rằng có thể khi tính toán ma trận này thì giá trị min or max vượt quá giới hạn tính toán của Excel (nhưng điều này mình không chắc chắn lắm).

Mình test thử với ma trận 40 x 40 và giá trị lên tới 16 con số (hàng triệu tỷ) excel vẫn tính ngon lành. Nhưng với ma trận 2 x 2 và các số chỉ là 1 thì excel cũng báo lỗi #NUM! . Bạn xem file đính kèm.
==> suy ra giả thuyết: giá trị min or max vượt quá giới hạn tính toán của Excel không còn hợp lý nữa.
 

File đính kèm

Đúng rồi bạn CA_DAFI ạ !!!

Mình cảm ơn bạn nhiều.
Mình đã kiểm tra lại, đúng như bạn nói nếu trong các ma trận cấp cao có quá nhiều số không thì rất khó nghịch đảo ma trận. Vì khi đó định thức của ma trận đó sẽ rất nhỏ (vượt quá giới hạn tính toán trong excel là -1*10^307 đến 1*10^307). Khi đó chương trình sẽ coi giá trị đó bằng 0. Mà để tính được ma trận nghịch đảo thì ta phải chia cho định thức do đó.... Do gợi ý của bạn ở bài #2 mà minh đã làm một bài toán kiểm tra lại và thấy nó đúng như ý của bạn. Xin chân thành cảm ơn bạn !!!
Bạn thử xem thêm file đinh kèm nhé, chú ý hai ô AR1 và AU4 khi mình giảm bới ô AR1 thì ô AU4 sẽ trở về 0. Đúng là không chia được thật !!!
 

File đính kèm

Mình test thử với ma trận 40 x 40 và giá trị lên tới 16 con số (hàng triệu tỷ) excel vẫn tính ngon lành. Nhưng với ma trận 2 x 2 và các số chỉ là 1 thì excel cũng báo lỗi #NUM! . Bạn xem file đính kèm.
==> suy ra giả thuyết: giá trị min or max vượt quá giới hạn tính toán của Excel không còn hợp lý nữa.
Trong ma trận thứ 2 định thức của ma trận bằng 0 nên không thể tính được ma trận nghịch đảo. Hiiiii, Mình rất cảm ơn bạn, cảm ơn GPE rất nhiều. Nếu không có hướng dẫn của bạn thì mình mù tịt, mình đọc tiếng anh không được tốt lắm. Thank a lot !!!
 
Web KT

Bài viết mới nhất

Back
Top Bottom