Eigen求解数学问题(一)

  • 有这样的一个问题:
    • 求解过程:
    • 利用Eigen 求解:
    • 输出
    • 总结:

有这样的一个问题:

三个朋友A,B,C各饲养家禽,A养鸡,B养鸭,C养兔.
他们同意按照下面的比例分享各人饲养的家禽:
A得鸡的1/3,鸭的1/3,兔的1/4;
B得鸡的1/6,鸭的1/3,兔的1/2;
C得鸡的1/2,鸭的1/3,兔的1/4;

要求他们分享家禽之后所获得的收益与他们各自饲养家禽的
收益相等.同时各户的最高收益是二千元,则每户确定他们各
自的收益是多少?要求:
(1)列出问题的数学模型,并算出最终他们三人应得的收益;
(2)试写出相应的Eigen求解代码.

求解过程:

根据协议中每人分享饲养后总收益与各自饲养相等的原则,
分别考虑A、B及C的总收益.设他们三人应得收益分别为x1,x2,x3



尽管这一问题是在方程组的无穷多组解中寻求解答,但是由
于题目条件限制,对于参数k,没有更多的选择余地.
为了确定满足条件,x3=2000,故取k=2000,得:
x1 =1743, x2 = 1928, x3 = 2000
即他们三人的收益各自是1743元,1928元,2000元.

利用Eigen 求解:

1、在Qt 建立console控制台工程,在.pro 文件中添加 路径引用:INCLUDEPATH+=C:\Qt\Qt5.13.2\Tools\eigen\Eigen;

2、在.app 文件中添加如下代码:

#include<math.h>
#include <Eigen>
#include<iostream>
using namespace Eigen;
using namespace std;

3、主要关键代码:

/*三个朋友A,B,C各饲养家禽,A养鸡,B养鸭,C养兔.
他们同意按照下面的比例分享各人饲养的家禽:
A得鸡的1/3,鸭的1/3,兔的1/4;
B得鸡的1/6,鸭的1/3,兔的1/2;
C得鸡的1/2,鸭的1/3,兔的1/4;要求他们分享家禽之后所获得的收益与他们各自饲养家禽的
收益相等.同时各户的最高收益是二千元,则每户确定他们各
自的收益是多少?要求:
(1)列出问题的数学模型,并算出最终他们三人应得的收益;
(2)试写出相应的Eigen求解代码.求解:
将三个等式联立,可得描述实际问题的方程组.1/3 *x1 + 1/3 *x2 + 1/4 *x3  = x1
1/6 *x1 + 1/3 *x2 + 1/2 *x3  = x2
1/2 *x1 + 1/3 *x2 + 1/4 *x3  = x3即:-2/3 *x1 + 1/3 *x2 + 1/4 *x3 = 0
1/6 *x1 - 2/3 *x2 + 1/2 *x3  = 0
1/2 *x1 + 1/3 *x2 - 3/4 *x3  = 0
d*/int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);MatrixXd mat(3,3);Vector3d b ;mat << -2/3.0, 1.0/3, 1.0/4,1.0/6, -2.0/3, 1.0/2,1.0/2, 1.0/3, -3.0/4;cout << "Here is the matrix mat:\n" << mat << endl;// This assignment shows the aliasing problem//   mat.bottomRightCorner(2,2) = mat.topLeftCorner(2,2);//   cout << "After the assignment, mat = \n" << mat << endl;b << 0, 0, 0;//mat.nul;FullPivLU<MatrixXd> lu(mat);MatrixXd A_null_space = lu.kernel();  //求零空间MatrixXd::Index maxRow,maxCol;       //定义变量cout << "The A_null_space is:\n" << A_null_space<< endl;   //输出零空间向量A_null_space.maxCoeff(&maxRow,&maxCol);   //获取最大向量MatrixXd Xn = 2000/(A_null_space(maxRow,maxCol)) * A_null_space; cout << "The Xn is:\n" << Xn<< endl;  // 输出求解。return a.exec();
}

输出

总结:

 Eigen是C++中可以用来调用并进行矩阵计算的一个库,简单了说它就是一个c++版本的matlab包。最近项目开发中要用到矩阵的相关操作,找了些相关的数学问题来具体操作练练,这样的学习或许可以比较快的掌握Eigen库。
Eigen中提供了求解线性方程组的各种分解方法,但是对零空间向量的求解笔者也是费尽周折在琢磨出来。在学习Eigen库的过程中,除了对官方手册进行比较的中文注释外,我想最重要的还是莫过于多练习了。顺便可以将线性相关的数学内容温习温习。

Eigen求解数学问题(一)相关推荐

  1. Eigen求解数学问题(二)

    有这样的一个问题: 公司职工问题(特征值与特征向量的应用问题) 某公司为了技术更新,计划对职工实行分批脱产轮训. 已知该公司现有2000人正在脱产轮训,而不脱产职工有10000人. 若每年从不脱产职工 ...

  2. matlab求解数学题,Matlab求解数学问题

    Matlab 求解数学问题 如果看完之后还是对相关函数的运用不甚了解,请务必使用 help 查看更详细的帮助文档! 求解一元 n 次方程 例:求解一元二次方程 x^2+2*x+1 = 0 clc, c ...

  3. Matlab求解数学问题

    Matlab 求解数学问题 如果看完之后还是对相关函数的运用不甚了解,请务必使用 help 查看更详细的帮助文档! 求解一元 n 次方程 例:求解一元二次方程 x^2+2*x+1 = 0 clc, c ...

  4. matlab联立两个方程组求解,实验二 Matlab求解数学问题(终稿)2

    实验二 MATLAB求解数学问题 2.1实验目的 掌握MATLAB在大学数学问题中的基本应用,会使用MATLAB软件求解高等数学.线性代数和概率统计中的常见问题. 2.2实验要求 掌握MATLAB简单 ...

  5. 小行星轨道 matlab,小行星轨道问题的建模与求解数学建模论文.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp学术论文&nbsp>&nbsp自然科学论文 小行星轨道问题的建模与求解数学建模论文.doc6 ...

  6. MWPToolkit:统一化、模块化的PyTorch自动求解数学应用题算法工具库

    导读 作为近年来逐渐受到 NLP 社区关注的自动求解数学题领域,越来越多的小朋友开始对该领域投入关注.紧接着几个问题就开始困扰大家: 代码编写五花八门,让你很难复现: 实验设定无法统一,让你很难比较: ...

  7. Eigen 求解两个向量的夹角

      用Eigen求解两个向量v1v_1v1​和v2v_2v2​的夹角θ\thetaθ,由余弦定理可得如下公式: θ=acos(v1⋅v2/∣∣v1∣∣∣∣v2∣∣)\theta = acos(v_1\ ...

  8. 数学建模酶促反应matlab求解,数学建模——酶促反应.doc

    数学建模--酶促反应 数学建模 摘要 本文针对嘌呤霉素在某项酶促反应中对反应速度和底物浓度之间的关系的影响的问题,根据实际可知符合底物浓度与反应速度的模型有两种,即Michaelis-Menten模型 ...

  9. 基础知识(十一)Eigen求解稀疏矩阵

    Eigen这个库,早在研究生阶段的时候,就用到烂了,因为三维的图形算法经常要涉及到求解稀疏矩阵.然而工作一年都没碰到Eigen,突然今天要用到求解稀疏矩阵最小二乘方程组,变得有点陌生了,惭愧,因此简单 ...

最新文章

  1. 布尔(bool)值需注意事项
  2. 引号(反引号、$()符号)
  3. 第六章 数组和索引器 (6.6 索引器)
  4. Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决
  5. 数论 —— 高次同余方程与 BSGS 算法
  6. php mongo 范围查询语句,【MongoDB】数组和范围查询的相互作用
  7. raspberry pi_我如何使用Raspberry Pi与孙辈联系
  8. 消息中间件学习总结(5)——RocketMQ之Apache RocketMQ背后的设计思路与最佳实践
  9. linux安装jdk8_JDK1.8安装手册汇总
  10. Duplicate zip entry
  11. 老实人的摸索与反思——写在高考七年后
  12. android跳转到rn界面,第五章 RN与Native—由原生页面跳转到Rn页面;在Rn页面调用Android Native组件和Native数据...
  13. 云原生时代,如何保证容器镜像安全?
  14. CUDA11.4、CUDNN、Pytorch安装
  15. 计算机 竞赛 甘肃,甘肃省第三届创新杯计算机应用能力大赛获奖名单
  16. 2018吉林CCPC(HDU6555)A.The Fool
  17. 【中科院】分子生物学-朱玉贤第四版-笔记-第7-8讲 翻译
  18. Tensorflow2.*教程之使用Tensorflow Hub 对IMDB电影评论数据集进行文本分类(2)
  19. 舌尖上的创业者:吃货小分队CEO Amy Duan|伯斯人物志
  20. react 使用 useEffect 及踩坑

热门文章

  1. MATLAB函数记录
  2. leetcode_two sum()
  3. [云炬学英语]每日一句2020.9.5
  4. 2-2 人工智能的前景|人工智能框架TensorFlow应用实践笔记
  5. Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意
  6. $(@:_config=)的意思
  7. Python命名空间和作用域
  8. 实验五 编写、调试具有多个段的程序
  9. Photoshop画笔的混合算法实现(逆推)
  10. 【快乐水题】509. 斐波那契数