Maple 公式推导
Maple 公式推導(dǎo)??
2012-03-24 13:07:35|??分類: 學(xué)習(xí) |??標(biāo)簽:maple?? |舉報(bào) |字號?訂閱
即以此功德,莊嚴(yán)佛凈土。上報(bào)四重恩,下救三道苦。惟愿見聞?wù)?#xff0c;悉發(fā)菩提心。在世富貴全,往生極樂國。
阿英按:個(gè)人認(rèn)為公式推導(dǎo)最主要的就是“代入”和“化簡”兩步,大家抓住這兩步其實(shí)就夠用了,其他的用到了再查啊,阿彌陀佛!① 選擇哪個(gè)函數(shù)進(jìn)行變量替換?
Maple中是subs函數(shù),algsubs函數(shù)和simplify函數(shù)。
原來我不知道要把一個(gè)表達(dá)式帶入另外一個(gè)表達(dá)式要用algsubs函數(shù),subs函數(shù)僅僅只能替換一個(gè)變量而已,比如z=a+b, 如果x+y是一個(gè)通項(xiàng)中的operand,則有x + y = a + b + c ;algsubs一次能替換一個(gè)表達(dá)式中的某些中間項(xiàng),比如algsubs( a+b=d, 1+a+b+c );中a+b就是表達(dá)式1+a+b+c中的中間項(xiàng)。
②? 公式推導(dǎo)中要使用哪些函數(shù)?
factor, combine, expand, subs,algsubs,simplify, convert,alias
③? 變量的約束條件如何加?
變量的約束條件由assume給出,如assume(x>0); 經(jīng)過assume后的x后邊跟了一個(gè)flag,顯示為"x~"; about(x)是查詢x的約束條件是什么;在assume的基礎(chǔ)上附加一個(gè)assumption,通過additionally函數(shù),例如additionally(x<2); 去除所有約束采用x := 'x';
?
例1: subs 單變量替換
p := (x+y)^2 + 1/(x+y)^2;
normal(p); (* normal(f) The expression f is converted to factored normal form. This is the form numerator/denominator, where the numerator and denominator are relatively prime polynomials with integer coefficients. *)
?我們希望p的分子上包含(x+y)^4的項(xiàng),我們可以令 z = (x + y),然后代入p的表達(dá)式。
pz := subs(x+y=z,p);? (*替代規(guī)則是將 x+y = z 等式左手邊的項(xiàng)x+y用右手邊的項(xiàng)z替代,然后代入多項(xiàng)式p中*)
?npz := normal(pz);
?q := subs(z = x + y, npz);
(*下面做一個(gè)簡要的說明,關(guān)于op函數(shù)的用法*)
op([2,1], q);??? (*op是取出表達(dá)式q中的operand,前面[2,1]是個(gè)列表,表示以q的第二個(gè)操作數(shù)為新的子表達(dá)式,取出該子表達(dá)式中的第一個(gè)操作數(shù),具體分解見下面執(zhí)行結(jié)果*)
?(* 言歸正傳:subsop - substitute for specified operands in an expression *)
subsop([2,1] = x-y,q);??? (* 將q中嵌套的操作數(shù) [2,1] = (x+y) 用(x-y)替換?,嵌套的operand用[2,1]表示我以前不知道 *)
?
例2: subs 嵌套替換和多個(gè)變量同時(shí)替換
p := a + 2*b + 3*c;? (*定義一個(gè)新的多項(xiàng)式*)
subs(a=b, b=c, c=a, p); (*我以前不知道原來是從左到右依次嵌套替換,此句的效果與 subs(c=a,subs(b=c,subs(a=b,p))); 等價(jià)*)
?(* The substitutions within a set or list are performed simultaneously,如果要同時(shí)替換p中的多個(gè)變量,需要將各個(gè)替換等式用花括號或者方括號括起來 *)
subs({a=b, b=c, c=a}, p);
subs([a=b, b=c, c=a], p);
?例3:如何用一個(gè)子表達(dá)式替換表達(dá)式中的一部分,將一個(gè)表達(dá)式帶入另外一個(gè)表達(dá)式不能用subs函數(shù),而是要用algsubs函數(shù)。
p := a + 2*b + 3*c;
subs(a+b=c,p);
algsubs(a+b=c,p);
例4: expand 命令,matlab中也由此命令expand命令,matlab中 expand((x+1)^3)?? returns? x^3+3*x^2+3*x+1
p := (a+b+c)*(x^3 + 9*x + 8);
expand(p);? (* expand命令的作用是將多項(xiàng)式乘開 *)
(*?下面的內(nèi)容演示如何在expand過程中保持第二個(gè)operand?不變 *)
?op(2,p);?? (* p的第二個(gè)因子?,第二個(gè)operand,這里打印出來看看是啥東東?*)
q := subsop(2=z,p);?? (* 將p的第二個(gè)operand用z代替?*)
eq := expand(q);
eq := subs(z=op(2,p),eq);
p2 := op(2,p);
irreduc(p2);?? (* p2是不可化簡的?*)
alias(alpha=RootOf(p2));? % alias就是變量替換,這個(gè)在化簡的過程中也有用
ap := (alpha + 1)^7;
expand(ap);
evala(%);
例5. factor的數(shù)域擴(kuò)展,factor僅僅分解到有理數(shù)就停止了,下面的例子演示如何通過數(shù)域擴(kuò)展,在無理數(shù)域進(jìn)行?因式分解
p := x^2 + 2;
factor(p);
factor(p,{sqrt(2),I});?fp := polytools[split](p,x);?? % polytools[split] - complete Factorization of a Polynomial
rfp := convert(fp,radical);
map(evalc,rfp);? % 我以前不知道要map一下,注意與evalc(rfp);的結(jié)果有差異
evalc(rfp);
總結(jié)
以上是生活随笔為你收集整理的Maple 公式推导的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年薪50-80万 | 海南省崖州湾种子实
- 下一篇: 并发、并行、线程、进程与CPU基本概念