统资软体课程讲义ProgramminginMaple.PPT

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

95503統資軟體課程講義 Programming in Maple 指導教授:蔡桂宏 博士 研究生:鄭昌欣 學號 summary 1.單項式微分程式 2.多項式微分程式 3.maple內建procedure簡介 4.交換多項式係數程式 5.給予expand新規則的方法 Differentiating a monomial The derivative with respect to x of the monomial cx^n is cnx^(n-1) So, for example, the derivative of 3x^5 is 15x^4 . Here is a procedure that implements this rule. diff_term := proc( term ) op(1,term)*op(2,op(2,term))*op(1,op(2,term))^(op(2,op(2,term))-1) end; Bug of x^3 Special case Bug of x^1 因為maple不把次方為1看成指數,例如:op(1,x^1)=1,但是 op(2,x^1)=error Special case 2 Bug again!! Special case 3 常數項bug 善用elif把程式簡短化 Differentiating a polynomial Let us differentiate a polynomial, which is just a sum of monomials (i.e. terms). for example, the derivative of 3x^2+5x^3 is 6x+15x^2 . map指令 map( procedure or function,data structure ) map(sqrt,[9,16,25,36]) ; [3,4,5,6] map(x-x^2,{-3,-2,-1,0,1,2,3}); {0,1,4,9} map( coeffs, x^4 + 2*x^3 + 3*x^2 + 4*x + 5 ) ;15 diff_poly 運用map指令和單項式微分的procedure,我們便可以嘗試去定義一個新的procedure 用來處理多項式的微分。 Bug出現了 Bug的原因 a*x^n為*的資料結構,map指令把a*x^n分別處理a * x^n 加條件式處理bug 如果poly的資料結構為+,則可視為很多term(單項式)相加,此時可使用map指令,否則須把整個poly視為一個term來處理 Error again !! 我們需要對多項式有更嚴格的定義 定義多項式為只有一個變數的多項式 Poly::Polynom(name) 有一好就有一壞 從以下例子我們知道要寫出一個多項式微分程式是很有挑戰性的 無破綻的Maple內建微分程式 diff( a, x1, x2, ..., xn) 其中 a - algebraic expression x1, x2, ..., xn - names Some real Maple procedures 我們可以使用print(command)指令來檢視maple內建指令的程式 並非所有的maple內建指令都是使用maple程式語言所撰寫的,有些maple內建指令是使用C語言所寫的,我們稱這些指令為”built in”指令。 Maple可以由op(3,eval(command))知道某一個指令是否為built in 指令。 Reversing a polynomial 我們想要寫一個procedure可以產生出係數顛倒的多項式。 例如: ? Simple example for reversing a list Bug debug Reversing a polynomial Bug!!!! 藉由delay來找出bug Another bug!!! 藉由delay來找出bug 當多項式中具有常數項或者x^k此類型的項,則我們的程式會出現bug。在新的程式中我們把多項式中的term分解成係數項和變數項,並且分別以條件式考慮當term為常數或者x^k類型時,係數項和變數項需要有特別的對應。 例:3x^3+x^2-5x ?(-5)(x^3)+(1)(x^2)+(3)(x) Teaching Maple new tricks expand為maple用來展開一個式子或函數的指令。 展開這些式子或函

文档评论(0)

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

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

1亿VIP精品文档

相关文档