Excel và cách giải phương trình

Liên hệ QC

khuenguyen.tran

Thành viên mới
Tham gia
10/6/06
Bài viết
3
Được thích
13
Excel và cách giải hệ phương trình tuyến tính

Hệ phương trình đơn giản​

1/ Hệ Phương trình
a1x + b1y + c1 = 0
a2x + b2y + c2 = 0

Thí dụ :

2x + 3y -3 = 0
3x + 2y -5 = 0

Ta mở Excel ra, và bắt đầu như sau :
- Tại A4, nhập x, A5 nhập y. Vào Insert / Name/ Create, chọn vùng A4 : B5, đánh dấu vào hộp kiểm Left Column, như vậy là ta đã đặt tên cho ô B4 là x, và ô B5 là y (2 biến của hệ phương trình). Ta nhập tạm các nghiệm x, y này là 0 trong khi chờ Excel giải quyết

- Tại C4, nhập :
=2x + 3y -3 = 0 (= 2*B4 + 3*B5 - 3 = 0, vì ta đã đặt tên cho B4 là x và B5 là y), C4 sẽ cho kết quả là -3

- Tại C5 nhập : = 3x + 2y - 5 = 0, C5 sẽ cho kết quả là -5

- Thay vì tính tổng giá trị tuyệt đối của 2 hàm này, ta tính tổng bình phương của chúng. Tại C6, nhập công thức =SUMSQ(C4:C5).

- Chọn D6 làm ô Target, nhập công thức sau : = C6 - C6 để cho kết quả là 0, vì tổng của hệ phương trình trên bằng 0. Ta sẽ dùng Solver để giải hệ phương trình này. Gọi Tools / Solver, ta chọn Option Equal to Value bằng 0

- Tại By Changing Cells, chọn B4 : B5. Xong, ta nhấp nút Solve để giải hệ phương trình này. Các bạn sẽ thấy nghiệm của hệ phương trình chính là giá trị trong Cell B4 (x) và B5 (y)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Hệ phương trình (tt)

Hệ phương trình tuyến tính phức tạp

Chúng ta sẽ cải tiến từ bảng tính trên để có thể giải hệ phương trình tuyến tính phức tạp hơn.

Giả sử ta có hệ phương trình sau :

a1x + b1y + c1z + d1 = 0
a2x + b2y + c2z + d2 = 0
a3x + b3y + c3z + d3 = 0

Tương tự bài trên, chúng ta sẽ bắt đầu từ A4 : A6, nhập x, y, z, và vào Insert / Name/ Create, chọn vùng A4 : B6, đánh dấu vào hộp kiểm Left Column, như vậy là ta đã đặt tên cho ô B4 là x, và ô B5 là y, B6 là z (3 biến của hệ phương trình). Ta nhập tạm các nghiệm x, y, z này là 0 trong khi chờ Excel giải quyết

Tại C4 : C6, ta nhập a1, a2, a3 (các hệ số a của hệ phương trình) và chọn C4 : D6, cũng vào Insert / Name như trên để đặt tên cho Cell D4 là a1, D5 là a2, D6 là a3.

Tương tư cho các vùng E4 : F6, G4 : H6, I6 : J6

Nhập các công thức sau dành cho 3 phương trình cho hệ trên :
K4 = a_1*x + b_1*y + c_1*z + d_1 = 0
K5 = a_2*x + b_2*y + c_2*z + d_2 = 0
K4 = a_3*x + b_3*y + c_3*z + d_3 = 0

Bây giờ, ta lần lượt cho các giá trị a1, a2, a3, b1, b2, b3, c1, c2, c3, d1, d2, d3 vào các Cell tương ứng, còn x, y, z ta cho giá trị 0

Ta cũng nhập công thức tính tổng bình phương cho các hàm này tại K7
K7 = SUMSQ(K4:K6)

- Dùng ô K8 làm ô đích (Target), nhập công thức tại K8 = K7 - K7, mở Tools / Solver ra để giải hệ phương trình. Ta cũng sử dụng Option Equal to Value bằng 0, cài đặt By Changing Cells sang B4 : B6 (các Cell đặt giá trị biến x, y, z). Nhấp Solve để giải hệ phương trình

- Lưu bảng tính
 
Goal Seak và giải phương trình bậc hai

Giải phương trình bậc hai với Goal Seak​

Chúng ta sẽ tìm nghiệm của một phương trình bậc hai đơn giản bằng Goal Seak. TD : 2x^2 - 5x - 12 = 0

- Mở bảng tính, nhập vào A3 : A4 các giá trị giả định cho 2 nghiệm của phương trình là 1 và 2
- Tại B3 và B4 nhập công thức như sau :
B3 = 2*A3^2 - 5*A3 -12
B4 = 2*A4^2 - 5*A4 -12

- Trên thanh Menu, chọn Tools / Goal Seak. Tại hộp thoại Goal Seak, Set Cell ta nhập $B$3, To Value ta nhập số 0, By Changing Cell, nhấp A3. Xong nhấp OK

- Goal Seak sẽ làm thay đổi giá trị tại A3 sang -1.5, và giá trị trong B3 sẽ là -3.342E - 0.5, giá trị này rất gần với giá trị 0, nên -1.5 được xem như một nghiệm số của phương trình

- Tương tự với A4 và B4, ta lẫp lại các bước trên, và ta sẽ có thêm một nghiệm số nữa là 4

Để giải bài toán nghiệm của phương trình bậc hai bằng Goal Seak hay Solver, bạn phải cung cấp một giá trị dự báo ban đầu. Nếu phương trình có nghiệm thực, Excel sẽ tìm được và bạn không gặp một sự cố nào. Bạn có thể gặp 2 nghiệm cùng hội tụ về một điểm (giống nhau), và bạn phải thay đổi giá trị dự báo trên A3, A4 như thế nào để có thể chọn ra các nghiệm còn lại
 
Goal Seak và giải phương trình bậc 3

Ở bài trên, chúng ta đã thử làm quen với Goal Seak trong giải phương trình bậc 2, bây giờ, chúng ta sang phần tiếp theo là giải phương trình bậc ba...cho đến bậc n !!!

TD : Ta có phương trình : 2x^3 + x^2 - 246x + 360 = 0

Thiết lập bảng tính :

a. Từ Cell A4 : A7, lần lượt nhập chữ a, b, c, d, để dùng làm nhãn và tên cho các giá trị a, b, c, d sẽ được nhập vào B4 : B7. Chọn A4 : B7, vào Insert / Name / Create, Click vào hộp kiểm Left Column.

b. Tại D4 : D6 dùng để nhập các nghiệm số dự báo trước, ta có thể nhập thử các nghiệm sau : 100, 2, và -20

c. Tại E4 : Ê nhập công thức tính giá trị của phương trình trên. Vì a, b, c, d đã được chọn làm tên cho các ô B4 : B7, nên :
E4 = a*D4^3 + b*D4^2 + c_D4 + d
E5 = a*D5^3 + b*D5^2 + c_D5 + d
E6 = a*D6^3 + b*D6^2 + c_D6 + d

d. Đặt con trỏ tại E4 và gọi hộp thoại Goal Seak, Set Cell ta nhập $E$4, To Value ta nhập số 0, By Changing Cell, nhấp $D$4. Xong nhấp OK.

e. Tiếp tục làm như trên tại E5 và E6

f. Các ô D4 : D6 bây giờ sẽ có 3 nghiệm là 10, 1.5, và -12

g. Nếu bạn giải phương trình với các bậc cao hơn, chúng ta cũng làm tương tự trên, thay vì chỉ có a, b, c, d, chúng ta sẽ thêm các hệ số phương trình vào cột A, nghiệm số dự báo vào cột D,và gọi Goal Seak từ cột E
 
So sánh Goal Seak và Solver

Trên đây, chúng ta đã tìm hiểu cách giải phương trình bậc hai và bậc ba bằng Goal Seak. Thực ra, giải bằng Solver cũng tương tự như trên thôi. Xong, Solver khác với Goal Seak như thế nào ?

- Lúc bạn sử dụng Solver một lần trên bảng tính, nó vẫn giữ lại các cài đặt lúc được dùng lần kế tiếp trên bảng tính đó
- Nó có thể lưu lại một hay nhiều mô hình. Bạn sẽ không cần gọi lại chủ điểm này
- Trong khi Goal Seak cho phép bạn thay đổi một ô thì Solver cho phép bạn thay đổi nhiều ô
- Solver cho phép sự co giãn. Bạn có thể yêu cầu thay đổi một ô luôn luôn có giá trị dương
- Solver có thể dùng để tìm giá trị các biến nhằm cung cấp cho công thức một giá trị cực đại hay cực tiểu cũng như một tập hợp giá trị số
- Bạn có thể kiểm soát cách mà Solver tìm một nghiệm. TD bạncó thể cài đặt độ chính xác theo yêu cầu
 
Một số hàm về thống kê trong Excel

Dạo này tôi không được rảnh lắm, lại sắp phải đi công tác Sài Gòn, Bình Thuận.
Tôi sẽ giới thiệu với các bạn một số hàm về thống kê, loại hàm nảy rất hay sử dụng trong các trường kỹ thuật.

Nếu bạn thích, bạn có thể dùng VBA để lập tương tự.

Bạn nào ủng hộ thì cho ý kiến nhé!
 
PhanTuHuong đã viết:
Dạo này tôi không được rảnh lắm, lại sắp phải đi công tác Sài Gòn, Bình Thuận.
Tôi sẽ giới thiệu với các bạn một số hàm về thống kê, loại hàm nảy rất hay sử dụng trong các trường kỹ thuật.

Nếu bạn thích, bạn có thể dùng VBA để lập tương tự.

Bạn nào ủng hộ thì cho ý kiến nhé!
Tôi cũng rất quan tâm về các hàm này, nhưng không có nhiều thời gian. Vậy khi nào bạn rãnh, bạn share cho chúng tôi biết với. Cám ơn.
 
Dùng Solver để giải hệ phương trình không tuyến tính

TD : x^2 + 2y^2 - 22 = 0
-2X^2 + xy - 3y + 11 = 0

Tương tự như các bài toán trên, ta gõ chữ x vào A3 và y A4, rồi nhập giá trị dự báo bắt đầu bằng số 0 vào 2 ô B3 và B4. Chọn vùng A3 : B4, vào Menu Insert / Name / Create như các bài trên để đặt tên cho ô B3 là x và B4 là y. Tại D3, ta nhập công thức :
- D3 = B3^2 + 2*B4^2 - 22 (= x^2 + 2y^2 - 22)
- D4 = -2*B3^2 + B3*B4 - 3*B4 + 11 (= -2x^2 + xy - 3y +11)
- D5 = SUMSQ(D3:D4)

Bây giờ, ta lệnh cho Solver giải bài toán này. Chọn ô D5 làm ô đích, ta set cho giá trị = 0 (Equal to - Value = 0 )

Tại By Changing Cells, ta nhập $B$3:$B$4

Nhấp Solve, ta sẽ có 2 nghiệm x và y là x = 2.763 và y = 3.3108

Vì hệ phương trình này có chứa x^2 và y^2 nên việc có nhiều nghiệm là hoàn toàn có thể xảy ra. Do đó, ta tiếp tục cho các biến tại B3 : B4 các giá trị khác như 1 chẳng hạn, ta sẽ thấy có thêm các nghiệm sau : x = 1.99994 và y = 3.0004
 
HYen đã viết:
Trong excel có hàm tính định thức; Vậy xin hỏi các cao thủ:Có thể xáx định nghiệm = cách:
X = Dx / D ;
Y = Dy / D; Và Z = Dz / D
được không vậy các bác?!
Để tính D(i) ta dùng hàm =MDETERM(Array)
Hoàn toàn có thể được; Sau đây xin giới thiệu các bác hàm người dùng giải hệ 3 phương trình tuyến tính đơn giản:
12x + 3 y + 5z = 100
-5x - 4 y + 5z = -57
- x + 19y + 4z = 45
Mã:
[B]Function HePTr3An(Mang As Object) As Variant[/B]
Dim Dec(3, 3), Dx(3, 3), Dy(3, 3), Dz(3, 3), Ngh(3, 2) As Variant
Dim DD, DDx, DDy, DDz As Variant
For ii = 1 To 3
    For ij = 1 To 3
        Dec(ii, ij) = Mang.Cells(ii, ij)
        Dx(ii, ij) = IIf(ij = 1, Mang.Cells(ii, 4), Mang.Cells(ii, ij))
        Dy(ii, ij) = IIf(ij = 2, Mang.Cells(ii, 4), Mang.Cells(ii, ij))
        Dz(ii, ij) = IIf(ij = 3, Mang.Cells(ii, 4), Mang.Cells(ii, ij))
Next ij, ii
    DD = Application.MDeterm(Dec):          DDx = Application.MDeterm(Dx)
    DDy = Application.MDeterm(Dy):          DDz = Application.MDeterm(Dz)
    For ij = 1 To 3
        Ngh(ij, 1) = Chr(87 + ij) & " = "
    Next ij
    Ngh(1, 2) = DDx / DD
    Ngh(2, 2) = DDy / DD
    Ngh(3, 2) = DDz / DD

    HePTr3An = Ngh
[B]End Function[/B]
Cách sử dụng như sau:
Tại các ô A2-D4 ta nhập tương ứng các hệ số của hệ phương trình
Quét chọn vùng B6:C8 & nhập lên thanh công thức =HePTr3An(A2:D4)
Và kết thúc = tổ hợp 3 fím sẽ cho kết quả:
X = 8
Y = 3
Z = -1
 
Lần chỉnh sửa cuối:
Lập hàm thì phức tạp quá! :.
Các bạn thử sử dụng phương pháp ma trận xem sao.
 
HYen đã viết:
Trong excel có hàm tính định thức; Vậy xin hỏi các cao thủ:
Có thể xáx định nghiệm = cách:
X = Dx / D ;
Y = Dy / D; Và Z = Dz / D
được không vậy các bác?!
BS: Để tính D(i) ta dùng hàm =MDETERM(Array)
Sao hôm trước không đọc được dòng này nhỉ (dòng đậm đỏ). Cách này hay quá. Đơn giản và hiệu quả.
 
Kh6ng biết các cách Solver. . . được không nữa?

/(/hưng cả hai fương fáp = ma trận & định thức này đều không thể giải được các hệ sau:
2x + y + 3z = 4
2x + y + 6z = 6
6x + 3 y + 9z = 6
hay. . . x + 2y + 2 z = 3
. . . . . 2x + y + 3z = 0
. . . . . 4x + 5y + 7 z = 6
 
Lần chỉnh sửa cuối:
Hệ phương trình chỉ có 3 ẩn mà có tới tận 6 phương trình thì khó đấy!
 
Đã sữa fía trên!

Hệ phương trình chỉ có 3 ẩn mà có tới tận 6 phương trình thì khó đấy!
Xin lỗi bác, thật ra mình thiếu chữ 'Hay' để ngăn cách 2 hệ phw trình
Sẽ sữa lại & lần sau cẩn thận hơn, xin hứa!
GhiNhớ: /(/ếu bữa trước đừng xài chữ các mà là hai thì vừa ngắn vừa khỏi bị bắt lỗi rồi; Rút kinh nghiệm nha!
 
Lần chỉnh sửa cuối:
Tôi đã đọc qua một số thông tin trên trang giải pháp Excel và tôi có cảm giác là mọi người rất có nhiều thời gian rãnh.
Vậy tôi khuyên các bạn nên đầu tư vào việc khác hay hơn chứ thời gian đâu mà thảo luận việc giải phương trình, hệ phương trình trên excel.
Tôi hay nói thẳn nếu có gì mong mọi người bỏ qua
 
bluekings9 đã viết:
Tôi đã đọc qua một số thông tin trên trang giải pháp Excel và tôi có cảm giác là mọi người rất có nhiều thời gian rãnh.
Vậy tôi khuyên các bạn nên đầu tư vào việc khác hay hơn chứ thời gian đâu mà thảo luận việc giải phương trình, hệ phương trình trên excel.
Tôi hay nói thẳn nếu có gì mong mọi người bỏ qua
Bạn có biết biết bao người đã ứng dụng những kiến thức được chia sẻ trên diễn đàn vào công việc hay không ? bạn có biết các bạn, các anh chị trên diễn đàn "rảnh rỗi" như thế nào không ? . Mong bạn gắng tìm hiểu và gắn bó với diễn đàn hơn, có nhiều ý kiến xây dựng thiết thực hơn để thấy rằng những gì bạn đang đọc, đang thấy không chỉ là sự chia sẻ kiến thức mà còn là sự chia sẻ qũy thời gian ít ỏi của tất cả các thành viên .
 
Có thể gởi file đã làm sẵn cho mình ko? mình mới học exel nên còn gà lắm..
 
Goal Seak và giải phương trình bậc 3


Ở bài trên, chúng ta đã thử làm quen với Goal Seak trong giải phương trình bậc 2, bây giờ, chúng ta sang phần tiếp theo là giải phương trình bậc ba...cho đến bậc n !!!

TD : Ta có phương trình : 2x^3 + x^2 - 246x + 360 = 0

Thiết lập bảng tính :

a. Từ Cell A4 : A7, lần lượt nhập chữ a, b, c, d, để dùng làm nhãn và tên cho các giá trị a, b, c, d sẽ được nhập vào B4 : B7. Chọn A4 : B7, vào Insert / Name / Create, Click vào hộp kiểm Left Column.

b. Tại D4 : D6 dùng để nhập các nghiệm số dự báo trước, ta có thể nhập thử các nghiệm sau : 100, 2, và -20

c. Tại E4 : Ê nhập công thức tính giá trị của phương trình trên. Vì a, b, c, d đã được chọn làm tên cho các ô B4 : B7, nên :
E4 = a*D4^3 + b*D4^2 + c_D4 + d
E5 = a*D5^3 + b*D5^2 + c_D5 + d
E6 = a*D6^3 + b*D6^2 + c_D6 + d

d. Đặt con trỏ tại E4 và gọi hộp thoại Goal Seak, Set Cell ta nhập $E$4, To Value ta nhập số 0, By Changing Cell, nhấp $D$4. Xong nhấp OK.

e. Tiếp tục làm như trên tại E5 và E6

f. Các ô D4 : D6 bây giờ sẽ có 3 nghiệm là 10, 1.5, và -12

g. Nếu bạn giải phương trình với các bậc cao hơn, chúng ta cũng làm tương tự trên, thay vì chỉ có a, b, c, d, chúng ta sẽ thêm các hệ số phương trình vào cột A, nghiệm số dự báo vào cột D,và gọi Goal Seak từ cột E
Nếu mà mình ko khai báo $E$4 $D$4mà chỉ khai báo Ẽ D4 thì có ảnh hưởng gì không?
 
các bác cho em hỏi. Sao em vào tool ko thấy sỏlve đâu là thế nào? Hay máy em bị lỗi? Hay đây là marco???
//////////////////
 
Web KT
Back
Top Bottom