1 国内的教程的现状

初学一门软件或者语言,大多需要借助教程,教程有一个好处是较为系统. 在新世纪之初尤其是02-03年国内翻译或者著作了非常多的Maple教程,可是几乎步调一致地停止在06年。

比如下面科学出版社的Maple教程写的相当不错,作者是计算机代数出身的,出版年份是2006年。时隔了14年,一些原理还是适用,但是随着Maple版本的更新书上很多命令已经过于老旧而不能使用,还有当时的一些缺陷也有所改进。作者估计也没有时间和精力去出新版。国内继续介绍并且维护的Maple交流平台也微乎其微,这些事情应该交给年轻一代人去做。Maple中国官方说实在的努力程度相当不够!

本专栏到现在为止已经写了不少高质量的文章,其中解梦亦解忧关于符号推导的介绍淋漓尽致地展示了Maple符号计算方面的优越性。星萤火分享了自己学习时有效的命令,其中冷冻一个表达式的操作非常棒,我在之前也介绍了一些诸如常规编程入门,玩转矩阵,Maple积分的是是非非等等方面。这些大家的关注度还是挺不错的。 后面我把重心进行了转移,更多关注Maple常用命令如何用好用活, 解决实际问题。我将猎物锁定为上面的这本书,我将按照个人的兴趣做新的非官方的解释。其中会补充说明更多现在版本的命令用法。这当然没有经过两位作者的同意,这令人忐忑不安。今天主要讲书中第5章的解方程的内容。额外说明: 我本人目前对Maple靠近底层的符号计算更加感兴趣。如果你也对这方面感兴趣,或者你本身就是这方面的专家,也非常欢迎投稿,相互学习。我们不是营利性组织,而更多地是高校里松散的爱好者,目前我们的目标是改善国内Maple的使用环境和提高使用水平。这将会耗费我们不少空闲乃至学习的时间,但这一切都是值得的.

2.1 解方程

2.1.1 符号解

1 解的结果不输出怎么回事?

求方程的解基本格式:solve(equations, variables)方程右端为0可以省去不写.

solve({x^2-1},{x})

或者

solve(x^2-1,x);

下面说一个经常碰到的问题,运行下面代码:

solve({x + y = -1, 2*x + 2*y = 4}, {x, y})

你会发现屏幕毫无反应,所以有的群友会问,solve怎么这么不稳定好多这样的例子不运行!其实仔细观察这个方程就会发现这两个方程是矛盾方程,压根没有解,或者说它的解集是空集。我们用s储存它

s:=solve({x + y = -1, 2*x + 2*y = 4}, {x, y})

或者

{solve({x + y = -1, 2*x + 2*y = 4}, {x, y})}

就明白了。

2 看不清解的结构?-公共的子表达式替换实现问题

书本说的 MapleV的解中有复杂表达式时候,将会用缩写形式代表公共的子表达式。Maple6之后不再这样处理了,而是直接甩出结果。我们试着在Maple2020运行看看:

eqn:=x^3-5*a*x^2+x=1;

s:={solve(eqn,x)}:

第一个解:

第二个解:

第三个解:

我们只需做一个替代即可处理如下:

Repexpr:=-108*a+108 + 1000*a^3 + 12*sqrt(1500*a^3 - 75*a^2 - 270*a + 93)=b

applyrule~(Repexpr,s):

其中

3 对于5次及其上方程的根

依据伽罗华理论,对于5次及其上方程,通常不能够求出其符号解。Maple采用RootOf方式,这一点要格外注意。这样的做法有时候反而更能看清楚根的性质。有的同学一遇到这个就非要处理成代数表达式,此时需要注意有两种情况,第一种它的确可以.比如:

M:=b^4+12*b^2+22*b^2-20*b+1

s:=solve(M,{b}):

s1:=allvalues(s[1])#第一个解展开看看

或者

e2 := RootOf(_Z^3 - 1);

allvalues(e2)

第二种数学上就无法求得符号解的形式!用allvalues也无效!

s:=solve(x^5+2*x+4=0,x);

2.1.2 解的检验

书本91页-93页主要讲如何进行检验解的正确性。检验是非常重要的,这是无容置疑的。作者在92页提到方程

通过检验出Maple的解并不正确。那么Maple2020还会出同样的问题吗?

expr:=(x-1)^2/(x^2-1):

soln:=solve(expr,x);

虽然这个个案依已经不存在这个问题了,但是检验还是需要的。毕竟Maple基于某种计算机代数方法,不可避免出现一些bug. 即使是人也免不了要出错,何况目前还需完善的计算机代数系统。

2.1.2 部分三角方程的通解

大多数情况处理超越方程不是一些容易的事情,Maple能够解部分特殊的超越方程。

解三角方程往往只求一个特解,如果想求通解,一般有两种办法,第一种还是用书上的_EnvAllSolutions:=true:第二种在solve命令里面加allsolutions.

solve(sin(x)=cos(x),x,allsolutions);

书本上解释了通常情况的参数代表的含义,比如上面的

代表整数。93页论述部分有失偏颇。

这里的可能病态我读的时候很困惑,不知道具体含义是什么。先说说现在Maple2020对于书本说的

假设已经做了完善,至于哪个版本改善的我已经无从查考,即使查考意义也不大。遗憾是simplify还是没有得到想要的1/2.

s:=solve(sin(x^2)=1/2,allsolutions);

about(_Z1); #Originally _Z1, renamed _Z1~: is assumed to be: integer

about(_B1); #Originally _B1, renamed _B1~: is assumed to be: OrProp(0,1)

test:=simplify(subs(x=s[1],sin(x^2)))

当然我们可以采用有限的选取符合要求的

进行验证

restart;

s:=solve(sin(x^2)=1/2,allsolutions);

# Convert the above solutions to applicable

# functions

#

tf:=unapply~(sin~(simplify~([s]^~2)), _B1,_Z1);

#

# Evaluate both of these functions for _B1 in {0,1}

# and _Z1 any value from -10..10

#

seq

( seq

( tf(i,j)[],

i=0..1

),

j=-10..10

);

但是这样做还不能说是完整!我们用expand 命令起到了神奇的效果!说明这样的解并不是作者所说的病态,只不过是简化命令simplify还不够智能。

seq(expand(eval(test,_B1=v)), v=0..1);

今天就到这,未完待续!

maple 假设_Maple教程-第5章解方程讲解上相关推荐

  1. maple 假设_maple 教程

    1 初识计算机代数系统Maple 1.1 Maple简说 1980年9月, 加拿大Waterloo大学的符号计算机研究小组成立, 開始了符号计算在计算机上实现的研究项目, 数学软件Maple是这个项目 ...

  2. (转)JAVA AJAX教程第三章—AJAX详细讲解

    现在开始深入AJAX,这里还是按老思路,理论和实践相结合.这章的内容主要是讲解AJAX步骤详解,下一张将会用一个AJAX技术实现页面提示效果的实例来说明AJAX的实现. 一.AJAX步骤详解 AJAX ...

  3. 怎样用计算机求方程组,【教程】用计算器解方程(牛顿法)

    一.前言 很多计算器都自带利用标准式解方程的功能,解方程式,需要手动输入abc的值.但这样往往需要化简出abc到底是多少,这样容易计算错误,还加大了计算量,往往在注册考试中不实用.下面我介绍一个直接的 ...

  4. maple 假设_Maple在假设检验中的应用.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp统计学 Maple在假设检验中的应用.pdf3页 本文档一共被 ...

  5. maple 假设_Maple常用计算命令..

    常用计算命令 < Maple 指令> 7.0 版本 第 1 章 章数 1.1 复数 Re,Im - 返回复数型表达式的实部 / 虚部 abs - 绝对值 函数 argument - 复数的 ...

  6. maple 假设_maple基本函数

    第 1 章 章 数 1.1 复数 Re,Im - 返回复数型表 达式的实部 / 虚部 abs - 绝对值 函数 argument - 复数的幅角函数 conjugate - 返回共轭 复数 csgn  ...

  7. maple 假设_Maple 常用计算命令

    Maple 常用计算命令 < Maple 指令> 7.0 版本 第 1 章章数 1.1 复数 Re,Im - 返回复数型表达式的实部 / 虚部 abs - 绝对值函数 argument - ...

  8. maple 假设_Maple常用计算命令

    常用计算命令 < Maple 指令> 7.0 版本 第 1 章 章数 1.1 复数 Re,Im - 返回复数型表达式的实部 / 虚部 abs - 绝对值 函数 argument - 复数的 ...

  9. 网络营销教程—SEO 第一章 网络营销 (上)

    网络营销是借助一切被目标用户认可的网络应用服务平台开展的引导用户关注的行为或活动,目的是促进产品在线销售及扩大品牌影响力 在互联网web1.0时代,常用的网络营销有:搜索引擎营销.电子邮件营销.即时通 ...

  10. c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计

    <C语言程序设计教程第4章-循环结构程序设计>由会员分享,可在线阅读,更多相关<C语言程序设计教程第4章-循环结构程序设计(42页珍藏版)>请在人人文库网上搜索. 1.C语言程 ...

最新文章

  1. 20150726 填坑日记
  2. 使用Java让android手机自动执行重复重启
  3. 多协程实例分析(一)
  4. Linux的编译器vi之最详细介绍
  5. LeetCode【217. Contains Duplicate】
  6. shell脚本的两种执行方式区别举例
  7. 获取指定日期的常用前后节点(月初月末周一周末等等)
  8. python某公司为员工发放奖品_python 练习2
  9. wamp php5.6 mysql5.6,WampServer 3.0.6 多语言版 集成apache2.4.23 mysql5.7.14 php5.6.25-7.0.10 穿墙书店...
  10. python接口自动化(一)--什么是接口、接口优势、类型(详解)
  11. 英特尔CEO:将在行业整合背景下大力收购半导体企业
  12. 在dom最前面插入_前端性能优化之dom编程
  13. iocomp控件的应用
  14. mysql 查询表,视图,触发器,函数,存储过程
  15. 基于模糊集的图像增强
  16. 单片机炫彩灯实训报告_基于51单片机的流水灯实训报告.doc
  17. UVA - 473 Raucous Rocker 多维dp
  18. Poco C++类库使用说明
  19. iPhone无法更新,一直卡住在“验证更新中”,如何处理?
  20. 【Encoder-Decoder】

热门文章

  1. 【TeachNLP】文本数据处理-词表获取
  2. Ubuntu安装gcc-7.3.0
  3. c语言编写成绩管理系统代码,C语言学生成绩管理系统源代码
  4. [jquery视频教程 初级+高级][25课程]
  5. 单片机:DS1302时钟
  6. 商品销售数据分析报告
  7. 基于jsp+mysql的JSP校园一卡通管理系统
  8. 视频教程-R语言基础实战-大数据
  9. 怎么隐藏运行linux控制台,Win10秘笈:如何隐藏任意程序运行界面? - IT之家
  10. 安卓java模拟器按键精灵,安卓按键精灵实现后台