数学建模由鸡兔同笼问题抽象出的一类线性方程组的解法并用代码进行实现
更新时间:2023-05-11 19:53:01 阅读量: 实用文档 文档下载
由鸡兔同笼问题抽象出的一类线性方程组的解法并用代码进行
实现
摘要:
线性方程组的解法,早在中国古代的数学著作《九章算术 方程》章中已作了比较完整的论述。其中所述方法实质上相当于现代的对方程组的增广矩阵施行初等行变换从而消去未知量的方法,即高斯消元法。在西方,线性方程组的研究是在 17 世纪后期由莱布尼茨开创的。他曾研究含两个未知量的三个线性方程组组成的方程组。麦克劳林在 18 世纪上半叶研究了具有二、三、四个未知量的线性方程组,得到了现在称为克莱姆法则的结果。克莱姆不久也发表了这个法则。 18世纪下半叶,法国数学家贝祖对线性方程组理论进行了一系列研究,证明了n元齐次线性方程组有非零解的条件是系数行列式等于零。
大量的科学技术问题,最终往往归结为解线性方程组。因此线性方程组的数值解法在计算数学中占有重要地位。本文将对一般线性方程组的解法进行探究。
关键字:线性方程组、高斯消元、矩阵
相关知识: 高斯消元法:
基本思想:用逐次消去未知数的方法把原方程组化为上三角形方程组进行
求解。
求解分为两步:
1、 消元过程:用初等行变换把原方程组的系数矩阵化为上三角形矩阵。 2、 回代过程:对上三角方程组的最后一个方程求解,将求得的解逐步往上
一个方程代入求解。
一、问题的提出
大约在1500年前,我国古代数学名著《孙子算经》中记载了一个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?” 这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。问笼中各有几只鸡和兔?
古人在《孙子算经》中是这样解决这个问题的:假设让鸡抬起一只脚,兔抬起两只脚,还有94÷2=47只脚;这时每只鸡一只脚,每只兔两只脚,笼子里只要有一只兔,则脚的总数就比头的总数多1;这时脚的总数与头的总数之差47-35=12,就是兔的只数。
这个问题虽然很容易就得到了解决,但是在继续进行“龟鹤同游”和“人狗同行”问题的研究时,我们发现 “鸡兔同笼”不只是代表着鸡、兔同笼的问题,
有很多类似的问题都可以看成是“鸡兔同笼”问题,如牛鸡问题、汽车和自行车的轮子问题等等。
所以,我们对这类问题进行抽象,以找出这一类问题的解法。
二、问题分析
对于“鸡兔同笼”问题不用方程的思想可以这样认为:
假设全是鸡:2×35=70(只), 比总脚数少的:94-70=24 (只) 兔:24÷(4-2)=12 (只) 鸡:35-12=23(只)
将“鸡兔同笼”问题中的“鸡”和“兔”分别抽象为“x”和“y”,于是上述问题转化为求解二元一次方程组:
针对“鸡兔同笼”的实际问题,其中假设的“x”和“y”都必须是非负整数,实际生活中的问题的解并不都是这样整齐的,于是我们继续将这个问题一般化,这一类的所有问题都可以归结为解方程组:
即Ax=b
其中,A=错误!未找到引用源。,b= 错误!未找到引用源。错误!未找到引用源。
对比看:这样,就将与“鸡兔同笼”同类问题抽象为求二元一次方程组的解的问题。利用以前所学习过的知识,上述问题很容易求得答案。于是这一类问题很容易的得到解决。
而在实际生活中,只存在两个变量的问题是很少的,例如下面的问题:
营养减肥食谱
剑桥减肥食谱——用33种食物精确提供31种营养现仅考虑三种食品三种营
同样将变量抽象为数学符号,设这三种食物的量分别为x1,x2,x3。 可列方程组:
其增广矩阵B为:
36511333 B 52347445
071.13
用高斯消元法对矩阵化简:
347445 52
B 027.46 38.231.85
0010.852.53 回代得解:x1=0.277,x2=0.392,x3=0.233.
为了提供所需要的蛋白质、碳水化合物和脂肪总量,食谱中需要包含0.277
单位的脱脂牛奶,0.392单位的大豆粉,0.233单位的乳清. 由上面问题可以看出,将问题抽象为数学符号并用二元一次方程组和三元一次方程组的方法求解会使问题更加清晰,把事物符号化也更容易向别人解释阐述。
三、问题的推广
在实现了三元一次方程组求解之后,我们希望找到更复杂问题的解,于是将方程推广为n元
其中的未知数。
如果用线性代数中的概念来表达,则线性方程组可以写成:
以及等等是已知的常数,而等等则是要求的
由于方程与未知数较多,计算较为复杂,为了更高效的求解,我们利用高斯消元法的思想用c语言编写程序,实现对n元线性方程组的求解。
四、程序代码
#include<math.h> #include<stdio.h> #define MAX 10
float a[MAX][MAX+1] ,ark; int r,n;
jiaohuan(int r,int k) {
float b; int i,j;
for(i=1;i<=n+1;i++) { }
for(i=1;i<=n;i++) {
for(j=1;j<=n+1;j++) b=a[r][i]; a[r][i]=a[k][i]; a[k][i]=b;
printf(" %fl",a[i][j]);
}
printf("\n");
}
printf("\n");
}
float maxr(int k) { int i; double zhu=0; for(i=k;i<=n;i++) { if(fabs(a[i][k])>zhu) { zhu=fabs(a[i][k]); r=i;
}
}
return zhu;
} main()
{ float x[MAX]; int k,i,j;
printf("\n高斯列主元消元法解线性方程组"); printf("\n 请输入方程组的维数:n="); scanf("%d",&n);
printf(" \n\n请输入系数矩阵a:\n"); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { printf("请输入a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
}
for(i=1;i<=n;i++)
{ printf("\n请输入b[%i]=",i);
scanf("%f",&a[i][n+1]);
}
for(k=1;k<=n-1;k++) { ark=maxr(k); if(ark==0)
{ printf("\n系数为零错误,即将退出!"); }
else if(r!=k)
jiaohuan(r,k);
for(i=k+1;i<=n;i++) { for(j=k+1;j<=n+1;j++) { a[i][j]=a[i][j]-a[k][j]*a[i][k]/a[k][k]; }
}
for(i=k+1;i<=n;i++) { a[i][k]=0; }
for(i=1;i<=n;i++) { for(j=1;j<=n+1;j++) { printf(" %fl",a[i][j]); }
printf("\n");
}
printf("\n");
}
x[n]=a[n][n+1]/a[n][n]; for( k=n-1;k>=1;k--) { float me=0; for(j=k+1;j<=n;j++)
{ me=me+a[k][j]*x[j];
}
x[k]=(a[k][n+1]-me)/a[k][k]; }
printf("\n回代求得:\n"); for(i=1;i<=n;i++)
{ printf(" \tx%d=%f",i,x[i]); }
printf("\n"); }
在VC++6.0上运行程序,试解一个四元一次方程组
得到结果如下:
-8-
五、优缺点及改进方法
用线性方程组可以清晰的表示现实事物,较准确的对多种事物进行分类。但是,线性方程组的解也有可能无解、可能有无穷个解,解的具体情况还需进一步讨论。同时,多元的线性方程组较难求解,用计算机可以快速计算出结果;需要进一步研究的是提高运算精度,减小误差。
六、参考文献
[1]黄明游等,《数值计算方法》.北京:科学出版社,2011。 [2]姜启源等,《数学模型》.第三版.北京:高等教育出版社,2003。 []
正在阅读:
数学建模由鸡兔同笼问题抽象出的一类线性方程组的解法并用代码进行实现05-11
企业双薪和年终奖的税务处理08-26
实验4指导书 555定时器电路设计08-24
2015届高考语文二轮黄金考点汇编 : 考点1 字音 Word版含答案04-07
物流管理与信息系统课件第十一章 汽车4S店配件库存管理信息系统04-22
2013年氯化钙市场行情分析10-25
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 方程组
- 数学建模
- 解法
- 线性
- 并用
- 抽象
- 一类
- 代码
- 实现
- 进行
- 问题
- 历史七年级上册 第5课 公元纪年法 导学案
- 滇西抗日战争史
- 加强履职能力 创新工作方法
- 1-3 线段的垂直平分线(2)三角形的垂心
- 自主管理_主题班会(1)
- 新福克斯刷车教程20160214
- 2016《外国文学专题》形成性考核册试题及答案(电大考试)最新版 考试必过
- 学习雷锋精神主题班会
- 建筑与结构分部工程质量自评报告
- 【最新版】《兽医寄生虫学》网上作业与课程考试复习资料(全)
- 绿色金融研究述评_邓翔
- 九年级语文期中阶段性测试
- 炉石传说作死流牧师成为传说解读
- 2013年天线设备市场分析报告
- exp使用方法及实例
- 全国幽门螺杆菌感染处理共识报告
- 小学数学二年级2011.11.10
- Freesurfer Processing Steps
- android新手入门基础集合
- 通用技术设计分析题