- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
maple矩阵求解7
。
在载入这个工具包时产生了两个警告,不用为此担心,这是因为Maple系统中已有的两个函数——norm和trace被linalg中的同名函数所覆盖了。原来系统中这两个函数分别是用于计算多项式的范数(norm)和程序调试跟踪的,一般情况下,在解决线性代数问题时用不到。如果确实要用系统中的库函数,可以再用readlib将其重新载入进来。
linalg中的主要函数的详细介绍我们将留到本章第三节中完成,在这一节中,我们主要着眼于矩阵的基本运算,比如加法、乘法和乘幂等。我们先用上一章中介绍过的方法来定义一些矩阵:
矩阵的代数运算最直接而且直观的方法莫过于使用函数evalm( )了,只要把矩阵的代数计算表达式作为它的参数,就可以得到结果的矩阵。
矩阵和标量也可以直接作和差。但要注意的是,和Matlab以及Fortran90中的相应的运算定义不同,在Maple中,矩阵和标量相加(相减),被定义成矩阵的对角元和标量分别相加(相减),也就是矩阵加上(减去)和它相同形状的数量阵。请看下面的例子:
还需要说明的是,运算符“*”仅仅用来表示数乘,对于矩阵乘法,绝对不能使用。这是因为,运算符“*”在Maple中被定义成满足交换律的乘法,而我们知道,矩阵乘法是不满足交换律的。我们可以通过简单的例子来说明这个事实。
可以看到,Maple在化简表达式时,丝毫没有顾及它们的类型,只把它们作为一般的符号变量来计算,甚至不考虑这些矩阵是否可以相乘或相加。如果我们用evalm来计算,也就得不到正确的结果了。在Maple V Release 4及以后的版本中,程序设计者考虑到用户初次使用时可能对此不了解,特别给除了错误信息。
但如果你使用的是早期版本,就不但没有错误信息,还会给出错误的结果,使用时一定要特别注意。上面的错误信息告诉我们,矩阵/向量运算必须使用*作为乘法运算符。让我们再来试一试。
这次,我们得到了期望的结果。
矩阵也可以进行乘幂运算,矩阵的乘幂运算符和单个表达式的相同——“^”,当然,也需要用evalm来计算得到结果矩阵。
Maple不仅可以计算矩阵的自然数次幂,同样也可以计算矩阵的负整数次幂。
在计算矩阵的0次幂时,却不怎么令人满意,它的结果令人啼笑皆非:
这是由于Maple的表达式自动化简机制造成的,B^0在还没有进入evalm函数之前,就已经被系统化简成了1!
矩阵乘法运算符“*”有着和数乘“*”、除法“/”相同的优先级,在输入表达式是需要注意,必要时要使用括弧。
还好,Maple没有再次给出1,Maple用“*( )”来表示单位阵。
矩阵求值
我们早在上一章中就已经注意到,数组和单个的表达式不同,具有数组类型的变量不会自动求值,而需要用eval( )等函数的显式调用来强制地求值。作为数组的特例,矩阵和向量也是一样。更令人吃惊的是,当我们用whattype来查看数组变量的表观数据类型时,返回的居然是符号类型(symbol),和被赋值之前一样!
然而,通过进一步的试验你还会发现,即使用eval( ),还是没办法让矩阵的每一个元素都求值。只有通过我们在上一章中用过的函数map,才可以完成最终的求值。
同样的情况也发生在以查找表(table)和函数或子程序(procedure)为类型的对象上:
在处理这些类型的对象时,Maple采取的是按名求值的方法,而不是像对于单个表达式时采取的完全求值的方法。所谓“按名求值”,是指系统在计算是只将变量的名称代入进行计算,而不读取该变量名所指向的数据。如果需要得到变量名所指的值,则必须强制使用eval甚至是map和eval并用。通过一个简单的例子,也许可以更容易地理解这种求值方式。
我们通过对T的不同层次的求值,获得了不同的对象,很明显,在Maple内部,数据结构是用类似于下图的方式组织的:
如果我们用系统的自动求值,则只能到Q的一层为止,就好象从Q指向数组的指针上有一道难以逾越的屏障:
不管我们怎么赋值,T、P、Q这些变量总是直接或间接地指向同一个数据对象,因为在赋值时,用的也是“按名求值”。用面向对象的观点来看,它们都这个矩阵变量的引用,而不是它的一个拷贝。当我们修改了其中任意一个变量的元素时,其他变量的元素也会跟着改变。在这上面,Maple和有一点向一些面向对象的编程语言,比如Java,但和C++是不同的。
当然,有时候我们要的是一个矩阵的拷贝,我们将改变这个拷贝的原素值,而同时保持原来的矩阵不变;这时,我们需要用Maple的拷贝函数copy( ),它可以用来拷贝这些“按名求值”的对象。
矩阵和线性方程组
linalg是Maple中的线性代数工具包,有着很全面的线性代数计算工具。那它里面到底有些什么工具呢?你可以试试在载入它时,不用冒号而是用分号结尾,那样,它的所有函数就会被一一打印出来。这可是一个长长的有序表
您可能关注的文档
- 公共营养师四级题目答案9.doc
- 公务员信息采集表格.doc
- 公务员录用考试(不同省份题目顺序可能不一致)9.doc
- 公务员面试·找工作面试·交往面试·社会强人必看1.doc
- 公务员行测选词填空每日一练()9.doc
- 公司两级机关一般管理干部培训班口语表格达.ppt
- 公司员工岗位职责1.doc
- 公司总监部门经理岗位季度考评表格.doc
- 公司注册资本最新规定9.doc
- 公司注销登记材料范本1.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 党课讲稿:坚持以人民为中心的发展思想.doc VIP
- 幼儿园 中班数学《排排队—高矮长短排序》.pptx VIP
- (高清版)B-T 7025.1-2023 电梯主参数及轿厢、井道、机房的型式与尺寸 第1部分Ⅰ、Ⅱ、Ⅲ、Ⅵ类电梯.pdf VIP
- 房屋租赁合同--2.doc VIP
- 2023星闪无线短距通信技术(SparkLink1.0)产业化推进白皮书.docx
- 大学生就业教育主题班会.pptx
- 2023届合肥高三二模作文“言与行”导写及范文.docx
- 《网络信息辨真假》(共12张PPT).pptx VIP
- 党纪学习教育六大纪律研讨发言提纲.docx VIP
- 湘少版小学英语修订教材解读.pptx VIP
文档评论(0)