您现在的位置是:主页 > news > 重庆网站建设吧/bt磁力猫
重庆网站建设吧/bt磁力猫
admin2025/5/2 12:42:45【news】
简介重庆网站建设吧,bt磁力猫,营销型网站建设实战感想,wordpress网站后台要怎么登陆1 国内的教程的现状初学一门软件或者语言,大多需要借助教程,教程有一个好处是较为系统. 在新世纪之初尤其是02-03年国内翻译或者著作了非常多的Maple教程,可是几乎步调一致地停止在06年。比如下面科学出版社的Maple教程写的相当不错ÿ…
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);
今天就到这,未完待续!