import numpy as np
from scipy.optimize import minimize
def objective(x):
x1, x2, x3 = x
return -(2 * x1 + 3 * x1 ** 2 + 3 * x2 + x2 ** 2 + x3)
# 定義約束條件
def constraint1(x):
x1, x2 = x[:2] # 只取前兩個變數x1和x2
return 10 - (x1 + 2 * x1 ** 2 + x2 + 2 * x2 ** 2) # 假設沒有x5
def constraint2(x):
x1, x2, x3 = x
return 10 - (x1 + x1 ** 2 + x2 + x2 ** 2 - x3)
def constraint3(x):
x1, x3 = x[:2] # 只取前兩個變數x1和x3(注意這裡的x是切片,但x3實際上是第三個元素)
return x3 - (x1 ** 2 + x3)
def constraint4(x):
x1, x2 = x[:2] # 只取前兩個變數x1和x2
return x1 + 2 * x2 - 1
# 初始猜測值(只包含目標函式和約束中使用的變數)
x0 = [0.5, 0.5, 0.5]
# 定義約束條件的字典
con1 = {'type': 'ineq', 'fun': constraint1}
con2 = {'type': 'ineq', 'fun': constraint2}
con3 = {'type': 'eq', 'fun': constraint3} # 這是一個等式約束
con4 = {'type': 'ineq', 'fun': constraint4}
cons = [con1, con2, con3, con4]
# 求解最佳化問題
# 注意:bounds現在只針對x1, x2, x3
solution = minimize(objective, x0, method='SLSQP', constraints=cons,
bounds=[(None, None), (None, None), (None, None)])
# 輸出結果
print('Optimal solution:', solution.x)
print('Objective function value at optimal solution:', -solution.fun) # 注意取負值以得到最大化結果
print('學號:3015')
5.5
相關文章
- 5.5py
- Centos5.5中安裝Mysql5.5過程分享CentOSMySql
- 5.5(衝刺七)
- 數字與字串5.5字串
- lumen5.5學習(二)
- lumen5.5學習(一)
- Laravel 5.5 validator 使用 request fromLaravel
- GO語言————5.5 Break 與 continueGo
- redhat 5.5 配置網路yum源Redhat
- centos7 RPM MySQL5.5CentOSMySql
- 【計組5.5】指令流水線
- 5.5 以太坊原始碼詳解5原始碼
- RxJS 5.5: 即將到來的 pipelineJS
- Vmware-vSphere 5.5:安裝、配置、管理
- python數學建模作業5.4 5.5Python
- PHP5.5 ~ PHP7.2 新特性整理PHP
- Laravel5.5 新專案建立步驟Laravel
- Laravel5.5 和 5.2 env 取值問題Laravel
- 在Fedora FC5安裝vmware 5.5
- Tomcat5.5 Admin的安裝與配置Tomcat
- 第五週第五天5.5
- laravel 5.5 折騰 node 15 的經歷Laravel
- Laravel5.5+dingo+JWT 開發後臺 APILaravelGoJWTAPI
- Unity5.5 AssetBundle用法-面向Android平臺(1)UnityAndroid
- EMQX Enterprise 5.5 釋出:新增 Elasticsearch 資料整合MQElasticsearch
- # Laravel 5.5 升級到 6.0 踩坑記錄Laravel
- Vmware vSphere 5.5:最佳化和擴充套件套件
- 分享 Laravel5.5 與 Dingo 配合遇到的坑LaravelGo
- 企業環境下MySQL5.5調優MySql
- Laravel 5.5 使用 Passport 服務做 API 認證LaravelPassportAPI
- Laravel 5.5 Validator 自定義錯誤返回訊息Laravel
- 原始碼分享:Laravel5.5+vue2+element-ui原始碼LaravelVueUI
- 我獨自走進 Laravel5.5 的❤(二)Laravel
- Laravel5.5 + Vue 開發單頁應用LaravelVue
- 我獨自走進 Laravel5.5 的❤(一)Laravel
- php5.5CURL圖片上傳廢棄@PHP
- laravel 5.5 嘗試使用 typescript 編寫 vue 元件LaravelTypeScriptVue元件
- 基於Laravel5.5的模組化開發Laravel