Giải hệ phương trình trong Excel

Liên hệ QC

TranThanhPhong

Ngày mai trời lại sáng!
Thành viên danh dự
Tham gia
16/3/07
Bài viết
2,104
Được thích
19,170
Giới tính
Nam
Chào các bạn,

Mình xin giới thiệu với các bạn các giải hệ phương trình trong Excel bằng Solver và dùng các hàm ma trận.

Ví dụ:
Giải hệ phương trình sau:

hpt01.jpg


Cách 1.
Giải hệ phương trình dùng Solver

B1.
Xác định các biến, các hàm mục tiêu và lập mô hình trên bảng tính
  • Các ô trong mảng A26:C28 nhập các hệ số của các phương trình (mỗi phương trình nhập một dòng).
  • Các ô D26, D27, D28 lần lượt chứa giá trị khởi động của các biến x, y, z
  • Các ô F26, F27, F28 lần lượt chứa các giá trị ở vế phải của các phương trình (1), (2) (3).
  • Các ô E26, E27, E28 được tính bằng cách nhân các hệ số của phương trình với các giá trị khởi động của x, y, z (xem công thức minh họa trong hình 5.6).
hpt02.jpg

Lập mô hình bài toán trên bảng tính

Ghi chú:
Cách khác để tính nhanh Vế trái của các phương trình là dùng kết hợp hàm Sumproduct (array1, array2) và hàm Transpose (array). Cách làm như sau:
  • Chọn 3 ô E26 và nhập vào công thức sau:
=SUMPRODUCT(A26:C26,TRANSPOSE($D$26:$D$28))
  • Sao chép công thức cho 2 ô còn lại E27E28.
B2 . Vào thực đơn Tools à Solver. Nếu chưa thấy chức năng Solver trên thực đơn Tools thì ta cần bổsung chức năng này vào Excel. Các bước để bổ sung chức năng Solver cho Excel:
  • Vào thực đơn Tools à Add-Ins
hpt03.jpg

Hộp thoại Add-Ins chứa các chức năng mở rộng của Excel
  • Chọn Solver Add-in và chọn OK để chấp nhận.
Sau khi thực hiện lệnh Tools à Solver, hộp thoại Solver xuất hiện. Ta cần khai báo các thông số cho Solver như sau:
  • Đưa địa chỉ D26:D28 vào By Changing Cells
  • Đưa các ràng buộc vào Subject to the Constraints:
Nhấp nút Add và khai báo như hình sau
hpt04.jpg

Thêm ràng buộc

Nhấp nút OK để hoàn tất.
Nếu bài toán cần nhiều ràng buộc hơn thì thực hiện lại hai bước trên để nhập thêm các ràng buộc khác.

hpt05.jpg

Khai báo thông số cho Solver

B3.
Nhấp nút Solve chạy tìm lời giải. Hộp thông báo sau sẽ xuất hiện:

hpt06.jpg

Chọn kiểu báo cáo

B4.
Chọn Keep Solver Solution để lưu kết quả trên bảng tính. Chọn Restore Original Values để hủy kết quả Solver vừa tìm được và trả các biến về tình trạng ban đầu. Chọn Save Scenario để lưu kết quả vừa tìm được thành một tình huống để có xem lại sau này. Ngoài ra còn có 3 loại báo cáo là Answer, Sensitivity Limits.

B5.
Chọn OK để hoàn tất quá trình chạy Solver.

hpt07.jpg


Các nghiệm hệ phương trình là: x=4, y=-3 và z=9

TP.
 
Ghi chú về sử dụng Solver

Ghi chú về sử dụng Solver

Để sử dụng tốt Solver ta cần nắm vững các yêu cầu thông số cần phải khai báo cho Solver:

hpt08.jpg


Hộp thoại Solver
  • Set Target Cell: Nơi đây ta cần nhập vào địa chỉ của hàm mục tiêu.
  • Equal To: Hàm mục tiêu muốn đạt tới Max, Min hay Value of (bằng một giá trị mong muốn nào đó thì nhập giá trị vào.)
  • By Changing Cell: Nhập vào địa chỉ chứa các biến của bài toán cần giải.
  • Subject to the constraints: Nhập vào các ràng buộc của bài toán.
  • Cách làm của Solver là thay đổi giá trị các biến tại By Changing Cell đến lúc nào đó làm cho giá trị hàm mục tiêu tại Set Target Cellđạt một giá trị qui định tại Equal To (Max, Min hoặc Value of) và đồng thời phải thõa mãm tập các ràng buộc tại Subject to the constraints. Thiết lập các thuộc tính cho Solver ta nhấp chuột vào nút Options, hộp thoại Solver Options xuất hiện:

hpt09.jpg


Thiết lập thông số cho Solver: Chế độ mặc định

hpt10.jpg


TP.
 
Giải hệ phương trình bằng phương pháp ma trận

[FONT=&quot]Cách 2. Giải hệ phương trình bằng phương pháp ma trận
[/FONT] [FONT=&quot]
Hệ phương trình trên là tương đương với phương trình ma trận sau:

hpt11.jpg


[/FONT] [FONT=&quot]B1.[FONT=&quot] Xác định các biến, các hàm mục tiêu và lập mô hình trên bảng tính
[/FONT]
[/FONT]
  • [FONT=&quot]Các ô B75:D77 nhập vào hệ số của các phương trình (1), (2) và (3)[/FONT]
  • [FONT=&quot]Các ô F75, F76, F77 là nhãn các nghiệm x, y, z[/FONT]
  • [FONT=&quot]Các ô H75, H76, H77 là các con số ở vế phải của các phương trình.[/FONT]
[FONT=&quot]
hpt12.jpg
[/FONT]
[FONT=&quot]

[/FONT] Lập mô hình bài toán trên bảng tính

B2. Tìm ma trận nghịch đảo của ma trận hệ số A è Tìm A-1
  • Chọn vùng địa chỉ B80:D82
  • Nhập vào công thức =Minverse(B75:D77) để nghịch đảo ma trận
  • Nhấn tổ hợp phím Ctrl + Shift + Enter để thực hiện phép tính
[FONT=&quot]
hpt13.jpg


[/FONT] [FONT=&quot]Tính ma trận nghịch đảo

B3. Tìm nghiệm hệ phương trình
[/FONT]
  • [FONT=&quot]Chọn vùng địa chỉ B85:B87[/FONT]
  • [FONT=&quot]Nhập vào công thức =MMULT(B80:D82,H75:H77)[/FONT]
  • [FONT=&quot]Nhấn tổ hợp phím Ctrl + Shift + Enter để thực hiện phép tính[/FONT]
[FONT=&quot]
hpt14.jpg

Nghiệm hệ phương trình

Lưu ý:Việc tính toán trên dãy số liệu (array) có một số tính chất sau:
[/FONT]
  • Khi nhập, xóa, chỉnh sửa công thức phải thực hiện trên toàn bộ dãy, do vậy cần chọn cả dãy trước khi thực hiện nhập, xóa hay chỉnh sửa.
  • Nhấn phím F2 để vào chế độ chỉnh sửa
  • Nhấn tổ hợp phím Ctrl + Shift + Enter khi hoàn tất.
TP.
 
Ma trận và sử dụng hàm ma trận

Ma trận và sử dụng hàm ma trận

Ma trận được đặt trong cặp móc vuông:
hpt15.jpg

  • Kích thước ma trận được xác định theo số dòng vào số cột của ma trận, ma trận n x m đọc là n dòng và m cột.
  • Hai ma trận chỉ nhân được với nhau khi số dòng cột của ma trận đứng trước bằng với số dòng của ma trận đứng sau. Ví dụ ma trận có kích thước nxp thì có thể nhân với ma trận có kích thước p x m. Dưới đây là công thức nhân hai ma trận đặc biệt có kích thước 1 x nn x 1:
hpt16.jpg

  • Công thức tổng quát xác định giá trị của phần tử cij trong ma trận kết quả:
hpt17.jpg


Ví dụ: Nhân hai ma trận sau:

hpt18.jpg


Ví dụ về cách cách tìm các phần tử trong ma trận nghịch đảo từ ma trận

hpt19.jpg


Một số yêu cầu về tính định thức và tìm nghịch đảo ma trận trong Excel:
  • Phải là ma trận vuông, nếu không vuông sẽ báo lỗi #VALUE!.
  • Nếu có phần tử nào trong ma trận là rỗng hoặc là chữ thì báo lỗi #VALUE!.
Hàm tính định thức
Cú pháp: MDETERM(array)
Array: là địa chỉ ma trận cần tính định thức

hpt20.jpg


Hàm tìm ma trận nghịch đảo
Cú pháp: Minverse(array)
Array: là địa chỉ ma trận cần nghịch đảo

hpt21.jpg


Nhấn tổ hợp phím Ctrl+Shift+Enter sau khi nhập xong công thức.

Hàm nhân hai ma trận
Cú pháp: MMULT(array1,array2)
Array1, array2 là địa chỉ các ma trận cần nhân.

hpt22.jpg


Nhấn tổ hợp phím Ctrl+Shift+Enter sau khi nhập xong công thức.

TP.
 
Việc giải hệ phương trình theo phương pháp Gauxơ có thể viết Code được o anh? Em có mấy bài toán dạng này mà viết code hoài o được. Nhờ anh giúp đỡ thêm........Rất mong tin anh, thank a lot!
 
Việc giải hệ phương trình theo phương pháp Gauxơ có thể viết Code được o anh? Em có mấy bài toán dạng này mà viết code hoài o được. Nhờ anh giúp đỡ thêm........Rất mong tin anh, thank a lot!

Đã lâu không vào đề tài này nên không biết câu hỏi của bạn. Thật sự thì mình không có nghiên cứu về vấn đề này, nên không thể giúp bạn được. Mình xin giới thiệu bạn tài liệu tham khảo cách viết code cho các dạng bài toán này bằng C (xem file đính kèm có cả code mẫu).

Chúc bạn thành công,

Thanh Phong
 

File đính kèm

các anh cho e hỏi với ạ, e làm về giao thông có bài toán điều phối, trường hợp biến số thay đổi quá nhiều solve k xử lý được thì có cách nào để làm ko ạ :(
 
Web KT

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

Back
Top Bottom