当前位置: 首页 > 数学 >计算expm(At)的定积分,A是4阶方阵,t是变量

计算expm(At)的定积分,A是4阶方阵,t是变量

作者 wangxingye
来源: 小木虫 300 6 举报帖子
+关注

想用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),
不是一个数值解,不知道是怎么回事,  希望高手指点一下!) 返回小木虫查看更多

今日热帖
  • 精华评论
  • 赵_山河

    A=[1 2;3 4];
    syms t
    eval(int(expm(A*t),t,0,0.05))

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

    换Mathematica。要不你问问我老大陈浩南?

  • wangxingye

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

    惭愧啊,没用过Mathematica,不知道MATLAB能不能解决这个问题,如果你老大陈浩南能帮忙的话,那就更好了

  • 赵_山河

    引用回帖:
    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)才对。

  • 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的定积分,但是得到的结果和正确答案相差很大,也不知道是哪里出了问题

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓