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)来表达。