数学建模-python递归、lingo解多元一次方程

这篇具有很好参考价值的文章主要介绍了数学建模-python递归、lingo解多元一次方程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在了解如何用python、lingo解多元一次方程问题之前我们先了解什么是递归,因为python解多元一次方程问题是递归算法的一个经典算法习题,也是python解多元一次方程问题用到的主要算法。

简单说程序调用自身的编程技巧叫递归。递归的思想是把一个大型复杂问题层层转化为一个与原问题规模更小的问题,问题被拆解成子问题后,递归调用继续进行,直到子问题无需进一步递归就可以解决的地步为止。

递归算法主要的难点:

1、如何将原问题转化为一个与原问题规模更小的问题。

2、递归的终止条件。

目录

问题描述:

目标描述:

算法思路:

代码实现:

按照上述思路python实现如下:

lingo实现如下:


问题描述:

python lingo,数学建模,python

目标描述:

 求解多元一次方程,列出这些解,并统计解的个数。

原问题可以看做为:

python lingo,数学建模,python的形式

算法思路:

从静态上看,单个的取值范围为。

从动态上看,已决定的对未决定的的范围有影响。

例如,在已经决定x的情况下,的上限从 变为。

问题的规模分布在两个维度上:

  • 变量的个数
  • 总和S 

一个成功的递归算法势必要以某种方式或方程的某种内在联系缩减需要考虑的变量个数以及总和S。

可以将方程的解分为两组:

  • ,此时相当于解为。
  • ,此时相当于解为。

 这种划分方式就是根据各方程之间的内在联系来进行划分,且产生的子问题分别在变量个数与总和上比原问题小。

递归下去到最底层就会触及到边界条件,边界条件为:

这种划分是不重复、无遗漏的,且产生的子问题分别在变量个数与总和上比原问题小。分解不断进行下去就会触及边界,边界条件是:

  • ,不是方程的解。
  • ,不是方程的解。
  • ,是方程的解。

代码实现:

按照上述思路python实现如下:

def solve(val, data):
    def solution(val, data):
        if len(data) == 0:
            return
        elif val < 0:
            return
        elif val == 0:
            xs.append(tuple(x))
            return
        else:
            solution(val, data[:-1])  # 减小变量个数
            x[len(data) - 1] += 1
            solution(val - data[-1], data)  # 减小val
            x[len(data) - 1] -= 1
            return

    x = [0] * len(data)
    xs = []
    solution(val, data)
    return xs,len(xs)


data = [57,71,87,97,99,101,103,113,114,115,128,129,131,137,147,156,163,186]
print(solve(1000,data))

lingo实现如下:

python lingo,数学建模,python

 因为lingo软件本身的限制,所以使用lingo进行求解,只能求出众多可行解中的一个可行解。文章来源地址https://www.toymoban.com/news/detail-823666.html

到了这里,关于数学建模-python递归、lingo解多元一次方程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Lingo软件入门【数学建模】

    enddata 约束条件区域 end 其中,每一个lingo程序文件都以一个model:开头,以一个end结束,中间的三个区域不是强制要求的,但对于数模中大部分涉及到lingo的题目,基本上三个区域都会使用。 II.II 集合区域 II.II.i 一维集合的定义 集合模块以sets: 开头,endsets 结尾,这是固定的格

    2024年04月11日
    浏览(46)
  • 【数学建模lingo学习】lingo解决规划问题1:投料问题

    lingo相较于matlab实现规划问题更加简洁,但无法实现多目标规划,如果不了解lingo可以去看以下视频了解: Lingo(1):基础篇——基本界面与解方程_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1CT4y177qS?spm_id_from=333.337.search-card.all.click 那么废话不多说,我在这里分享一道例题及解法

    2024年02月16日
    浏览(44)
  • 数学建模 --- Lingo 钢管下料问题

     题目: 原料钢管:每根19米 客户需求:4米50根,6米20根,8米15根 问题1:如何切割原料钢管剩余总余量最小? 方法1:直接摆数学公式。 方法2:集合和循环方式 结果图: 问题2:客户需求增加5米10根,如何保证用到钢材根数最少? 结果图: 总根数最少为28,x的取值及其切

    2024年04月10日
    浏览(45)
  • 数学建模1:lingo软件求解优化模型

    本次数学建模学习笔记系列,以代码学习为主,附带建模及论文亮点记录 由于队友为两位经济学小伙伴,因此以大数据类型题目为主要学习方向 注:论文代码资料来源网络 1、结构清晰(后附该论文前两问的目录结构) 2、lingo求解优化模型,涉及函数循环与求和 3、表格很好

    2024年02月08日
    浏览(61)
  • 数学建模--Lingo求解线性规划问题

    一 问题重述 1.1问题背景 工厂根据外部需求和内部设备,人力,原料等条件,以及最大利润为生产目标制定生产计划,根据生产计划,工艺流程,资源约束及费用参数等,以最小的成本为目标制定生产批量计划,若短时间外部需求和内部资源等不随时间的变化,可制定单阶段

    2024年02月12日
    浏览(39)
  • 数学建模——线性规划篇(lingo软件实现)

    (线性规划)习题 1.某工厂利用两种原料甲、乙生产A1,A2,A3三种产品. 每月可供应的原料数量(单位:t)、每万件产品所需各种原料的数量及每万件产品的价格如下表所示: 原料 每万件产品所需原料/t 每月原料 供应量/t A1 A2 A3 甲 4 3 1 180 乙 2 6 3 200 价格/万元 12 5 4 试制定每

    2024年02月08日
    浏览(40)
  • Lingo软件入门【数学建模】,腾讯T2大牛亲自教你

    下面的代码演示了这部分的内容: sets: supply/1…2/: s; !集合一,s是集合变量 demand/1…3/: d; !集合二,d是集合变量 link(supply,demand): road, g; !二维集合,road和g是集合变量 endsets data: road = 10,5,6,4,8,12; d = 50,70,40; s = 60,100; enddata II.IV 约束条件区域(逻辑部分) 通过一个@for函数(和@

    2024年04月09日
    浏览(51)
  • 【数学建模】-多元线性回归分析

    学习来源:清风老师 回归分析的任务就是,通过研究 自变量X和因变量Y的相关关系 ,尝试去解释Y的形成机制,进而达到通过X去 预测Y 的目的。 常见的回归分析有五类: 线性回归、0‐1回归、定序回归、计数回归和生存回归 ,其划分的依据是因变量Y的类型。 回归分析:研

    2024年02月05日
    浏览(65)
  • 数学建模-多元线性回归笔记

    1.学模型✅ 2.看专题论文并复习算法 多元线性回归 无偏性:预测值与真实值非常接近 一致性:样本量无限增大,收敛于待估计参数的真值 如何做:控制核心解释变量和u不相关 四类模型回归系数的解释 截距项不用考虑 一元线性回归:y = a + bx + u x每增加1个单位,y平均变化

    2024年02月12日
    浏览(37)
  • 数学建模:9 多元线性回归分析

    向前/后逐步回归筛选自变量 检验自变量之间是否多重共线性(计算VIF) 内生性、核心变量与解释变量 虚拟变量,个数 = 分类数 - 1,否则有多重共线性 stata软件 回归模型假设检验、回归系数假设检验与解释 自变量对因变量的影响程度:标准化回归系数 检验异方差(原始数

    2024年02月06日
    浏览(130)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包