标题中有什么。我尝试了以下内容:
/*Constants*/
metalMaxTa : 37;/*rand_with_step(20,40,2);*/
elecMaxTa : 52;/*rand_with_step(40,60,2);*/
rateAa : 24;
rateBa : 44;
/*Conditions set by the problem*/
ineq1 : 1/2 * x1 + x2 <= metalMaxTa;
ineq2 : x1 + 1/2*x2 <= elecMaxTa;
ineq3 : x1 >= 0;
ineq4 : x2 >= 0;
/*Solution?*/
sol : solve_rat_ineq([ineq1,ineq2,ineq3,ineq4],[x1,x2]);
换句话说,输入系统没有真正完成任务,只需打印表达式。 load-command不可用,所以如果它不可用,我实际上无法加载该函数,这似乎是问题所在。
编辑:to_poly_solve()
也会产生相同的输出。 solve()
似乎可用,但返回一个空列表,因为它显然是指方程组,而不是不等式。
答案 0 :(得分:1)
fourier_elim可以处理。
load('fourier_elim)$
metalMaxTa : 37 $
elecMaxTa : 52 $
rateAa : 24 $
rateBa : 44 $
ineq1 : 1/2 * x1 + x2 <= metalMaxTa$
ineq2 : x1 + 1/2*x2 <= elecMaxTa $
ineq3 : x1 >= 0 $
ineq4 : x2 >= 0 $
sol : fourier_elim([ineq1,ineq2,ineq3,ineq4], [x1, x2]) $
map(disp, sol) $
返回
[x1 = 0, x2 = 0]
[x1 = 52, x2 = 0]
[x2 = 0, 0 < x1, x1 < 52]
[x1 = 0, x2 = 37]
[x1 = 0, 0 < x2, x2 < 37]
134 44
[x1 = ---, x2 = --]
3 3
x2 - 104 44
[x1 = - --------, 0 < x2, x2 < --]
2 3
44
[x1 = 74 - 2 x2, -- < x2, x2 < 37]
3
x2
[0 < x1, x1 < min(52 - --, 74 - 2 x2), 0 < x2, x2 < 37]
2
它仅在输出中使用严格的不等式,并且将权益显示为 特别案例。如果在方程式中使用严格的不等式,则输出 看起来更自然。
0 < x1
x2
x1 < min(52 - --, 74 - 2 x2)
2
0 < x2
x2 < 37