符号变量
sym()
创建一个符号变量
a = sym('x',[1 4],'real')
b = sym('y_%d',[1 4],'positive')
c = sym('z%d',[1 4],'rational')
d = sym('a',2,{'positive','integer'}) %2*2的矩阵
sym(x,'set')
可以用set设置符号变量x的性质,如 real(实数)、positive(正数)、rational(有理数)、positive integer(正整数),用assumptions()
可以查看符号变量的性质
用sym(x,'clear')
可以清除符号变量的性质
solve()方程求根
例如求 { x 2 + y 2 = 1 y = x \begin{cases} x^2+y^2=1& \text {} \\ y=x& \text{} \end{cases} {x2+y2=1y=x
sym('x');
sym('y');
eq1=x^2+y^2-1;
eq2=x-y;
A=solve(eq1,eq2,x,y)
用A.x
查看结果
solve()
还可以求带参数的解
syms x a b;
y=x^2-a*8+b;
solve(y,a)
inv(A)
矩阵求逆
syms a b c d;
A=[a b;c d];
inv(A)
diff()变量微分
例如求 e x 2 x 3 − x + 3 \frac{e^{x^2}}{x^3-x+3} x3−x+3ex2导数
syms x;
y=exp(x^2/(x^3-x+3));
result=diff(y)
int()变量积分
例如积分
∫
0
5
x
2
−
x
+
1
x
+
3
d
x
\int_0^5{\frac{x^2-x+1}{x+3}} \,{\rm d}x
∫05x+3x2−x+1dx
syms x;
y=(x^2-x+1)/(x+3);
result=int(y,0,10)
subs(y,x,0)
把x=0带入y这个方程得到结果
@ 函数处理
@可以把function处理之后可以用作其他function的参数,不这样处理是不能直接把function直接用作参数
fsolve()非线性方程组求解
fsolve(fx,x0,op)
从x0开始以op的方式求解fx=0时的解吗,其中op也可以缺省
例如:
f
(
x
)
=
1.2
x
+
0.3
+
x
s
i
n
x
f(x)=1.2x+0.3+xsinx
f(x)=1.2x+0.3+xsinx
fx=@(x) (1.2*x+0.3+x*sin(x));
fsolve(fx,0)
如果用solve()
syms x;
fx=1.2*x+0.3+x*sin(x);
solve(fx,x)
Exercise
从
(
x
,
y
)
=
(
5
,
5
)
(x,y)=(5,5)
(x,y)=(5,5)开始求
f
(
x
,
y
)
=
{
2
x
−
y
−
e
−
x
−
x
+
2
y
−
e
−
y
f(x,y) = \begin{cases} 2x-y-e^{-x} & \text{} \\ -x+2y-e^{-y} & \text{} \\ \end{cases}
f(x,y)={2x−y−e−x−x+2y−e−y
qroot.m
function fx=qroot(x):
fx(1)=2*x(1)-x(2)-e^(-x(1));
fx(2)=-x(1)+2*x(2)-e^(-x(2));
fun=@qroot;
x0=[5,5];
x=fsolve(fun,x)
fzero()非线性函数的根
fzero()
用法和fsolve()
类似,唯一区别是fzero()
不能求出函数不变号零点
roots()多项式根
roots([1 1 -3])
更加详细内容参看官方文档链接: link
如有错误请纠正,谢谢