【问题标题】:Creating inequalities out of a auto-generated set of variables从一组自动生成的变量中创建不等式
【发布时间】:2013-07-31 09:33:48
【问题描述】:

在mathematica 的NMinimise 函数中我设置了这个:

NMinimize[{1/rij, x1^2 + y1^2 <= 25, x2^2 + y2^2 <= 25, 
  x3^2 + y3^2 <= 25, x4^2 + y4^2 <= 25, x5^2 + y5^2 <= 25, 
  x6^2 + y6^2 <= 25, x7^2 + y7^2 <= 25, x8^2 + y8^2 <= 25, 
  x9^2 + y9^2 <= 25, x10^2 + y10^2 <= 25}, 
 Join[Take[xi, number], Take[yi, number]]]

其中 xi 和 yi 表示生成变量的列表,x1,x2,x3,x4 等等,直到 x100。而不是设置很多约束,如 x1^2 + y1^2

我尝试输入不等式列表,但是,mathematica 似乎不接受它作为输入。

谢谢。

【问题讨论】:

    标签: wolfram-mathematica constraints minimize


    【解决方案1】:

    尝试将索引变量作为 x[ 1],y[ 1],x[2],y[2]...x[n],y[n] 使用,然后您可以执行类似的操作,

    NMinimize[ Join[{1/rij},Table[x[i]^2+y[i]^2<25,{i,number}]] ,
                Flatten[Table[{x[i],y[i]]},{i,number}] ]]
    

    (..未经测试..)

    更新:现已测试..

    n = 15;
    pts = Table[RandomReal[{-5, 5}, 2], {n}];
    s = NMinimize[ 
         Join[{Sum[Norm@({x[i], y[i]} - pts[[i]]), {i, n}]},
         Table[x[i]^2 + y[i]^2 < 1, {i, n}]], 
         Flatten[Table[{x[i], y[i]}, {i, n}]]];
    

    我不知道你的 rij 是什么..

    Graphics[ {PointSize[.05], Point /@ pts, Circle[{0, 0}, 1], Red, 
              Point /@ Table[{x[i], y[i]}, {i, n}] /. Last@s}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多