24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1134  |  回复: 6

wangxingye

新虫 (小有名气)

[求助] 计算expm(At)的定积分,A是4阶方阵,t是变量已有1人参与

想用MATLAB计算expm(At)的定积分,A是4阶方阵,t是变量。
随便取个简单的例子,比如A=[1 1 2 1; 0 1 2 1; 1 0 1 2; 0 1 1 1];
t的变化范围是[0, 0.05],如何用MATLAB计算expm(A*t)的积分值呢?
         (Ps,我试着用int('expm(A*t)', 't', 0, 0.05)计算,输出的结果是int(expm(A*s), s == 0..1/20),
不是一个数值解,不知道是怎么回事,  希望高手指点一下!)
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

赵_山河

新虫 (初入文坛)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
wangxingye: 金币+2, 有帮助 2017-06-25 17:15:12
A=[1 2;3 4];
syms t
eval(int(expm(A*t),t,0,0.05))
洪兴掌管一带
2楼2017-06-24 18:02:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangxingye

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 赵_山河 at 2017-06-24 18:02:41
A=;
syms t
eval(int(expm(A*t),t,0,0.05))

感谢您的帮助,我也试过这种方法,2*2的矩阵很快就能运行出结果,但是A如果是4*4的矩阵的话,MATLAB运行很长时间也出不来答案,一直busy,这个怎么解决?
3楼2017-06-25 17:18:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

赵_山河

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by wangxingye at 2017-06-25 17:18:07
感谢您的帮助,我也试过这种方法,2*2的矩阵很快就能运行出结果,但是A如果是4*4的矩阵的话,MATLAB运行很长时间也出不来答案,一直busy,这个怎么解决?...

换Mathematica。要不你问问我老大陈浩南?
洪兴掌管一带
4楼2017-06-25 17:29:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangxingye

新虫 (小有名气)

引用回帖:
4楼: Originally posted by 赵_山河 at 2017-06-25 17:29:43
换Mathematica。要不你问问我老大陈浩南?...

惭愧啊,没用过Mathematica,不知道MATLAB能不能解决这个问题,如果你老大陈浩南能帮忙的话,那就更好了
5楼2017-06-25 17:37:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

赵_山河

新虫 (初入文坛)

【答案】应助回帖

★ ★
wangxingye: 金币+2, 有帮助 2017-06-25 19:03:27
引用回帖:
5楼: Originally posted by wangxingye at 2017-06-25 17:37:48
惭愧啊,没用过Mathematica,不知道MATLAB能不能解决这个问题,如果你老大陈浩南能帮忙的话,那就更好了...

[V,D]=eig(A*t)
耗时发生在求inv(V)上,看expm的表达式:
[V,D] = eig(X)
expm(X) = V*diag(exp(diag(D)))/V
/V=*inv(V),而V过于复杂。
要是简单求e对每个元素的指数,用exp(X)才对。
洪兴掌管一带
6楼2017-06-25 18:04:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangxingye

新虫 (小有名气)

引用回帖:
6楼: Originally posted by 赵_山河 at 2017-06-25 18:04:18
=eig(A*t)
耗时发生在求inv(V)上,看expm的表达式:
= eig(X)
expm(X) = V*diag(exp(diag(D)))/V
/V=*inv(V),而V过于复杂。
要是简单求e对每个元素的指数,用exp(X)才对。...

我按照你的方法试了一下,inv(V)耗时稍长,求exp(diag(D))耗时更长一些,但也还能算出来,
而求最耗时的是发生在积分int上,运行了半个多小时,一直busy,得不出结果,
而我的目的也是求expm(At)的积分,不是简单求e对每个元素的积分。
其实之前参考书上的解法也试了一下,和你的方法有些类似:
[V,D]=eig(A)
B=V*exp(A*t)*inv(V)
B=vga(B,6)
然后,手算了B中每个元素对t的定积分,但是得到的结果和正确答案相差很大,也不知道是哪里出了问题?
7楼2017-06-25 19:44:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wangxingye 的主题更新
信息提示
请填处理意见