基础符号计算
01 创建符号表达式
调用格式为:
创建变量的变量名为x,变量x的值为单引号内的字符串或数值。
x=sym('字符')
str2sym('字符串')
同时创建多个符号变量,值就是变量本身,等价于x=sym('x');y=sym('y');
syms x y z
注:在最近版本中,sym只能指定一个变量或数。要表示符号表达式需要使用str2sym,在旧版本中可以使用sym。
Matlab对函数符号表达式的四则运算: + - * / ^
实践
- 构造函数 s i n x 2 , 1 y sinx^2,\frac{1}{\sqrt y} sinx2,y1的符号表达式,并求两个表达式相乘和相除的结果。
syms x y; %创建符号变量
arg1=sin(x^2); %新的符号表达式
arg2=1/y^(1/2); %新的符号表达式
arg1 * arg2
arg1/arg2
%除了上述写法,还可写为以下形式%
f=str2sym('sin(x^2)');
g=str2sym('1/y^(1/2)');
f*g
f/g
运行
>> syms x y; %创建符号变量
arg1=sin(x^2); %新的符号表达式
arg2=1/y^(1/2); %新的符号表达式
arg1 * arg2
arg1/arg2
ans =
sin(x^2)/y^(1/2)
ans =
y^(1/2)*sin(x^2)
>> f=str2sym('sin(x^2)');
g=str2sym('1/y^(1/2)');
f*g
f/g
ans =
sin(x^2)/y^(1/2)
ans =
y^(1/2)*sin(x^2)
02 求反函数
调用格式为:
g=finverse(f) 或 g=finverse(f,var)
其中,g为反函数,f为原函数,var为标识的变量,表示g为f(g(var))=var.
实践
- 求函数 f ( x ) = e x + 1 f(x)=e^x+1 f(x)=ex+1与 g ( x ) = s i n ( x + 1 ) g(x)=sin(x+1) g(x)=sin(x+1)的反函数。
syms x
f=exp(x)+1;
g=sin(x+1);
f1=finverse(f,x)
g1=finverse(g,x)
运行
>> syms x
f=exp(x)+1;
g=sin(x+1);
f1=finverse(f,x)
g1=finverse(g,x)
f1 =
log(x - 1)
g1 =
asin(x) - 1
- 验证题1的结果
syms y
f=log(y - 1);
g=asin(y) - 1;
f1=finverse(f,y)
g1=finverse(g,y)
运行
>> syms y
f=log(y - 1);
g=asin(y) - 1;
f1=finverse(f,y)
g1=finverse(g,y)
f1 =
exp(y) + 1
g1 =
sin(y + 1)
03 复合运算
调用格式为:
把f(x)和g(x)复合成f(g(x))
compose(f,g)
实践
- 求 f ( y ) = 1 / ( 1 + y 2 ) , y = g ( x ) = s i n x f(y)=1/(1+y^2), y=g(x)=sinx f(y)=1/(1+y2),y=g(x)=sinx得复合函数 f ( g ( x ) ) f(g(x)) f(g(x))
求解
syms x y
f=1/(1+y^2);
g=sin(x);
compose(f,g)
运行
ans =
1/(sin(x)^2 + 1)
04 符号转数值
调用格式为:
将ph(符号表达式)转化为数值
eval(ph)
实践
- 求函数 1 + 2 2 \frac{1+\sqrt 2}{2} 21+2在x=4的值
求解
ph=str2sym('(1+sqrt(x))/2');
x=4;
eval(ph)
运行
ans =
1.5000