首页 > 其他分享 >每日一题【20200727】

每日一题【20200727】

时间:2022-10-10 22:24:01浏览次数:72  
标签:p0 end 每日 matlab mengte 20200727 x0


title: 每日一题【20200727】
excerpt: 第六天建模打卡
tags: [数学建模, 线性规划, intlinprog, 0-1规划]
categories:


非线性规划

题目来源:csdn jiejiexiao

matlab随机取样计算法解决非线性整数规划

matlab代码:
(1)编辑mengte.m文件
%目标函数f,约束条件g
function [f,g] = mengte(x)
f = x(1)^2 + x(2)^2 + 3*x(3)^2 + 4*x(4)^2 + 2*x(5)^2 - 8*x(1) - 2*x(2) - 3*x(3) - x(4) - 2*x(5);
g(1) = sum(x) - 400;
g(2) = x(1) + 2*x(2) + 2*x(3) + x(4) + 6*x(5) - 800;
g(3) = 2*x(1) + x(2) + 6*x(3) - 200;
g(4) = x(3) + x(4) + 5*x(5) - 200;
end
(2)matlab执行代码
%非线性整数规划----枚举法--随机取样计算法--有误差
%tic和toc用来记录matlab命令执行的时间。
%整数问题最好用Lingo-----可每次将 p0 改为最大值
tic
p0 = 0;
for i = 1 : 10^5
    x = 99 * rand(5,1);                 %0 <= x <=99
    x1 = floor(x);  x2 = ceil(x);       %取整
    [f,g] = mengte(x1);
    if sum(g <= 0) == 4
        if f >= p0
            x0 = x1;
            p0 = f;
        end
    end
    [f,g] = mengte(x2);
    if sum(g <= 0) == 4
        if f >= p0;
            x0 = x2;
            p0 = f;
        end
    end
end
x0,p0
toc

答案是:

x0 =
    27
    98
     5
    99
     1
p0 =
       49086
历时 0.770322 秒。

参考

标签:p0,end,每日,matlab,mengte,20200727,x0
From: https://www.cnblogs.com/baixf-xyz/p/16777637.html

相关文章

  • 每日一题【20200726】
    title:每日一题【20200726】excerpt:第五天建模打卡tags:[数学建模,线性规划,intlinprog,0-1规划,匈牙利算法]categories:[学习,数学建模]index_img:http......
  • 每日一题【20200722】
    title:每日一题【20200722】excerpt:第一天建模打卡tags:[数学建模,线性规划,linprog]categories:[学习,数学建模]index_img:https://picture-store-reposi......
  • 每日一结
    剑指Offer48.最长不含重复字符的子字符串读懂题意,子字符串不含重复字符。说白了就是,找到两个相同的字符求其间长度。剑指Offer49.丑数这道题难点在于,想到他是要......
  • 每日一结
    剑指Offer67.把字符串转换成整数首先trim()一下。然后然断一下第一个char是'+'||'-'||Chara.isDigit();再细判断符号;然后一个细节://删除首位s=Arrays.copyOfR......
  • 每日一节
    今日小节汇总文件操作利用python代码的编写来读写文件文件的概念文件的操作方式文件读写模式文件操作模式文件诸多方法文件内容修改文件光标移动详解文件......
  • C语言每日一题——第十二天
    第十二天小明今天要挑战一下算法!他的算法第一课是:二分查找。小明随意设置了一个函数:\(y=x^2+2x-1,x\in(-10^4,10^4)\)。他将使用二分法,找出给出的数字所在区间,精度为\(\p......
  • 每日一结
    576.出界的路径数采用剪枝和记忆搜索的方法。当加上dir之后的坐标值,越界时,说明找到了出路,此时return1;当没有移动步数的时候,直接return0;当当前的坐标值加/减移动步数......
  • C语言每日一题——第十一天
    第十一天还记得在第三天写的斐波那契数列程序吗?小明最初想用这个函数作为随机数生成器的。今天,小明决定重新拾起这个函数,用于生成随机数……输入程序在运行时通过getcha......
  • 每日一结
    2.01背包问题初始化物品多一行,价格多一列。ans[0][0]=0;26.删除有序数组中的重复项采用双指针的做法。left=0for(intright=1;right<nums.length;right......
  • 每日总结
    20221007前些天系主任让我们进行民航机票代理市场的预测及可视化题目如下:石家庄铁道大学2022年秋季  20020 级课堂测试试卷-HIVE数据分析课程名称: 大型数据库应用......