使用octave符号运算求解不定积分、微分方程等(兼容matlab)

1.求解1/(1+cos(x))^2的不定积分。

在和学生讨论一道物理竞赛题的时候,出现了这个函数的积分求解需求。查积分表也可写出答案。但是可以使用octave的符号运算工具箱来做。

syms x;
y = 1/(1+cos(x))^2;
int(y)

  既可以得到结果:

ans = (sym)

     3/x\      /x\
  tan |-|   tan|-|
      \2/      \2/
  ------- + ------
     6        2

  octave中的符号工具箱实际上是调用了sympy的核心库。所以看自来结果有符号艺术的感觉。

2.求解微分方程

在一些场合,需要求解微分方程的解析解。

举个例子,求解谐振子的微分方程。hamonic.m 

syms x(t)
DE = diff(x,2) + w^2*x == 0
dsolve(DE)

  得到的结果是:

>> hamonic

DE = (sym)

              2
   2         d
  w *x(t) + ---(x(t)) = 0
              2
            dt

ans = (sym)

             -I*t*w       I*t*w
  x(t) = C1*e       + C2*e

  这里面octave的微分方程表达方法和matlab不大一样,二阶导函数不是写作D2(x),而是使用 diff(x,2)来表达。

猜你喜欢

转载自www.cnblogs.com/xiaohezyd/p/10799030.html