ConstrainedMax?年代这么久远的函数,5.0版就淘汰了。我不得已查了4.0的帮助。发现你的代码有两点错误。
第一,ConstrainedMax的用法应该是ConstrainedMax[f, {inequalities}, {x, y, ... }],并没有{x1->0,x2->0,x3->0}一项。所以应改作ConstrainedMax[3 x1 + 2 x2 + 2.9 x3, {8 x1 + 2 x2 + 10 x3 < -300, 10 x1 + 5 x2 + 8 x3 < -400, 2 x1 + 13 x2 + 10 x3 < -420}, {x1, x2, x3}]。
第二,即使这样改了,也不能得到结果,因为ConstrainedMax默认所有变量都是非负的。但这道题的结果实际算出来是负的。
所以,建议就不要用ConstrainedMax了。如果你用的是5.0以上的版本,可以用:
NMaximize[{3x1 + 2x2 + 2.9x3, {8x1 + 2x2 + 10x3 < -300, 10x1 + 5x2 + 8x3 < -400, 2x1 + 13x2 + 10x3 < -420}}, {x1, x2, x3}]。
结果是:
{-135.267, {x1 -> -22.5333, x2 -> -23.2, x3 -> -7.33333}}。
如果你用的是4.0以下的版本,那就建议你下载一个5.0以上的版本,然后还是用:
NMaximize[{3x1 + 2x2 + 2.9x3, {8x1 + 2x2 + 10x3 < -300, 10x1 + 5x2 + 8x3 < -400, 2x1 + 13x2 + 10x3 < -420}}, {x1, x2, x3}]。
因为4.0以下的版本线性规划的函数都只认非负数。
目前热门的语言有:C、C++、JAVA、VB、VC、FoxPro、Delphi、SQL、PHP、ASP、JSP等等。
专门有机构为编程语言进行排名,如下图:
java中的三种取整函数
1.Math.floor
floor,英文原意:地板。
Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的值肯定会小于或等于这个浮点数。
Math.floor(-1.1): -2.0 。
Math.floor(-1.5): -2.0 。
Math.floor(-1.6): -2.0 。
Math.floor(0.1): 0.0 。
Math.floor(0.5): 0.0 。
Math.floor(0.6): 0.0 。
Math.floor(1.1): 1.0 。
Math.floor(11.5): 11.0 。
Math.floor(15.7): 15.0。
Math.floor(-0.5): -0.0 。
2.Math.ceil
ceil,英文原意:天花板。
Math.ceil 函数执行的是 向上 取接近的整数,它返回的肯定会大于或等于函数参数。
Math.ceil(-1.1): -1.0 。
Math.ceil(-1.5): -1.0 。
Math.ceil(-1.6): -1.0 。
Math.ceil(0.1): 1.0 。
Math.ceil(0.5): 1.0 。
Math.ceil(0.6): 1.0 。
Math.ceil(1.1): 2.0 。
Math.ceil(1.5): 2.0 。
Math.ceil(1.6): 2.0 。
Math.ceil(-0.5): -1.0。
3.Math.rint
Math.rint 函数返回最接近参数的整数,如果有2个数同样接近,则会返回偶数的那个。
Math.rint(-1.1): -1.0 。
Math.rint(-1.5): -2.0 。
Math.rint(-1.6): -2.0 。
Math.rint(0.1): 0.0 。
Math.rint(0.5): 0.0 。
Math.rint(0.6): 1.0 。
Math.rint(1.1): 1.0 。
Math.rint(1.5): 2.0 。
Math.rint(1.6): 2.0。
4.Math.round
round 方法,我们通常会说这个方法表示”四舍五入”,但是当参数为负数时,就不太好理解。
所以,以源码的计算方式来理解会比较准确。
即将原来的数字加上0.5后再向下取整。
源码大意:
Math.round(x) = Math.floor(x + 0.5)。
Math.round(-1.1): -1 。
Math.round(-1.5): -1 。
Math.round(-1.6): -2 。
Math.round(0.1): 0 。
Math.round(0.5): 1 。
Math.round(0.6): 1 。
Math.round(1.1): 1 。
Math.round(1.5): 2 。
Math.round(1.6): 2。
binarypow函数各参数含义,函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z。
注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。
参数
x -- 数值表达式。y -- 数值表达式。z -- 数值表达式。
返回值
返回 xy(x的y次方) 的值。
实例
以下展示了使用 pow() 方法的实例:
#!/usr/bin/python。
# -*- coding: UTF-8 -*-。
import math # 导入 math 模块。
print "math.pow(100, 2) : ", math.pow(100, 2)。
# 使用内置,查看输出结果区别。
print "pow(100, 2) : ", pow(100, 2)。
print "math.pow(100, -2) : ", math.pow(100, -2)。
print "math.pow(2, 4) : ", math.pow(2, 4)。
print "math.pow(3, 0) : ", math.pow(3, 0)。
运行结果:
math.pow(100, 2) : 10000.0。
pow(100, 2) : 10000。
math.pow(100, -2) : 0.0001。
math.pow(2, 4) : 16.0。
math.pow(3, 0) : 1.0。
<BODY>
<script language="JavaScript">。
<!--
if (document.all){。
Cols=6;
Cl=24;//Space's are included so real length is 48!。
Cs=10;
Ts=10;
Tc='#008800';
Tc1='#00ff00';
MnS=20;
MxS=30;
I=Cs;
Sp=new Array();S=new Array();Y=new Array();。
C=new Array();M=new Array();B=new Array();。
RC=new Array();E=new Array();Tcc=new Array(0,1);。
document.write("<div id='Container' style='position:absolute;top:0;left:-"+Cs+"'>");。
document.write("<div style='position:relative'>");。
for(i=0; i < Cols; i++){。
S[i]=I+=Cs;
document.write("<div id='A' style='position:absolute;top:0;font-family:Arial;font-size:"。
+Ts+"px;left:"+S[i]+";width:"+Ts+"px;height:0px;color:"+Tc+";visibility:hidden'></div>");。
document.write("</div></div>");。
for(j=0; j < Cols; j++){。
RC[j]=1+Math.round(Math.random()*Cl); 。
Y[j]=0;
Sp[j]=Math.round(MnS+Math.random()*MxS); 。
for(i=0; i < RC[j]; i++){。
B[i]='';
C[i]=Math.round(Math.random()*1)+' ';。
M[j]=B[0]+=C[i];。
}
function Cycle(){。
Container.style.top=window.document.body.scrollTop;。
for (i=0; i < Cols; i++){。
var r = Math.floor(Math.random()*Tcc.length);。
E[i] = '<font color='+Tc1+'>'+Tcc[r]+'</font>';。
Y[i]+=Sp[i];
if (Y[i] > window.document.body.clientHeight){。
for(i2=0; i2 < Cols; i2++){。
RC[i2]=1+Math.round(Math.random()*Cl); 。
for(i3=0; i3 < RC[i2]; i3++){。
B[i3]='';
C[i3]=Math.round(Math.random()*1)+' ';。
C[Math.floor(Math.random()*i2)]=' '+' ';。
M[i]=B[0]+=C[i3];。
Y[i]=-Ts*M[i].length/1.5;。
A[i].style.visibility='visible';。
}
Sp[i]=Math.round(MnS+Math.random()*MxS);。
}
A[i].style.top=Y[i];。
A[i].innerHTML=M[i]+' '+E[i]+' ';。
setTimeout('Cycle()',20)。
Cycle();
// -->
</script>。
演示地址:
http://www.toto369.net/jdtx/hkdg.htm。
注:必须要有<body>标签~。