symbolic variable
给一个方程式$y = x^2-2x-8$,要求y=0时x的值
定义一个变量为符号变量的格式为:syms x
或x = sym('x')
定义符号变量其实有很大的作用,我们不需要给她一个实际的数值,只需要声明它表示一个符号即可,我们之前讲了diff
函数,这里拓展一下,配合符号变量求一个函数的微分或者偏微分
$$ f(x) = \frac{e^{x^2}}{x^3 - x + 3} , \frac{d(x)}{d(y)} = ? \\ g(x) = \frac{x^2+xy-1}{y^3+x+3} , \frac{\partial f}{\partial x} = ? \\ $$
syms x
y - exp(x^2) / (x^3-x+3)
yprime = diff(y)
syms x y
z = (x^2+x*y-1)/(y^3+x+3)
zprime = diff(z)
求解积分
求解积分的函数是int
syms x
y = x^2 * exp(x);
z = int(y)
积分后面有时还会跟一个常数,一般条件都会给当 z(x)=c, 假设这里给定条件 z(0)=0, 应该如何求解呢?需要用到一个函数subs
,其调用格式为subs(z,x,c)
,他表达的含义是函数 z 中的符号变量被 c 替代
syms x
y = x^2 * exp(x);
z = int(y)
z = z - subs(z,x,0);
solve()
给出方程,要求其中某一变量在另外变量确定的条件下的值,就需要用solve()
函数,其调用格式为:solve(eq,var)
,eq 代表一个符号表达式或者字符串,var 代表变量名称
syms x
y = 1 + x;
ans = solve(y == 0,x)
slove()
还可以用来求解方程组
syms x y;
eq1 = x - 2 * y - 5;
eq2 = x + y - 6;
[a,b] = solve(eq1,eq2,x,y)
代数方程也可以用slove()
函数求解
syms x a b;
y = a * x^2 - b;
ans = slove(y==0,x)
用 a 和 b 来表示 x,就只需要在 solve 的第二个参数里写上 x,反过来,想用其他的变量来表示某个变量,只需要把这个变量写在 solve 的第二个参数里即可