【问题标题】:Finding best combination matlab with formula用公式寻找最佳组合matlab
【发布时间】:2013-08-01 11:42:00
【问题描述】:

我这里有个公式:

E = T*(1-W)*U + X*W*F + S*W*C*D

假设TWSXD都是常量,而UFC是变量,@9876543330@和@9876是相互关联的。

现在我的目标是根据UFC的不同组合找到E的不同值。

例如,我有这些变量的值:

U = 2.02,  1,     3,      4
F = 6,     4,     3.03
C = 0.5,   0.4,   0.3

注意 FC 彼此相关,例如当F=6 然后C=0.5 或者如果F=4 然后C=0.4 等等。

谁能帮助我如何在 matlab 上执行此操作,以便 matlab 为所有可能的变量组合计算 E 的值。

【问题讨论】:

  • 你的意思是你首先想对所有第一个值做某事,而不是对所有第二个等?

标签: matlab optimization combinations


【解决方案1】:

我找到了关系

F = 10*(exp(C)-1.06);

来自您的数据。我不知道这是否符合你的期望。无论如何,一旦您选择了 C、F 和 U 的范围以及对各个变量进行采样的步长大小,您就可以像这样计算函数的相空间:

%%%% modify me %%%%
T = 1;
W = 1;
S = 1;
X = 1;
D = 1;
%%%%%%%%%%%%%

Nstep = 10;

U = [2.02, 1, 3 , 4];
F = [6, 4, 3.03];
C = [0.5, 0.4, 0.3];

Umin = min(U);
Umax = max(U);
Cmin = min(C);
Cmax = max(C);
Fmin = min(F);
Fmax = max(F);

Ustep = (Umax-Umin)/Nstep;
Fstep = (Fmax-Fmin)/Nstep;
Cstep = (Cmax-Cmin)/Nstep;

U = [Umin:Ustep:Umax];
C = [Cmin:Cstep:Cmax];
F = [Fmin:Fstep:Fmax];
[C,F,U] = MESHGRID(C,F,U);

E = T.*(1-W).*U + X.*W.*F + S.*W.*C.*D;

如果其余变量 T、W、S、X、D 不是标量,则需要调整包含它们的数组的大小。

【讨论】:

  • @JordanDavid 请记住点击适合您的答案的复选标记!
【解决方案2】:

我不确定我是否正确理解了您的问题。如果您只想遍历 3 个具有已知值的变量,其中两个是相关的,您可以使用例如:

U = [2.02 1 3  4];
F = [6 4 3.03];
C = [0.5 0.4 0.3];
T = 1; W = 2; S = 3; X = 4; D = 5; %example values

for j=1:size(U,2)
    for i=1:size(F,2)
        E = T*(1-W)*U(j) + X*W*F(i) + S*W*C(i)*D; disp (E);
    end
end

否则,我们可能需要更多关于 F 和 C 之间关系的详细信息。

【讨论】:

    【解决方案3】:

    我想你想这样做,它不是很优化但应该很容易理解。

    U = [2.02 1 3  4];
    F = [6 4 3.03];
    C = [0.5 0.4 0.3];
    [W, T, D, X, S] = deal(1); %Assign dummy values for now
    minLength =  min(min(numel(U),numel(F)),numel(C)); %As U is not the same length as F and C here
    E = zeros(minLength,1);
    for k = 1:minLength
        E(k) = T*(1-W)*U(k) + X*W*F(k) + S*W*C(k)*D;
    end
    

    您现在可以通过以下方式找到最低值:

    find(E == min(E))
    

    【讨论】:

    • 如果U 不相关,@user2042297 的回答应该对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2012-03-17
    • 1970-01-01
    • 2021-10-14
    • 2016-07-25
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多