Re: [問題] 最佳化toolbox已回收

看板MATLAB作者 (徵125機車 新竹)時間16年前 (2009/06/19 01:24), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
clear all A=[1 2 3 4 5 7]; card_A=length(A); set_sum_10=[]; set_counter=0; for iii=0:2^(card_A)-1 temp_seq=de2bi(iii,card_A,'left-msb'); if temp_seq*A'==10 set_sum_10=[set_sum_10; temp_seq]; set_counter=set_counter+1; end end ※ 引述《haluko (想你一切都好)》之銘言: : 在一個集合裡 找到某些元素的組合 其總和符合預設的最大值 : 因為要實驗的集合 裡面的元素相當多 所以想用matlab裡的fmincon當工具 : 在用一個小例子做練習 便遇到問題了 : 例如 集合有{1, 2, 3, 7, 5, 4} MAX=10 : 總和為10的組合有{1,2,7} {3,7} {2,3,5} {1,2,3,4} {1,4,5} : 取到任何一組即可 : 我的想法是 設六個變數 其值不是0就是1 : 1*x(1)+2*x(2)+3*x(3)+7*x(4)+5*x(5)+4*x(6)=10 : 希望求得 由六個0和1組成的解 : 以下是用到的m-file : function y=test(x) : y=-1*x(1)-2*x(2)-3*x(3)-7*x(4)-5*x(5)-4*x(6); : function [c,ceq]=test_c(x) : c=[]; : ceq=[x(1)^2-x(1); : x(2)^2-x(2); : x(3)^2-x(3); : x(4)^2-x(4); : x(5)^2-x(5); : x(6)^2-x(6)]; %每個變數的值只能是0或1 : 想請問各位 : 邏輯上看起來沒有錯誤 但在tool上卻跑不出答案 : 這是為什麼? : 或是 由於我剛接觸 使用錯誤嗎? : 或是 在matlab有什麼方法求這種的0和1限制的整數解? : 非常歡迎各位指教 先謝謝大家了 m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.122.220

06/19 17:47, , 1F
謝謝你 :)
06/19 17:47, 1F
文章代碼(AID): #1AEdXIn0 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1AEdXIn0 (MATLAB)