Re: [問題] 符號函式化簡已回收

看板MATLAB作者 (時間迴旋)時間17年前 (2009/01/01 09:55), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
摸了一個晚上,把我的心得分享一下 因為我想要得到分子每個次方的係數 又礙於分母沒辦法把最高次項normalize,即係數為1 只好用囉嗦一點的程式來達到我要的目的 一開始萃取分子的方法可以用numden 分子跟分母有可能會有公因式存在 利用factor把分子因式分解 再把分子與原式相除在取factor就可以得到因式分解的分母 兩個相除公因式就消失啦 得到分母後為了得到最高次項的係數,看幾次方就對他微分幾次,微n次後除以n! 得到的值再拿去除以分子,就可以得到分母normalize下的分子了 之後想得到分子各次方的係數,一樣用微分的技巧就可以推出 以下是有可能用到的function collect(S) 收集整理S的係數 collect(S,'v') 以v為自變數收集整理S的係數 expand(S) 將S表示式展開 factor(S) S的因次分解(factorization) simple(S) 如果可能的話,將S表示式再做簡化 simplify(S) 利用Maple簡化法則化簡S表示式 pretty(S) 將S顯示成類似打字形式的數學式 想要知道更多function可以下載http://163.13.134.134/MATLAB/ch8_symbo.pdf 這是辜狗找到的文件,雖然很基本,但是中文總是親切許多 如果有更好的寫法歡迎討論,謝謝^^ ※ 引述《elvisrod (時間迴旋)》之銘言: : %定義系統參數 : syms a b c d e f s T : %系統的方程式 : T = (a*s^2+b*s+c)/((s+d)*(s+e)) : %與其他系統合併的方程式 : T_NRZ = (T+f)*exp(m*T*s)/(s*(z-exp(T*s))) : %已知極點的情況直接求留數 : r1=T_NRZ*s : r2=T_NRZ*(s+d) : r3=T_NRZ*(s+e) : %留數相加 : T_all=(1-1/z)*(limit(r1,s,0)+limit(r2,s,-d)+limit(r3,s,-e)) : 之後得到的方程式很亂 : 我試過simplify 似乎沒辦法幫我化簡方程式 : 然後又找不到指令萃取出z^n的值(n=1,2,3...) : 趴文有看到有人問如何萃取出函式的分子和分母 : 不過沒有人回答 : 想說如果萃的出來就可以利用微分的技巧得到係數 : 有大大知道這個問題要如何解決嗎?? 感激不盡 -- ◤ ◥ 咬 ╲ ██ ● ● ██ ╱ 我 你 ◢██ █◣ 是 喔 ◥██ █◤ elvisrod ! ╱ ██ //// ◥◤ //// ██ ╲ ! ◥█╲ │ ╱ █◤ - POPER - -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.101.92 ※ 編輯: elvisrod 來自: 124.8.101.92 (01/01 10:00)

01/01 11:43, , 1F
我還是不懂....為什麼要讓matlab做這種事?
01/01 11:43, 1F
文章代碼(AID): #19N2ACrY (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #19N2ACrY (MATLAB)