问题标题:
使用mathematica求解多元不等式整数解出错,tt={10.11,14.31,17.48,25.99};i=0;Do[m1=(tt[[i]]-d[[1]])*(tt[[i]]-d[[1]])/c[[1]]/c[[1]];Reduce[{m1-1≤39.1*k+16*o+14*n+10.8*b≤m1+1,k≥0,o≥0,n≥0,b≥0},{k,o,n
问题描述:
使用mathematica求解多元不等式整数解出错,
tt={10.11,14.31,17.48,25.99};
i=0;
Do[m1=(tt[[i]]-d[[1]])*(
tt[[i]]-d[[1]])/c[[1]]/c[[1]];
Reduce[{m1-1≤39.1*k+16*o+14*
n+10.8*b≤m1+1,k≥0,o≥0,n≥0,b≥0},{k,
o,n,b},Integers],{i,1,4,1}]
这段代码是想分别用tt的五个元素,求解满足不等式的k,n,o,b的整数解,可是一执行语句就报错……为什么?
d[[1]]和c[[1]]是两个参数,在这里无关紧要,换成两个任意常数就行了,我这里是-2.846和3.294。tt这个列表里有四个元素,我的目的是在分别以这四个元素为参量的情况下求解我所给出的不等式的整数解,但是会报错。大家运行一下这段程序就明白了。提示信息的大意是mathematca无法精确求解。
话说这个其实昨天后来我也解决了。我在m1的外面加了个取整函数,又把整个不等式都乘了个10后就不会报出这个错了。(由此看来mathematica在整数规划方面并不是很强啊……)但现在产生了一个新的问题。
修改后的语句,若是把其中的Reduce部分挖出来单独运行,是可以得出结果的,但是若是放在Do里面,Reduce所得的结果就无法输出了……这是为什么?
卜飞宇回答:
请给完整的程序,并且把题目描述清楚,报什么错误也要写出来啊
点击显示
数学推荐
热门数学推荐