Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 找到满足不等式约束的离散对{x,y}

关于{x,y} ,我有一些不等式,它满足以下方程式:

x>=0 y>=0 f(x,y)=x^2+y^2>=100 g(x,y)=x^2+y^2=100 and x^2+y^2= 1e12 x^4 + y^4 = 0, y >= 0 解决该系统的所有整数解。请注意,此处以ANY形式进行整数编程是不够的,因为需要所有整数解。

在这里使用meshgrid将迫使我们查看域(0:10000)X(0:10000)中的点。因此,这将迫使我们对一组1e8点进行采样,测试每个点以查看它们是否满足约束条件。

尽管仍然需要一些努力,但简单的循环可能比这更有效。

% Note that I will store these in a cell array, % since I cannot preallocate the results. tic xmax = 10000; xy = cell(1,xmax); for x = 0:xmax % solve for y, given x. This requires us to % solve for those values of y such that % y^3 >= 1e12 - x.^3 % y^4 0 xy{x+1} = [repmat(x,1,n);y]; end end % flatten the cell array xy = cell2mat(xy); toc 所需时间是...

Elapsed time is 0.600419 seconds. 在我们可能测试过的100020001个组合中,找到了多少个解决方案?

size(xy) ans = 2 4371264 诚然,穷举搜索更容易编写。

tic [x,y] = meshgrid(0:10000); k = (x.^3 + y.^3 >= 1e12) & (x.^4 + y.^4
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 04:58


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.