Mathematica4初等数学部分_第1页
Mathematica4初等数学部分_第2页
Mathematica4初等数学部分_第3页
Mathematica4初等数学部分_第4页
Mathematica4初等数学部分_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学符号运算 20022-1-2第2章 Mathematica4.0软件包初等数学部分 本章主要介绍Mathematica4中与初等数学有关的各种命令。例2-1 求近似值。例如圆周率Pi,我们在Mathematica4中输入以下四种命令就将得到三种不同的结果:Pi 显示结果Pi / N 显示结果的16位近似数N Pi 显示结果的16位近似值(包括整数位)N Pi, 200 显示结果的200位近似值(包括整数位)注:NPi 给出Pi的16位小数近似值(包括整数位),屏幕只显示小数点后面5位,如果将结果复制一下,就会看见16位小数近似值。另外,N Pi,m 给出指定的m位Pi的近似值。类似地有 N

2、 E,80 等等。例2-2 求一个数x的绝对值: Abs x 例2-3 (1)关于分数和分式 通分:(1/2)+(1/3) 比较:(1/2)+(1/3)/N 命令Together f 表示将表达式f通分;Apartf 表示将有理分式f写为不可约分式之和。例如:Cancelf 表示消掉有理分式f的公因子;ExpandAllf 表示将有理分式f的分子分母都展开为多项式;ExpandNumeratorf 表示将有理分式f的分子展开为多项式;ExpandDenominatorf 表示将有理分式f的分母展开为多项式;(2)多项式的展开。命令与格式如下:其中Expand f 表示将多项式f展开为级数形状;

3、Coefficient f, x5 表示求多项式f中x5的系数。运行之后得到结果:(3)多项式的因式分解。命令与格式如下:f = 1 + 2x + x2;Factor f 运行之后得到结果:(1 + x )2例2-4 求阶乘。直接输入 n!求组合数。输入以下命令: Binomial n, k 求多元组合数 。输入以下命令: Multinomial r1, r2, , rn 例如,下面的多元多项式的展开式中就会用到多元组合数:我们可以输入以下命令求其中某一项的系数,比如: 运行之后就得到的系数:183783600例2-5 求和的公式。输入以下命令,运行之后得到结果:例2-6 验证不等式是否为真。

4、执行下列程序若得到结果“ True”就表示此不等式成立,若得到结果“ False”就表示此不等式不成立。例2-7 求解不等式或不等式组第一步 打开子程序包 <<AlgebraInequalitySolve第二步 InequalitySolve 得到此不等式的解集:其中两个竖线表示集合的并。又一例子:第二步 InequalitySolve 其中&&表示集合的交。执行后得到此不等式组的解集:注:InequalitySolve命令只能求解多项式类型的不等式或不等式组。例2-8 求解代数方程及方程组。执行并比较以下几个命令:(1)Solve命令 注:Solve命令只能求解多

5、项式类型的方程或方程组。(2)SolveAlways命令SolveAlways a x + y + z = 1, x + a y + z = a, x + y + a z = a2 , x, y, z 执行后得到: 表示解是空集。(3)Reduce命令Reduce a x + y + z = 1, x + a y + z = a, x + y + a z = a2 , x, y, z 表示用消元法求以上线性方程组的所有可能的解。(4)Eliminate命令Eliminate x + 2a = 1, -2x + y =9 , a 表示在方程组中消去参数a,得到结果:-9 + y = 2x又一个例

6、子:表示在方程组中消去参数x,运行之后得到结果:-y + y 2=0例2-9 求解超越方程及方程组第一步 先画图观察第二步 求出数值近似解PlotLog10,x-Sinx,x,0,10FindRootLog10,x-Sinx=0,x,2.5FindRootLog10,x-Sinx=0,x,7.5FindRootLog10,x-Sinx=0,x,8.1例2-10 求一个数x的近邻整数值Roundx 求距离x最近的整数值;Ceilingx 求距离x最近的、且大于x的整数值;(比较 x = -1.5, 1.5, -1.4, 1.4 时的区别)例2-11 求递归关系式。第一步 进入子程序软件包 <

7、;<DiscreteMathRSolve第二步 求解递归关系式。输入以下命令:RSolve a n = 3a n-1 - 2a n-2 , a n , n 运行之后得到结果: a n -> - C1 + 22+n ( C1 + 2C2 ) 其中C1、C2是待定常数。或者求解具有起点的递归关系式。输入以下命令:RSolve a n = 3a n-1 - 2a n-2 , a 0 = 1, a 1 = 2 , a n , n 运行之后得到结果: a n -> 2n 例2-12-1 (1)求序列2n从n = 1到n = 15的值。输入以下命令: Table n, 2n , n, 1

8、, 15 (2)求斐波那契(Fibonacci)数列Fibonaccin 从n = 1到n = 50的值。输入以下命令:Table n, Fibonacci n , n, 1, 50 例2-12-2 Fibonacci预测(神秘数字预测)Fibonacci ( Leonado Pisano Fibonacci, 1170 - 1250 )预测在港、台金融界称为神秘数字预测,在欧美叫螺旋历法( Spiral Calendar ),此方法在金融预测方面比较流行,请大家批判性的了解以下内容。记Fibonaocci数列为F1=1,F2=1, Fn = Fn-1 + Fn-2 ( n 3 )。美国人Ca

9、rolan创立螺旋历法,令投资理论界大为震惊,此方法主要以月球周期为计算的基础,类似中国的阴历。在此方法中,月球周期Y = 29.53天,用它来计算重大事件的转折点(此方法主要用在政治和经济领域)。方法如下:从一个重大事件发生的日期开始,对任何n 1,天后,都有可能发生重大转折。例2-12-3 1917年11月7日,俄国共产党攻占圣彼得堡的冬宫,天后有可能为转折点,即1991年8月8日,实际上1991年8月19日苏联发生政变,随后苏共下台,苏联解体。程序如下:<<MiscellaneousCalendarTableDaysPlus1917,11,7,Ceiling29.53Sqrt

10、Fibonaccin,n,1,50例2-12-4 1945年5月7日,德国在二战中被打败,宣布投降,从此一分为二,东德被苏联统治,西德被美国统治。天以后,即1990年12月5日可能为转折点,实际上1990年12月2日是东西德统一后的第一个大选日,乃实际上的统一。另外,德国由分裂到统一的时间,刚好是苏联共产党掌权时间的0.618倍。例2-12-5 柏林墙建于1961年8月12日,拆于1989年11月9日,近似等于天以后,只差27天。另外,柏林墙存在的时间约为德国分裂时间的0.618倍。例2-12-6 美国道.琼斯工业股票指数的预测。美国人Carolan将螺旋历法用于预测金融市场的转折点,效果奇佳

11、。1927年4月1日,是春分后的第一个新月,两年半后(),即1929年10月11日见顶,随后走入股灾,于1929年10月29日走到股灾底部, 天以后,即1935年1月19日(冬至后的月圆),股市开始反转。例2-12-7 1985年3月21日,为春分及新月之日,两年半后(),即1967年10月2日见顶2746点,随后走入股灾,于1987年10月20日走到股灾底部1616点, 天以后,即1993年1月8日(冬至后的月圆),股市开始反转。例2-12-8 国际外汇市场英镑的预测1。对英镑来说,要反向预测(因为在国际外汇市场上,英镑的报价与大多数币种相比是反的)。从1995年3月15日(春分前的月圆)开

12、始,逆向反推。以前是1991年2月5日,实际上1991年2月6日高见2.0045点后大幅下跌,1991年7月5日见底1.5990,下跌近4000点。例2-12-9 国际外汇市场英镑的预测2。以前是1991年12月23日,3天后1991年12月26日于1.8900见顶后大幅下跌,1992年3月20日见底1.6975,下跌近2000点。例2-12-10国际外汇市场英镑的预测3。以前是1992年8月31日,2天后1992年9月2日于2.0100见顶后大幅下跌,见底1.4000,下跌近6000点。在Mathematica4软件包中编程如下:Table n, Ceiling 29.53 , n, 1,

13、50 运行后得到如下结果:其中每一项的第二个分量表示天数。若想每一项的第二个分量表示年数,则输入以下命令: Table n, Ceiling 29.53/ 365 , n, 1, 50 运行后得到如下结果:例2-13 线性方程组的求解与应用。据说吕洞宾、铁拐李、汉钟离、张果老、何仙姑、蓝采和、韩湘子和曹国舅这八仙去朝见观音。观音菩萨拿出6720个仙桃招待八仙。每人分得一些桃子后,观音说:请吕洞宾拿出他分得的桃子的一半给铁拐李;然后,请铁拐李拿出他所有桃子的1/3给汉钟离;然后,请汉钟离拿出他所有桃子的1/4给张果老;然后,请张果老拿出他所有桃子的1/5给何仙姑;然后,请何仙姑拿出她所有桃子的1

14、/6给蓝采和;然后,请蓝采和拿出他所有桃子的1/7给韩湘子;然后,请韩湘子拿出他所有桃子的1/8给曹国舅;然后,请曹国舅拿出他所有桃子的1/9给吕洞宾。最后,每人840个桃子。问:刚开始他们每人分得多少桃子?解:由题义,得到线性方程组如下:一般使用倒推法求解:最后每人840个桃子;在此之前,曹国舅拿出1/9送给了吕洞宾,所以,曹国舅有840/(1-1/9)=945个桃子,而吕洞宾有840-(945-840)=735个桃子,其他人840个桃子;在此之前,韩湘子拿出1/8送给了曹国舅,所以,韩湘子有840/(1-1/8)=960个桃子,而曹国舅有945-(960-840)=825个桃子,除吕洞宾7

15、35个桃子外,其他人840个桃子;如此类推,最后得到刚开始每人分得桃子如下:吕洞宾1470个桃子、铁拐李525个桃子、汉钟离700个桃子、张果老770个桃子、何仙姑798个桃子、蓝采和812个桃子、韩湘子820个桃子、曹国舅825个桃子。若编程求解,很快就可得到结果:注:此方程组可简化。例2-14-1 连分数与佩尔(Pell)方程的最小正整数解。(1)连分数表示法一个“既约”分数(分子可以比分母大,但无公因子)可以表示成连分数的形式。例如将表示成连分数,程序如下:ContinuedFraction得到结果:0,1,1,1,5。这表示二次整系数方程的根叫做二次无理数。初等数论中已经证明:一切二次

16、无理数表示成连分数,都具有无穷循环节。例如将表示成连分数,程序如下:ContinuedFraction得到结果:4,3,6。这表示其中3,6用花括号括起来,表示无穷循环节。反之,我们可以通过一个数的连分数表示形式求其正常形式。例如:FromContinuedFraction 1,2,3 得到结果:。这表示又例如,FromContinuedFraction 2, 1, 4, 2, 3 得到结果:。这表示:(2)佩尔(Pell)方程的最小正整数解古希腊数学家阿基米德(Archimedes,公元前287前212年)曾提出一个所谓的“牲畜问题”,此问题最后归结为求解一个二元二次的不定方程:X2 410

17、286423278424Y2 = 1这个方程的最小正整数解是名副其实的天文数字。17世纪,费尔马重新提出求解不定方程X2 A*Y2 = 1的解的问题,其中A是正的非完全平方数。他提出此方程有无穷多组正整数解。同时他向所有的数学家挑战:求出此方程的无穷多组正整数解。英国皇家学会的第一任会长布龙克尔勋爵(Lord Brouncker)给出了解,但他未能证明解有无穷多个。瓦利斯(J. Wallis,1616-1703)彻底解决了这个问题。佩尔(J. Pell,16111685)在他的一本著作中附录了瓦利斯的结果。欧拉在他于1732年发表的一篇论文中错误地称X2 A*Y2 = 1为Pell方程,这个错

18、误就沿袭至今。假设A是正的非完全平方数,则是二次无理数,它的连分数循环节表示形式是:当无穷循环节中数字的个数r是偶数时,取的近似分数:得到解x、y,这就是Pell方程X2 A*Y2 = 1的解;当无穷循环节中数字的个数r是奇数时,取的近似分数:得到解x、y,这就是Pell方程X2 A*Y2 = 1的解。例2-14-2 公元650年左右,首创0不能作除数的印度数学家Brahmagupta(婆罗摩及塔)曾致力研究Pell方程a·x2 + 1 = y2,他说:“在一年里头能解出X2 92Y2 = 1的人是一位数学家”。用Mathematica4.0编程求解如下:得到:。无穷循环节中数字的个

19、数共8个(即r = 8是偶数的情况),再输入:FromContinuedFraction 9, 1, 1, 2, 4, 2, 1, 1 得到分数:即x = 1151,y = 120是此Pell方程X2 92Y2 = 1的最小正整数解。例2-14-3 据说有人曾向英国数学家瓦利斯提出挑战,要他解X2 313Y2 = 1,结果,他在一小时之内就找到正确的答案。无穷循环节中数字的个数共17个(即r = 17是奇数的情况),再输入:FromContinuedFraction 17,1,2,4,11,1,1,3,2,2,3,1,1,11,4,2,1,34,1,2,4,11,1,1,3,2,2,3,1,1

20、,11,4,2,1 得到分数:即x = 32188120829134849,y = 1819380158564160是此Pell方程X2 313Y2 = 1的最小正整数解。(3)直接求解佩尔(Pell)方程的最小正整数解第一步 建立一个求解模块。首先执行以下程序:PellSolvem_Integer?Positive := Module cf, n, s ,cf = ContinuedFraction; n = Length Last cf ;If OddQ n , n = 2n ;s = FromContinuedFractionContinuedFraction, n ; Numerato

21、r s , Denominator s ;第二步,例如,求解Pell方程X2 92Y2 = 1的最小正整数解,直接输入以下命令即可: PellSolve 92 得到结果: 1151,120 。即,x = 1151,y = 120是Pell方程X2 92Y2 = 1的最小正整数解。例2-14-4 阿基米德问题X2 410286423278424Y2 = 1,用现代计算机可以在几分钟之内求解。程序如下: PellSolve 410286423278424 / Timing运行之后,可以知道运算时间和结果,但是得到的结果太大,不在此收录,读者自己计算即可。另外,我们可以用以下命令求出此Pell方程解

22、的位数:a = PellSolve 410286423278424 ;w1 = Last RealDigits a 1 ;Print“w1 = ”,w1w2 = Last RealDigits a 2 ;Print“w2 = ”,w2其中a = PellSolve 410286423278424 运行的结果是得到Pell方程的最小正整数解 a = x, y ,此处a的第一个分量a 1 = x, 第二个分量a 2 = y;命令RealDigits a 1 运行的结果是得到x = a 1 的位数;RealDigits a 2 运行的结果是得到y = a 2 的位数。运行后得到:x = a 1 的位

23、数是w1 = 103273位,y = a 2 的位数是w2 = 103266位。例2-15 数据表的排顺序问题。a = 2,-9,3,5,4,8,-3,1,7 ;Sort a,Greater 此命令将数据序列a从大到小重新排列。a = 2,-9,3,5,4,8,-3,1,7 ;Sort a,Less 此命令将数据序列a从小到大重新排列。另外,可以自己编程序将数据序列a从小到大重新排列(比较以下程序):a = 2,-9,3,5,4,8,-3,1,7 ;b = Sorta,Greaterd = Table bj, j, 9, 1, -1 例2-16 数据表的统计问题。 (1)把数据表中的元素加起来

24、:a = x,y,z ;Apply Plus, a 执行后得到结果:x + y + z (2)统计数据表中指定的元素的个数:a = p, p, q, p, q, q, p ;Count a, p 表示统计数据表a中元素p的个数。执行后得到结果:4。 (3)求数据表中大于某个数的元素:mm = -1, 2, 3, - 4, 5, 1.2 ;Select mm, # > 2 & 执行后得到数据表mm中所有大于2的元素: 3, 5 。 (4)两个1维数据表合并为一个2维数据表。例如,两个1维数据表分别为a、b:a = 1, 2, 3 ; b = x, y, z :c = Thread

25、a, b 执行后得到结果: 1, x , 2, y , 3, z (5)求数据表中元素的个数:d = 1.2, 2.3, -4.2, 2.5, 3.1, 6.4, 7.2, 2.3 ;Length d 执行以上程序,就能得到结果:8。例2-17 三角函数式的化简 TrigReduce (Cosx)4 得到结果:,即 例2-18 关于整数(1)求素数求第k个素数: Prime k 例如:Table Prime k , k, 1, 13000 / /Timing在笔者的计算机上执行后0.38秒得到前13000个素数。Mathematica4.0软件包最多可以求出第1013个素数。例如求第1011个

26、素数: Prime 得到结果:2760727302517,这是一个共13位的素数。(2)求一个整数含多少个数字。例如,求2002含多少个数字: RealDigits 2002 运行后得到结果: 2, 0, 0, 2 , 4 。这表示2002的数字是 2, 0, 0, 2 ,共有4位。(3)将一个十进制数n转化为其它进制的数,使用命令RealDigits n, b 。例如, RealDigits 12345, 8 执行后得到结果: 3, 0, 0, 7, 1 , 5 。这表示(12345)10 = (30071)8 ,即十进制的数12345等于八进制的数30071。(4)任意进制数字之间的互换。

27、十进制数字转化为其他进制的数字,例如r进制(),命令格式是:BaseForm十进制数字,r 例如将十进制数2002转化为8进制数, BaseForm 2002, 8 运行后得到结果:37228其他进制的数字,例如r进制(),转化为p进制的数字,命令格式为:BaseForm r 数字, p 例如将16进制的数字20转化为10进制的数字: BaseForm 16 20, 10 运行后得到结果:32例如将16进制的数字20转化为8进制的数字: BaseForm 16 20, 8 运行后得到结果:408例如将10进制的数字10转化为11进制的数字: BaseForm 10, 11 运行后得到结果:例如

28、将10进制的数字11转化为12进制的数字: BaseForm 11, 12 运行后得到结果:例2-19 Do的循环功能设,求f8 。(1)Do的1-重循环:在Mathematica4.0中编程序如下f = 0.6321;Do f = 1-n*f, n, 8 Print“ f8 = ”, f 得到结果: f8 = - 0.728(2)Do的2-重循环:在Mathematica4.0中编程序如下Do f = 0.6321;Do f = 1-n*f, n, k , Print“ f ”, k, “ = ”, f , k, 1, 9 得到结果:f 1 = 0.3679, f2 = 0.2642, f3 = 0.2074, f4 = 0.1704, f5 = 0.148, f6 = 0.112,f7 = 0.216, f8 = - 0.728, f9 = 7.552例2-20 表的其它功能的应用。 (1)选取表的前后部分。 假设a是一个表,选取a的前面部分,使用Fist命令a = 1, 2, x, y ;First a 运行后得到结果: 1, 2 。 假设a是一个表,选取a的后面部分,使用Last命令a = 1, 2, x, y ;Last a 运行后得到结果: x, y 。 (2)应用举例。问:800!算出来的结果中含有多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论