Gi ải phương trình và h ệ phương trình

Một phần của tài liệu Giải á bài toán tối ưu bằng phần mềm mathematia ải tiến (Trang 49 - 73)

Đầ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^70,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

Một phần của tài liệu Giải á bài toán tối ưu bằng phần mềm mathematia ải tiến (Trang 49 - 73)

Tải bản đầy đủ (PDF)

(91 trang)