Đầu tiên chúng ta làm quen v i l nh ớ ệ Solve: Cú pháp và cách lấy giá tr nghi m. ị ệ Hãy chú ý đến trường h p có nghi m bợ ệ ội như trong ví dụ dưới đây:
In[7]:=
Out[7]:=
In[8]:=
Out[8]:=
In[9]:=
Out[9]:=
In[12]:=
42
Out[12]:=
Theo như trên thì ra nhận th y rấ ằng, cú pháp để ả gi i một phương trình đơn một bi n là: ế
Solve[equation, variable]
Cú pháp tổng quát đối với các đố ố ủi s c a l nh ệ Solve bao g m m t list các ồ ộ phương trình phụ thu c vào m t list các biộ ộ ến. Có nghĩa là:
Solve[equation_list, variable_list]
Ví dụ sau đây sẽ cho ta thấy điều đó:
In[12]:=
Out[12]:=
In[14]:=
Out[14]:=
In[15]:=
43 Out[15]:=
Chú ý r ng , không ph i t t c ằ ả ấ ả các phương trình đa thức đều có nghi m chính ệ xác. Theo lý thuyết phương trình thì các phương trình bậc 4 tr xuở ống đều có công thức nghiệm chính xác đƣợc xây d ng t các h sự ừ ệ ố. Tuy nhiên, theo Galois đố ới v i các phương trình bậc 5 tr lên, chúng ta l i không có nh ng công th c nghiở ạ ữ ứ ệm như thế. Và Mathematica s ẽ không đánh giá các phương trình bậc 5 tr ở lên (các phương trình không th phân tích thành nhân t ), t t nhiên có th tìm t t c các nghi m cể ử ấ ể ấ ả ệ ủa một phương trình đa thức bằng phương pháp sốthông qua lệnh N(). ví d : ụ
In[1]:= Solve[1+8*x^3+x^5 2*x^6+4*x^70,x]-
Out[1]:=
In[2]:=
2 1 1 2
2 1 1 2
44
Out[2]:=
1.9 Tích phân, o hàm, chu i và gi i h n đạ ỗ ớ ạ
- L nh tìm tích phân b t nh c a hàm f(x) là ệ ấ đị ủ Integrate[f[x],x]. Chú ý rằng trong kết qu ả tìm đƣợc không có kết quả đi kèm.
Để tìm tích phân xác định của hàm f(x) trên đoạ ử a đến t n b ta s d ng cú pháp ử ụ Integate[f[x],{x,a,b}]. Tương tự ệ, l nh NIntegate tìm giá tr s ị ố tích phân xác định c a hàm f(x). ủ
- Đạo hàm là phép toán ngƣợc với tích phân. Cú pháp D[f[x], x] có nghĩa là tìm đạo hàm c a hàm f(x) theo bi n x. T t nhiên có th ủ ế ấ ể tìm đạo hàm b c n c a hàm f(x) ậ ủ b ng l nh D[f[x],{x,n}] ằ ệ
- L nh Series[f(x), {x,a,n}] s cho ra n thành phệ ẽ ần đầu tiên trong khai triển chuỗi Taylor c a hàm f(x) tủ ại điểm a.
- Lệnh Limit[f[x], x→a] sẽ tìm giới hạn c a hàm f(x) khi x ti n tủ ế ới a.
In[3]:=
Out[3]:=
45 In[4]:=
Out[4]:=
In[5]:=
Out[5]:=
In[6]:=
Out[6]:=
In[7]:=
Out[7]:=
In[8]:=
Out[8]:=
In[9]:=
Out[9]:=
In[10]:=
Out[10]:=
1.10. Tính toán nhi u bi nề ế
Với Mathematica, đạo hàm h n h p ỗ ợ đƣợc tính một cách dễ dàng.
D[f[x, y] , {x, n}, {x, m}] o hàm theo bi n x n l n và theo bi n y m l n – đạ ế ầ ế ầ D[f, {{x1, x2, …}}] – tìm đạo hàm riêng.
46
Đố ới tích phân cũng vậi v y, ta có các cú pháp sau:
Integate[f[x,y], {x,a,b},{y, c, d}] – tính tích phân theo c 2 bi n x và y ả ế Giải phương trình vi phân: Dsolve và NDSolve
Dsolve[equation, y, x] –Giải phương trình vi phân với biến độ ậc l p x Dsolve[equation_list, y_list, x] –Giải một list các phương trình vi phân Dsolve[equation, y, {x1, x2, …}] – Giải phương trình đạo hàm riêng.
1.11 Xác định các điểm t i hớ ạn, điểm u n ố
Điểm t i hớ ạn, điểm uốn đƣợc tìm thông qua tìm không điểm của đạo hàm các c p cấ ủa nó.
Ví dụ: Tìm điểm t i hớ ạn và điểm u n c a f(x) n u f(x) = ố ủ ế
Ta sử ụng đoạ ệ d n l nh sau:
In[50]:= f[x_]=(1+5x 3x^2)(x^2+x 2)- - df=f'[x]
ddf=f''[x]
Factor[df]
Factor[ddf]
crinums=Solve[df0]
N[crinums]
{3/2,f[3/2]}
{(-2-2Sqrt[3])/4,Simplify[f[(-2-2Sqrt[3])/4]]}
{( 2+2Sqrt[3])/4,Simplify[f[( 2+2Sqrt[3])/4]]}- -
Out[50]:=
Out[51]:=
47
Out[52]:=
Out[53]:=
Out[54]:=
Ta đƣợc k t qu : ế ả
Out[55]:=
Out[56]:=
Out[57]:=
Out[58]:=
Out[59]:=
1.12 Miền đúng của bấ ẳt đ ng th c ứ
Trong nhiều trường h p chúng ta c n phợ ầ ải xác định mi n nào là mi n th a mãn ề ề ỏ được c a bủ ấ ẳt đ ng thức cho trước, t c là bứ ấ ẳt đ ng thức đúng. Một trong s các gi i ố ả pháp là dùng l nh ệ RegionPlot[]
Tương tự trong không gian ba chiều ta cũng có lệnh RegionPlot3D[]
RegionPlot[pred,{x,xmin,xmax},{y,ymin,ymax}]: Xây d ng miự ền đồ thịsao cho pred nhận giá tr True. ị
RegionPlot3D[pred,{x,xmin,xmax},{y,ymin,ymax},{z,zmin,zmax}]: đối với trường h p 3 bi n. ợ ế
Ví dụ 1 :
In[4]:=
48 Out[4]:=
Ví dụ 2:
In[6]:=
Out[6]:=
Ví dụ 3:
In[7]:=
49 Out[7]:=
Ví dụ 4:
In[9]:=
Out[9]:=
50
CHƯƠNG 2 : ỨNG DỤNG CỦA MATHEMATICA TRONG BÀI TOÁN MIN, MAX VÀ QUI HO CH TUY N TÍNH Ạ Ế
2.1 D ng tạ ổng quát c a bài toán qui ho ch tuy n tính ủ ạ ế
Bài toán qui ho ch tuy n tính d ng t ng quát vạ ế ạ ổ ới n ẩn là bài toán có d ng ạ (1) f(x) = c1x1 + c2x2 + ... + cnxn→ max (min)
≥
(2) ai1x1 + ai2x2 + ... + ainxn ≤ bi , i =1,2,…,n, ≥ 0 =
x(3) j ≤ 0 , j=1,2,…,n.
Tùy ý Trong đó :
- (1) là hàm mục tiêu - (2) là hệ ràng buộc chính - (3) là ràng buộc dấu
- (2) và (3) đƣợc gọi chung là hệ ràng buộc của bài toán Khi đó
- M i vector x = (xỗ 1 , x2 , ... , xn ) thỏa mãn (2) và (3) được g i là mọ ột phương án của bài toán.
51
- Mỗi phương án x thỏa mãn (1) nghĩa là tại đó hàm mục tiêu đạt giá tr nh ị ỏ nh t ấ (lớn nh t) trên tấ ập các phương án được g i là mọ ột phương án tối ưu của bài toán.
- Giải m t bài toán quan h tuyộ ệ ến tính là đi tìm một phương án tối ưu của nó hoặc chỉ ra rằng bài toán vô nghiệm nghĩa là bài toán không có phương án tối ưu.
2.2 D ng chính tạ ắc của bài toán qui ho ch tuy n tính ạ ế (1) f(x) = c1x1 + c2x2 + ... + cnxn→ max (min) (2) ai1x1 + ai2x2 + ... + ainxn = bi , i =1,2,…,m.
(3) xj ≥ 0 , j =1,2,…,n.
Nhận xét:
Bài toán QHTT d ng chính t c là bài toán QHTT d ng tạ ắ ạ ổng quát trong đó - Các ràng buộc chính đều là phương trình
- Các ẩn đều không âm.
Ví dụ : Bài toán sau có d ng chính t c ạ ắ 1. f(x) = 2x1 -4x2 –x3+ 6x4→ min 2. x1-4x2 + x4= 12
12x1 -3x2 + x3+ x4= 3 x1 - x2 – x3-x4= -6 3. xj ≥ 0 , j =1,2,…,4.
2.3 D ng chu n c a bài toán QHTT ạ ẩ ủ
Bài toán QHTT là bài toán QHTT d ng chính t c ạ ắ (1) f(x) = c1x1 + c2x2 + ... + cnxn→ max (min) (2) ai1x1 + ai2x2 + ... + ainxn= bi , i =1,2,…,m.
52 (3) xj ≥ 0 , j =1,2,…,n.
Trong đó
- Các h s t ệ ố ự do đều không âm
- Trong ma tr n h s t ậ ệ ố ự do có đủ m vector cột đơn vị e1 , e2 , ... , en
1 0 0 Gọi e1 = 0; e2 = 1, … , em = 0
⁞ ⁞ ⁞
0 0 1 Khi đó:
- Các n ng v i các vector cẩ ứ ớ ột đơn vị đƣợc gọi là các ẩn cơ bản. C ụthể ứng v i vector cớ ột đơn vị ek là ẩn cơ bản th ứk.
- Một phương án mà các ẩn cơ bản bằng 0 được gọi là phương án cơ bản.
- Một phương án cơ bản có đủ m thành phần dương được gọi là suy bi n. ế - Ngược lại một phương án cơ bản có ít hơn m thành phần dương được gọi là không suy bi n. ế
Ví dụ : Bài toán sau có d ng chính t c ạ ắ 1. f(x) = 2x1 -4x2 – x3+ 6x4→ min 2. x1+ x4 + x5= 12
12x1 + x3+ x6 = 3 x1 + x2 – x3-x4= 6
3. xj ≥ 0 , j =1,2,…,4,5,6
53
Ta thấy bài toán trên có d ng chính tạ ắc, hơn nữa Các h s t ệ ố ự do đều không âm
Ma trận h s ràng bu c A là ệ ố ộ 1 0 0 1 1 0 A = 12 0 1 0 0 1 1 1 -1 -1 0 0
Có chứa đầy đủ 3 vector cột đơn vị e1 (cột 5), e2 (cột 6), e3 (cột 2).
Do đó bài toán có dạng chuẩn, trong đó - Ẩn cơ bản th nh t là xứ ấ 5
- Ẩn cơ bản th hai là xứ 6 - Ẩn cơ bản th ba là xứ 2
Nhận xét : Trong bài toán trên, khi cho ẩn cơ bản th k b ng h s t do th k, ứ ằ ệ ố ự ứ còn các ẩn không cơ bản bằng 0, nghĩa là cho x5 = 12, x6 = 3, x2 = 6, x1 = 0, x3 = 0, x4 = 0 ta được một phương án cơ bản c a bài toán x = (0,6, 0,0,12,3) . ủ
Phương án này không suy biến vì có đủ ba thành phần dương. Ta gọi đây là phương án cơ bản ban đầu c a bài toán. ủ
Chú ý: Trong bài toán QHTT dạng chu n b t kì, khi cho ẩ ấ ẩn cơ bản th k b ng ứ ằ h s t do th k (k= 1,2,...,m), còn các ệ ố ự ứ ẩn không cơ bản bằng 0, ta đƣợc một phương án cơ bản c a bài toán. Ta gủ ọi đây là phương án cơ bản ban đầu c a bài ủ toán.
54
2.4 Dạng chuẩn tắc của bài toán qui hoạch tuyến tính
D ng chu n c a bài toán qui ho ch tuy n tính là bài toán c c ti u hoá hàm mạ ẩ ủ ạ ế ự ể ục tiêu đƣợc phát biểu nhƣ sau:
Cực tiểu hoá hàm:
z = c1x1 + c2x2 + ... + cnxn
Trong đó x1 , x2 , ... , xn ph i luôn tho ả ả mãn các điều ki n: ệ a11x1 + a21x2 + ... + an1xn ≥ b1
a21x1 + a22x2 + ... + a2nxn ≥ b2 và x1 ≥ 0; x2 ≥ 0
an1x1 + an2x2 + ... + annxn ≥ bn
L nh ệ ConstrainedMin[function, {inequalities}, { variables}] cho phép giải bài toán qui ho ch tuy n tính d ng chu n nói trên. ạ ế ạ ẩ
Ví dụ 1:
Cực tiểu hoá z(x1 , x2 , x3 ) = 4x1 - 3x2 + 3x3 với điều ki n 3xệ 1 - 5x2 + x3 ≤ 60, x1 - x2 + 2x3 ≤ 10 , x1 + x2 - x3 ≥ 20 và x1 ,x2 , x3 không âm.
Giải :
Clear[x1,x2,x3,z,ineqs,vas]
vars={x1,x2,x3};
z[x1_,x2_,x3_]=4x1 3x2+2x3;-
ineqs={3x1 5x2+2x3<=60,x1 x2+2x3<=10,x1+x2 x3>=20};- - - ConstrainedMin[z[x1,x2,x3],ineqs,vars]
55
V y min = -ậ 90 đạt tại x1 = 0 , x2 = 50 , x3 30 = 2.5 Bài toán đối ngẫu
Cho bài toán qui ho ch tuyạ ến tính dưới dạng chu n t c sau: ẩ ắ
Cực tiểu hoá hàm z = với điều ki n ệ ≤ và j =1,2,…,n, ≥ 0, i = 1,2,…,m.
Tương tự ớ v i bài toán c c ti u hoá z = ự ể với điều ki n ệ ≥ , và i =1,2,…,m, ≥ 0, j = 1,2,…,n.
Bài toán đối ng u là c c ti u hoá z = ẫ ự ể với điều ki n ệ ≤ và j
=1,2,…,n, ≥ 0, i = 1,2,…,m.
Ví dụ 2 :
Cực tiểu hoá hàm z = 6x + 8y với điều ki n ràng buệ ộc 5x + 2y ≤ 20, x+ 2y ≤ 10, x ≥ 0, y ≥ 0.
Hãy phát biểu bài toán đối ngẫu và tìm lời giải bài toán đối ngẫu.
Giải:
Kí hiệu hàm m c tiêu c a bài toán là zụ ủ x , các bấ ẳt đ ng th c nguyên thu ứ ỷlà ineqs.
Dùng lệnh:
ContrainedMax[ zx, ineqsx, {x[1], x[2]}], ta sẽ tìm đƣợc maxx= 45
Clear[zx,zy,x,y,valsx,valsy,ineqsx,ineqsy]
zx=6x[1]+8x[2];
ineqsx={5x[1]+2x[2] 20,x[1]+2x[2] 10}
56
ConstrainedMax[zx,ineqsx,{x[1],x[2]}]
ở đây c1 = 6, c2 = 8, b1 =20, b2 = 10 nên bài toán đối ng u là : ẫ
tìm Min của z = 20y1 + 10y2 với điều ki n 5yệ 1 + y2 ≥ 6, 2y1 + 2y2 ≥ 8, y1 ≥ 0, y2
≥ 0.
Việc giải bài toán đối ngẫu được tiến hành tương tự như trên nhờ đoạ ện l nh Clear[zx,zy,x,y,valsx,valsy,ineqsx,ineqsy]
zy=20y[1]+10y[2]
ineqsy={5y[1]+y[2] 6,2y[1]+2y[2] 8} ConstrainedMin[zy,ineqsy,{y[1],y[2]}]
Kết quảlà :
dĩ nhiên mô hình qui hoạch tuy n tính có th bao g m nhi u bi n. Ta có bài toán ế ể ồ ề ế sau:
Cho bài toán qui hoach tuy n tính d ng chu n là: ế ở ạ ẩ Cực tiểu hoá x = c1x1 +c2x2 + …+ cnxn
Hàm mục tiêu
57 với các điều ki n liên k t ệ ế
a11x1 +a12x2 + …+ a1nxn ≥ b1
a21x1 +a22x2 + …+ a2nxn ≥ b2 ⁞
am1x1 +am2x2 + …+ amnxn ≥ bm
và x1 ≥ 0, x2 ≥ 0, … , xn ≥ 0
x1 b1 a11 a12 … a1n
G i x = xọ 2 ; b = b2 ; c = ( c1 , c2 , …, cn), A= a11 a12 … a1n ⁞ ⁞ … … … … xn bn am1 am2 …. amn
Khi đó dạng chu n c a bài toán qui ho ch tuyẩ ủ ạ ến tính là tìm vector đại hoá z = c*x với điều ki n ràng bu c ệ ộ A*x ≥ b và x ≥ 0.
Baì toán đối ng u là : ẫ
cực tiểu hoá Y = y * b với điều kiện y*A ≤ c và y ≥ 0.
L nh ệ LinearProgramming[ c, A, b] cho ta tìm vector x c c ti u hoá hàm Z = ự ể c-x với điều ki n A . x > b và x > 0. L nh này không cho min cệ ệ ủa z nhƣ là lệnh ConstrainedMin và ConstrainedMax và các giá tr phị ải đƣợc xác định t vector kừ ết qu . ả
Ví dụ 3:
Cực tiểu hoá z = 5 x1 - 7 x2 + 7 x3 + 5x4 + 6x5 với điều ki n ệ
58 2x1 + 3x2 + 3x3 + 2 x4 + 2x5 10 ≥ 6x1 + 5x2 + 4x3 + x4 + 4x5 ≥ 30 -3x1 - 2x2 - 3x3 - 4 x4 -5 ≥ - x1 - x2 - x4 -10 ≥ xi≥ 0 , i = 1,2,3,4,5
Phát biểu bài toán đối ng u và giẫ ải bài toán đó.
x1 10 2 3 3 2 x2 30 6 5 4 14 G i x = xọ 3 ; b = -5 ; c = ( c1 , c2 , …, cn), A= -3 -2 -3 -4 0 x4 -10 -1 -1 0 -1 0 x5
Khi đó dòng l nh là : ệ
Clear[matrixa,x,y,c,b]
c={5, 7,7,5,6};- b={10,30, 5, 10};- -
matrixa={{2,3,3,2,2},{6,5,4,1,4},{ 3, 2, 3, 4,0},{- - - - - 1, 1,0, 1,0}};- -
xvec=Array[x,5] {x[1],x[2],x[3],x[4],x[5]}
xvec=LinearProgramming[c,matrixa,b]
Kết quả:
c.xvec :
59
Bài toán đối ng u: Tìm Min Y = y .b vẫ ới điều ki n y.A < 0 và y> 0 ệ Ta giải bài toán đối ng u bẫ ằng đoạn chương trình sau
yvec = Array[y,4]{ y[1] , y[2] , y[3] , y[4] } yvec.b10 y[1] + 30y[2] -5 y[3] -10 y[4]
yvec.matrixa
{2 y[1] + 6y[2] -3 y[3] - y[4], 3y[1] + 5y[2] -3 y[3] - y[4], 3y[1] + 4y[2] -3 y[3] , 2y[1] + y[2] - 4 y[3] - y[4], 2y[1] + 4y[2] }
Vậy bài toán đối ng u có th phát bi u d ng sau: ẫ ể ể ở ạ tìm Min Y = 10y1 + 30y2 -5y3 - 10y4
với điều ki n ệ
2y1 + 6y2 - 3y3 –y4 ≤ 5 3y1 + 5y2 - 2y3 –y4 ≤ 5 2y1 + 6y2 - 3y3 –y4 ≤ -7 3y1 + 4y2 - 3y3 ≤ 7 2y1 + y2 - 4y3 – y4 ≤ 5
2y1 + 4y2 ≤ 6 và yi ≤ 0, i =1,2,3,4 2.6 Một số ví dụ giải bằng Mathematica
Ví d 1(CHLH 2009) : Mụ ột cơ sở ả s n xuất đồ ỗ ự đị g d nh s n xu t ba lo i sả ấ ạ ản ph m là bàn, gh và tẩ ế ủ. Định m c s dứ ử ụng lao động, chi phí s n xu t và giá sả ấ ản ph m m i loẩ ỗ ại ƣớc tính trong b ng sau: ả
60
Các y u t ế ố Bàn Ghế T ủ
Lao động (Ngày công) 2 1 3
Chi phí sản xuất(Ngàn đồng) 100 40 250
Giá bán (Nghàn đồng) 260 120 600
Hãy l p mô hình toán h c cậ ọ ủa bài toán xác định s s n ph m m i lo i c n phố ả ẩ ỗ ạ ầ ải s n xu t sao cho không b ng trong s n xu t và tả ấ ị độ ả ấ ổng doanh thu đạt đƣợc cao nhất, bi t rế ằng cơ sở ả s n xu t có s lao dấ ố ộng tương đương với 500 ngày công, s ố tiền dành cho chi phí s n xuả ất là 40 triệu đồng và s bàn, gh ph i theo t l 1/6. ố ế ả ỉ ệ
Bài làm
G xọi 1, x2, x3 lần lƣợt là số bàn, gh , t c n ph i s n xuế ủ ầ ả ả ất. Ta có các điều ki n: xệ 1, x2, x3 ≥0 .
T ng ngày công và chi phí d ổ ự định để ả s n xu t là: ấ 2x1 + x2 +x3 (ngày công)
100x1 + 40x2 +250x3 (ngàn đồng)
Để không b ng trong s n xuị độ ả ất ta có các điều ki n sau ệ 2x1 + x2 + 3x3 ≤ 500
100x1 + 40x2 +250x3 ≤ 40000
Theo tỉ ệ ữ l gi a số bàn và s gh ố ế ta có điều ki n sau ệ 6x1 = x2
T ng doanh thu theo d ki n là ổ ự ế 260x1 + 120x2 + 600x3 ngàn đồng)
Để ổng doanh thu đạt đƣợ t c cao nhất ta có điều ki n ệ 260x1 + 120x2 + 600x3 → max
Nhƣ vậy, mô hình toán h c c a bài toán là ọ ủ (1) 260x1 + 120x2 + 600x3 → max
61 2x1 + x2 + 3x3 ≤ 500
(2) 100x1 + 40x2 +250x3 ≤ 40000 6x1 - x2 =0
(3) x1, x2, x3 ≥0
Khi đó để ả gi i bài toán này trên Mathematica ta nh p l nh sau: ậ ệ Clear[xvec,z,constraints,vars,c]
c={260, 120, 600};
xvec=Array[x,3]
{x[1],x[2],x[3]}
z=xvec.c
constraints={2x[1]+x[2]+3x[ ]<= 500,100x[1]+40x[2]+250x[3]<=40000,6x[1]3 - x[2]>=0};
values=ConstrainedMin[z,constraints,xvec]
Ta đƣợc k t qu ế ả
Out[72]:=
L y giá tr ấ ị nguyên ta đƣợc kết quả: Max= 96836, x1= 5, x2= 30, x3= 153 Ví dụ 2: Giải bài toán QHTT sau:
f(x) = 8x1 + 6x2 + 4x3 → min 0.3x1 + 0.2x2 + 0.2x3 ≥ 70
0.3x1 + 0.2x2 + 0.2x3 ≤ 100 0.2x1 + 0.2x2 + 0.3x3 ≥ 50 0.2x1 + 0.2x2 + 0.3x3 ≤ 80 x1, x2, x3 ≥ 0
62 Khi đó ta thực hi n nh p l nh: ệ ậ ệ
In[74]:= Clear[xvec,z,constraints,vars,c]
c={8,6,4};
xvec=Array[x,3]
{x[1],x[2],x[3]}
z=xvec.c
constraints={0.3x[1]+0.2x[2]+0.2x[3]>=70,0.3x[1]+0.2x[2]+0.2x[3]<=100,0.2x [1]+0.2x[2]+0.3x[3]>=50,0.2x[1]+0.2x[2]+0.3x[3]<=80};
values=ConstrainedMin[z,constraints,xvec]
Ta đƣợc k t qu : ế ả Out[80]:=
Khi đó :
Min = =
T ại In[112]:=
Out[112]:=
Ví dụ 3: Gi i bài toán QHTT sau: ả f(x) = 3x1 + 7x2 → min
2x1 + 4x2 ≥ 5 3x1 + x2 ≥ 4 4x1 + 5x2 ≥ 8 x1, x2 ≥ 0
63 Ta nhậ ệp l nh sau:
In[113]:= Clear[xvec,z,constraints,vars,c]
c={3,7};
xvec=Array[x,2]
{x[1],x[2]}
z=xvec.c
constraints={2x[1]+4x[2]>=5,3x[1]+x[2]>=4,4x[1]+5x[2]>=8};
values=ConstrainedMin[z,constraints,xvec]
Out[119]:=
In[120]:=
Out[120]:=
= min T ại
In[121]:=
Out[121]:=
Ví dụ 4: Gi i bài toán QHTT sau: ả f(x) = 5x1 + 2x2 + 6x3 → max 0.2x1 + 0.1x2 + 0.1x3 ≤ 50
0.1x1 + 0.1x2 + 0.2x3 ≤ 70 x2 ≤ 300
x1, x2, x3 ≥ 0 Ta nhậ ệp l nh :
Clear[xvec,z,constraints,vars,c]
c={5,2,6};
64 xvec=Array[x,3]
{x[1],x[2],x[3]}
z=xvec.c
constraints={0.2x[1]+0.1x[2]+0.1x[3]<=50,0.1x[1]+0.1x[2]+0.2x[3]<=70,x[2]<
= 300};
values=ConstrainedMax[z,constraints,xvec]
Đƣợc k t qu : ế ả
Nhƣ vậy:
Max = 2300 T ại