octave中符号计算需要额外安装symbolic库,下面是安装方法,不安装无法使用
https://blog.csdn.net/weixin_39956356/article/details/106732134
octave符号计算及注意事项(和MATLAB还是有些区别的)(上),
https://blog.csdn.net/weixin_39956356/article/details/106756047
上节内容介绍了符号计算的基础内容,如创建,基本运算,化简,因式分解等内容,目录如下,这节更进一步,主要介绍下极限,积分,微分,级数,符号方程的求解
1 .我写了注意的是octave和MATLAB有差别的地方
2. 调用方式有多种,我会分享通用的那种,具体形式可以看看文档或相关书籍
3. 注意:帮助文档在@sym/xxx里面.
1 极限-limit
limit(f, x, a, 'right'或'left')
f: 符号函数f(x)
x:求解符号变量,还记得上节内容的C位变量?默认是x
a: 趋近a,无穷大inf(前面写上+或-), 默认是0
'right'或'left':右,左极限
例如: f = ( x ( 1 / m ) − a ( 1 / m ) ) / ( x − a ) f = (x^{(1/m)}-a^{(1/m)})/(x-a) f=(x(1/m)−a(1/m))/(x−a)
>> f = (x^(1/m)-a^(1/m))/(x-a)
f = (sym)
m ___ m ___
- \/ a + \/ x
---------------
-a + x
>> limit(f, x, a)
ans = (sym)
m ___
\/ a
-----
a*m
2 求导-diff
diff(f, x, n)
f: 符号函数f(x)
x:求解符号变量,还记得上节内容的C位变量?默认是x(求导)
n: 表示求几阶导数
例如: f = x c o s x f = xcosx f=xcosx,求二阶导数
f = x*cos(x);
diff(f, x, 2) % 对f求二阶导数
ans = (sym)
ans = (sym) -(x*cos(x) + 2*sin(x))
3 (不定/定)积分-int
int(f, x, a, b)
f: 符号函数f(x)
x:求解符号变量,还记得上节内容的C位变量?默认是x(积分)
a, b: 表示定积分的上下限,不给是不定积分
例如: ∫ 5 x t 1 + x 2 d t \int\frac{5xt}{1+x^2}dt ∫1+x25xtdt,
>> f = 5*x*t/(x^2+1)
ླྀf = (sym)
5*t*x
------
2
x + 1
>> int(f, t) % 默认是对x求积分,但是这里是t,单独指定
ans = (sym)
2
5*t *x
--------
2
2*x + 2
例如: ∫ 1 2 ∣ 1 − x ∣ d x \int_{1}^{2}|1-x|dx ∫12∣1−x∣dx,
>> int(abs(1-x), 1, 2)
ans = (sym) 1/2
4 级数-symsum
symsum(f, x, m, n)
f: 符号函数f(x),指级数的通项公式
x:求解符号变量,还记得上节内容的C位变量?默认是x(积分)
m, n: 表示级数的开始和结尾项(数字)
例如: s = 1 + 1 4 + 1 9 + 1 16 + ⋯ + 1 n 2 + … s = 1+\frac{1}{4}+\frac{1}{9}+\frac{1}{16}+\dots+\frac{1}{n^2}+ \dots s=1+41+91+161+⋯+n21+…
>> f = 1/n^2;
>> s1 = symsum(f, n, 1, inf) % 从第一项到无穷项
s1 = (sym)
2
pi
---
6
5 泰勒展开-taylor
注意:这个用法和matlab有些不一样
symsum(f, x, a)
f: 符号函数f(x)
x:求解符号变量,还记得上节内容的C位变量?默认是x(积分)
a: 表示在x=a处展开
例如: f = c o s ( x ) f=cos(x) f=cos(x)
>> f = cos(x)
f = (sym) cos(x)
>> taylor(f, x)
ans = (sym)
4 2
x x
-- - -- + 1
24 2
6 符号方程求解-solve
注意:这个用法和matlab有些不一样,不要用单引号,用==
solve解不出来的,不一定原方程无解,可以换其他函数试试
下面介绍可行的方案,
solve(方程, x(未知数))
[x,y,z,...] = solve(方程1,方程2,...)
例如解方程 1 x + 2 + 4 x x 2 − 4 = 1 + 2 x − 2 \frac{1}{x+2}+\frac{4x}{x^2-4} = 1+ \frac{2}{x-2} x+21+x2−44x=1+x−22
>> solve(1/(x+2) + 4*x/(x^2-4) == 1 + 2/(x-2), x)
ans = (sym) 1
例如,求解方程组
{
1
x
3
+
1
y
3
=
28
1
x
+
1
y
=
4
\begin{cases} \frac{1}{x^3}+\frac{1}{y^3}=28 \\ \frac{1}{x}+\frac{1}{y}= 4 \\ \end{cases}
{x31+y31=28x1+y1=4
>> [x y] = solve(1/x^3+1/y^3==28, 1/x+1/y==4)
x = (sym 2x1 matrix)
[1/3]
[ ]
[ 1 ]
y = (sym 2x1 matrix)
[ 1 ]
[ ]
[1/3]
7 符号微分方程求解-dsolve
例如求解微分方程 d y d x = x 2 + y 2 2 x 2 \frac{d_y}{d_x}=\frac{x^2+y^2}{2x^2} dxdy=2x2x2+y2
>> syms y(x) x
>> dsolve(diff(y ,x) - (x^2+y^2)/(2*x^2) == 0)
ans = (sym)
x*(C1 - log(x))
y(x) = ---------------
C1 - log(x) - 2
在上面的条件下,求解在y(2)=1的特解
>> syms y(x) x
>> dsolve(diff(y ,x) - (x^2+y^2)/(2*x^2) == 0, y(2)==1)
ans = (sym)
x*(-log(x) - 2 + log(2))
y(x) = ------------------------
-log(x) - 4 + log(2)