从行列式计算器浅谈信息和计算科学专业.doc

从行列式计算器浅谈信息和计算科学专业.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
从行列式计算器浅谈信息和计算科学专业

从行列式计算器浅谈信息与计算科学专业 数学学院信息与计算科学专业,一个被冠之于数学中的计算机矫楚,计算机行业数学精英之名,曾经在中国红火一时的强势学科。但如今,随着IT行业竞争压力的加大,该专业又被参差不齐院校胡乱开设,使得本专业学生不能如愿择业,相关企业又不能招到理想人才,造成两难境地。同时该专业学生又对自己专业不抱希望,学习任务变成了一种莫名的负担。这使本来应该是数学功底很牢固理性思维较强的专业学生在处理问题上却不尽人意。也许这是该专业的现状,但不是最终的结果。毕竟是数学专业,同时还有丰富的计算机课程进行拓展,我想我们还是有一定优势与潜力的。 几天来相继听了我校众位数学专家带来的数学讲座,有触动也有启发。多数内容以本专业课程为引导,简单介绍了该门课程的发展历史与现代应用。虽然并没有深入地讲解课程内容与专业知识,但使我们对即将要学的一些课程有了初步了解。不管是已经学过的高等代数还是将要学的运筹学与最优化问题,不管是深入浅出数学分析讲解还是环环相扣的概率论剖析,都充分展现着数学的魅力。 在此,我仅从本人曾经编写的一个程序入手,简单对专业问题进行谈论。 学过高等代数或线性代数的都知道,矩阵的一系列计算相当麻烦,尤其是当用笔算时那是相当费时费力。最早学行列式的时候我就想找一个能解决这些计算问题的程序,但最终未果。然在之后学习了C++面向对象程序设计课程后,我想应用高代知识加上一点编程技巧解决行列式计算问题应该算不了什么吧。事实总是不随人愿的,从最早计划开始并初步实施到最终完成的过程经历了数月,期间还是在不断对C++的深入了解,才使程序逐步完善到可行。 由于一阶二阶行列式的简单易算性,那么就先从三阶行列式做起吧。最容易想到的便是用定义去求解,也是我最早的想法。大致如下:由于当时并没有学到数列的记法,则分别设9个变量记做a1,a2...a9,并为了使计算更清晰添加了六个辅助变量记做m1,m2...m6,之后便是公式的套用: m1=a1*a5*a9; m2=a1*a6*a8; m3=a2*a4*a9; m4=a3*a5*a7; m5=a3*a4*a8; m6=a2*a6*a7; 行列式的结果就是:M=m1+m5+m6-m2-m3-m4。 这样虽然可以将三阶行列式的值准确无误的算出来,可是在程序的简易性和可扩展性上都有欠缺。也可以说纯粹是为了算三阶行列式而编写的。 那么当然不能满足于此,我便想更进一步尝试,起码也先要能算到四阶的吧。既然是计算高阶行列式,那么理所当然想到的是上三角行列式的应用计算。众所周知,所有行列式都可以化成上三角行列式的形式再使对角线上的数相乘便是其值。并且,目前几乎所有的笔算解题都是用这个方法。那用到程序中应该是毫无问题的吧。 但是情况并非所想的那样,所遇到的一系列问题都相当麻烦。首先是为了程序的简约型与可扩展性,我更换了键入方式,从之前的按行按列的直接键入改成按正方形法键入。自以为这样可以更加省时省力,使程序拓展性更强。然这种方法本身原理上是没有多大问题的,可是在实际操作上确是非常容易出错,也就是操作性十分不理想。不过这个问题并非是致命的。由于要把行列式转化成上三角行列式,必不可少的要涉及到这样的式子:a22-a12*a21/a11,a32-a12*a31/a11等。其中会出现a11作为被除数,然当a11等于0时,运行时便会出错。那么试着加一个if/else判断句来进行筛选变换呢,新的问题便来了。由于做被除数的元素不止一个,又或行变换后的值依然为0,使得必须动用大量的判断句。如此不仅没有使程序简化,还将问题弄得更加复杂晦涩。 如此一来我的工作基本就停在了这里。直到学习了数组的表示与函数的处理我才有了下一步的计划:用降阶公式求高阶行列式。方法如下,构建一个函数比如是求二阶行列式,为range_2(float b11,float b12,float b21,float b22)。而三阶行列式对于二阶行列式又有降阶关系公式进行联系,便可以将三阶行列式求值函数定义为: float range_3(float a11,float a12,float a13,float a21,float a22, float a23,float a31,float a32,float a33) { float A31,A32,A33; float M; A31=range_2(a12,a13,a22,a23); A32=range_2(a11,a13,a21,a23); A33=range_2(a11,a12,a21,a22); M=a31*A31-a32*A32+a33*A33; return M; } 依法炮制便可得出四阶、五阶

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档