How to reduce order of Matrix exponential?

1 次查看(过去 30 天)
Hi I would like to know as to how I could reduce the reduce terms for calculation on using matrix exponential. I do understand it calculates based on Pade approximation. I encounter problems on dealing with higher order differential equation and matlab produces a huge matrix which is not simplified.
  4 个评论
Rock
Rock 2013-3-12
For example on using symbolic toolbox for calculation of state transition matrix using command expm(). Matlab produces
xd0 =
3596168398555683/281474976710656 - (3596168398555683*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*i)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/274877906944000))/562949953421312 - (3596168398555683*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*d*i)/274877906944000))/562949953421312 - (10034090182592830360898745999^(1/2)*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*i)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/274877906944000)*1198722799518561*i)/35414184102574030372936351744 + (10034090182592830360898745999^(1/2)*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*d*i)/274877906944000)*1198722799518561*i)/35414184102574030372936351744 - (867128423441527*exp(-53167873683559/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*i)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*d*i)/274877906944000)*(10034090182592830360898745999*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/137438953472000) + 10034090182592830360898745999*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/137438953472000) + 10034090182592830360898745999^(1/2)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/137438953472000)*67778405371801*i - 10034090182592830360898745999^(1/2)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/137438953472000)*67778405371801*i - 20068180365185660721797491998*exp(53167873683559/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/274877906944000)))/323622899010805503129938536833211279867904
(25039894058036277*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*i)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/274877906944000))/18014398509481984 - (3121916813407357*exp(-53167873683559/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*i)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*d*i)/274877906944000)*(10034090182592830360898745999*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/137438953472000) + 10034090182592830360898745999*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/137438953472000) + 10034090182592830360898745999^(1/2)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/137438953472000)*67778405371801*i - 10034090182592830360898745999^(1/2)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/137438953472000)*67778405371801*i - 20068180365185660721797491998*exp(53167873683559/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/274877906944000)))/20711865536691552200316066357325521911545856 + (25039894058036277*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*d*i)/274877906944000))/18014398509481984 + (10034090182592830360898745999^(1/2)*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*i)/274877906944000)*exp((10034090182592830360898745999^(1/2)*d*i)/274877906944000)*8346631352678759*i)/1133253891282368971933963255808 - (10034090182592830360898745999^(1/2)*exp(-53167873683559/274877906944000)*exp((53167873683559*d)/274877906944000)*exp((10034090182592830360898745999^(1/2)*i)/274877906944000)*exp(-(10034090182592830360898745999^(1/2)*d*i)/274877906944000)*8346631352678759*i)/1133253891282368971933963255808 - 25039894058036277/9007199254740992
Is there way to simplify this problem?

请先登录,再进行评论。

回答(1 个)

Shashank Prasanna
Shashank Prasanna 2013-3-11
If you want to reduce the order of your system you can use balred:

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by