符号运算功能
符号表达式的创建 :
一、用符号串
注:此种方法对空格敏感,不要在字符间随意添加空格,否则会导致调用表达式错误。
二、使用 sym ()函数创建
将符号表达式看做是符号矩阵的一个元素,
矩阵元素必须不带等号,表达式长度可以不同;矩阵元素之间可用空格或逗号分隔。
或者使用 syms 命令
符号函数的运算
一、复合函数的运算
compose(g,f)
①g 是外层函数,f 是内层函数,返回 g(f(x)),其中 f,g 的变量以各自定义时的符号变量。
②可以指定复合函数的自变量 z,如 compose(f,g,z)。当 f,g 中存在多个自变量时,可以指定 z 代替的变量 x,如 compose(f,g,x,z)
syms x y z t u
f=1/(1+x^2);
g=sin(x);
h=x^t;
p=exp(-y/u);
Compose(h,g)
Compose(h,g,t)
Compose(h,g,t,z)//这个操作会指定h函数变量为t
Compose(h,p,x,y,z)
二、反函数的运算
syms x y;
f=x^2+y;
finverse(f,y)
三、因式分解 factor ()
1.分解函数
syms x
factor(x^9-1)
2. 分解大整数为质因数
factor(sym('12345678901234567890'))
四、 函数展开 expand
1.多项式展开
syms x y;
expand((x+1)^3)
2.三角函数展开
syms x y;
expand(sin(x+y))
五、符号微积分(求导)
1.符号极限 limit
limit(exp,x,a); 求符号表达式exp当自变量x趋于a时的极限
limit(exp,a); 求符号表达式exp当默认自变量趋于a时的极限
limit(exp); 求符号表达式exp当默认自变量趋于0时的极限
limit(exp,x,a,‘left’); 求符号表达式exp当默认自变量趋于a时的左极限
limit(exp,x,a,‘right’); 求符号表达式exp当默认自变量趋于a时的左极限
limit(sin(x)/x)
2. 符号积分 int
int(S) %计算符号函数变量 s 的不定积分
int(S,v) %计算符号函数变量 s 的指定变量的不定积分
int(S, a,b) %计算 a,b 区间上 S 的定积分
int(S,v,a,b)%计算符号函数变量 s 的指定变量 v 在 a,b 区间上的定
3. 符号求和函数 symsum(符号表达式的级数求和)
syms x n;
simple(symsum(n,1,n))
4. 符号微分(差分)diff
syms x t;
diff(sin(x^2))
六、 符号微分方程求解 dsolve ()
[x,y]=dsolve('Dx=-lamda*x','Dy=lamda*x-miu*y','x(0)=1100','y(0)=0')
七、符号代数方程求解
1.线性方程组的符号 解法
2.非线性方程的符号解法
调用 fsolve) (),格式如下:
X=fsolve(‘fun’,X0)
说明:fun 为所要求解的函数名,通常以 m 文件形式给出,m 文件返回值 F=fun(X)。
X0 为求解方程的初始向量或矩阵。
例如:求解下面的非线性方程
首先构造非线性方程的 m 文件,文件名为 fc.m
然后在命令窗口输入:
八 符号表达式的值
符号解与数值解的转换
Digits()与 vpa 配套使用。
其中 Digits(D)用于设定数值解的精度,D 表示数值的位数;Vpa(S)符号表达式 S 在digits 精度下的数值解。
值 在符号表达式中代入变量的值 x0 ,求 x0 处的函数值Subs(S, OLD, NEW)
R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。
R = subs(S) 用由调用函数或Matlab工作空间中获取的值替代了在符号表达式S中的所有当前的变量。
R = subs(S, old, new) 利用new的值代替符号表达式中old的值
练习题
1.生成以下函数和方程的符号表达式
(a)f(x) = exp (𝑦 2 )
syms x
f=exp(x^2)
(b)a(𝑦 − 1)2 +b(x-1)+c=0
syms x y
'a*(y-1)^2+b*(x-1)+c=0'
(c)sin(x)+x=0
syms x y
'sin(x)+x=0'
2用 matlab 符号计算验证三角等式sinφcosθ − cosφsinθ = sin (φ − θ)
syms a b
expand(sin(a-b))
3.将√2分别保留 3 位、5 位、9 位有效数字输出。
digits(3)
vpa(2^0.5)
digits(5)
vpa(2^0.5)
digits(9)
vpa(2^0.5)
4.设定 digits(32),按以下命令计算 a 和 b,比较结果并说明哪个更准确。a=vpa(sqrt(2)), b=vpa(‘sqrt(2)’)
digits(32)
a=vpa(sqrt(2))
b=vpa(sqrt(2))
5.已知f(y) =e-y,y(x) = x−2 ,求f′(y(x))
syms x,y
y=x^(-2);
f=exp(-y);
g=Compose(f,y);
diff(g)
6.已知f(x) = ln(2+x/2−x) ,求f(𝑡2)的表达式以及 t=1 时 f 的值
syms x t
f=log((2+x)/(2-x))
f=subs(f,t^2)
f=subs(f,1)
7.函数f(x) = x3 + x存在反函数?如果存在请给出.
存在
syms x
f=x^3+x
finverse(f)
8.对以下数字做质因数分解:
(a)32784
factor(sym('32784'))
(b)26788312456987
factor(sym('26788312456987'))
9.对以下多项式做因式分解
(a)x 3 + 2x2 + 2x + 1
syms x
factor(x^3+2*x^2+2*x+1)
(b)x6 − 1
syms x
factor(x^6-1)
syms x
limit((3^x+9^x)^(1/x),inf)
syms x
f=x*y/(sqrt(x*y+1)-1)
limit(limit(f,x,0),y,0)
syms k n;
simple(symsum(k^2,1,n))
syms k n
simple(symsum(1/k^2,1,n))
syms x y
f=(x-y)^3*sin(x+2*y)
int(f,y,-x,x)
syms x
f=x^2/(sqrt(a^2-x^2))
int(f,x)
syms x
int(x^(-x),0,1)
这个函数求不定积分好像求不出来
x^x求不定积分
数值求解
A=[2 2 1;0 1 2;1 1 3];
b=[2;1;3];
x=b./A
符号求解
[x1,x2,x3]=solve('2*x1+2*x2+x3=2','x2+2*x3=1','x1+x2+3*x3=3')
16.试用符号表达式求解方程 cos(2x)+sin(x)-1=0
[x]=solve('cos(2*x)+sin(x)-1=0')
17.y ′ + 6y = e𝑦 的通解
[y]=dsolve('Dy+6*y =e^y')
18.求解二阶常微分方程2x“(t) − 5x ′ (t)− 3x(t) = 45e2𝑡 ,初始条件为 x(0)=2, x’(0)=1.做 x(t)的图像,0<t<2
x=dsolve('2*D2x-5*Dx-3*x=45*e^(2*t)','x(0)=2','Dx(0)=1','t')
t=[0:0.1:2]
plot(4*exp(-1/2*t)+7*exp(3*t)-9*exp(2*t),t)
19.求解常微分方程组
[x,y]=dsolve('Dx=y','Dy=-x')
20.综合题:求函数f(x) = 3x3 − 4x4 − 5在[-1,2]间的:
(a) 所有极值和对应的 x
syms x;
f=3*x^3-4*x^4-5;
f1=diff(f)
求导数f1
x=solve('9*x^2-16*x^3=0')
图像
只有极大值点x=9/16
x=9/16
f=3*x^3-4*x^4-5
(b) 最大值、最小值和对应的 x。
x=-1
f=3*x^3-4*x^4-5
x=2
f=3*x^3-4*x^4-5
最大值-4.866
最小值-45