Re: [問題] 最佳化toolbox已回收
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章