matlab符号表达式的化简常用命令函数

时间:2024-04-16 13:38:17

 

 14 化简

 

 

pretty(f)     将符号表达式化简成与高等数学课本上显示符号表达式形式类似 
collect(f)     合并符号表达式的同类项 
horner(f)     将一般的符号表达式转换成嵌套形式的符号表达式 
factor(f)     对符号表达式进行因式分解 
expand(f)     对符号表达式进行展开 
simplify(f)  对符号表达式进行化简,它利用各种类型的代数恒等式,包括求和、
积分、三角函数、指数函数以及 Bessel 函数等来化简符号表达式 
simple(f)  对符号表达式尝试多种不同的算法进行化简,以显示长度最短的符号
表达式简化形式 
[r,how]=simple(f)   返回的 r为符号表达式进行化简后的形式, how为所采用的简化方法

function y=fun(x1,x2)
syms x1 x2;
y=sin(x1).*cos(x2)+cos(x1).*sin(x2);
simplify(y)
end
-------------------------------------
ans =
 
sin(x1 + x2)

  

function y=fun(x)
syms x;
y=(4*x^2+8*x+3)/(2*x+1);
simplify(y)
end
------------------------------------
fun
 
ans =
 
2*x + 3

15、MATLAB之极限、积分、微分

1、极限:用函数limit(f,x,x0,‘left’or\'right\');    其中f 是定义的函数,x 是极限变量,x0是求极限的点,lift代表左极限,right代表右极限,如果省略代表求双边极限。

一般的单极限问题:

syms x;%这个一般是定义一个变量x;

f=sin(x)/x;%定义要求的函数;

limit(f,x,0);%sin(x)/x在0这一点处的极限。

另外,在计算极限时候会出现piecewise()这个函数,他代表分段函数。

2、微分

微分函数diff(f,n)函数,n代表对f求的阶数,这里的f既可以是个函数也可以是个矩阵。如果是个矩阵的话他就是对矩阵的元素求导。

(1)、只有一个变量x

 syms x;%先定义一个变量x;

f=sin(x);%定义要求导的函数;

diff(f);%这就是对f求导函数

在进行微分时候,结果有时候需要化简可以用simplify()函数,若果式子里边含有分子和分母可以用numden这个函数,  [a,b]=umden(f);这个式子返回a为f 的分子,b返回f的分母。

3、积分

(1)、积分运算函数int(f,x),这代表对f里的变量x求不定积分,

int(f,x,a,b),这代表对f里的变量x求定积分。

int(int(f,x),y),这样可以求二重积分,多层嵌套可以求多重积分。

注:int()函数可以计算解析解。

(2)、integral()函数

integral(f,a,b,\'RelTol\',1e-20,\'Arrayvalued\',true);

函数f可以设置为函数句柄的形式(f一定是单变量的函数),a,b是对应的积分上下限,RelTol这个选项对应的就是设置误差限,在这里就相当于1e-20,ArrayValued的选项就是相当于允许向量化输入,比如f里面有a,x两个变量,对x进行积分,但是设置a=[1 2 3 ]这个向量时就必须设置这个选项否则结果报错!

这里需要注意一点就是,

integral2()函数

他针对于二重积分的数值求解。

syms x
y=(x.*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(sin(x)).^3
limit(y,x,0)
-----------------------------------------------
ans =
 
-1/2
 注用function无法实现
-------------------------------------------------

syms x
y=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1);
limit(y,x,-1,\'right\')

-----------------------------

ans =
-Inf

 15.4微分

syms a x t;
A=[a^x t^3;t*cos(x) log(x)];
y1=diff(A,x)
y2=diff(A,x,2)
y3=diff(A,x,t)
-------------------------------------
y1 =
[ a^x*log(a),   0]
[  -t*sin(x), 1/x]
y2 =
[ a^x*log(a)^2,      0]
[    -t*cos(x), -1/x^2]
y3 =
[       0, 0]
[ -sin(x), 0]

  15.5 偏导

syms x y;
f(x,y)=(x^2-2*x)*exp(-x^2-y^2-x*y)
y1(x,y)=diff(f,x)/diff(f,y)
y2(x,y)=diff(f,x,y)
y2(0,1)
------------------------------
y1(x, y) =
(exp(x^2 + x*y + y^2)*(exp(- x^2 - x*y - y^2)*(2*x - 2) + exp(- x^2 - x*y - y^2)*(- x^2 + 2*x)*(2*x + y)))/((- x^2 + 2*x)*(x + 2*y)) 
y2(x, y) =
exp(- x^2 - x*y - y^2)*(- x^2 + 2*x) - exp(- x^2 - x*y - y^2)*(2*x - 2)*(x + 2*y) - exp(- x^2 - x*y - y^2)*(- x^2 + 2*x)*(x + 2*y)*(2*x + y)
ans =
4*exp(-1)

  16 积分

syms x ;
f1=1/(1+x^4+x^8);
f2=1/((asin(x))^2*sqrt(1-x^2));
f3=(x^2+1)/(x^4+1);
f4=exp(x)*(1+exp(x))^2;
y1=int(f1,x)
y2=int(f2,x)
y3=int(f3,x,0 +inf)
y4=int(f4,x,0 ,log(2))
--------------------------------
y1 =
-(3^(1/2)*(atan((2*3^(1/2)*x)/(3*((2*x^2)/3 - 2/3))) - atanh((2*3^(1/2)*x)/(3*((2*x^2)/3 + 2/3)))))/6
y2 =
-1/asin(x)
y3 =
(pi*2^(1/2))/2 - (2^(1/2)*(atan(2^(1/2)*x*(1/2 - i/2)) + atan(2^(1/2)*x*(1/2 + i/2))))/2
y4 =
(exp(6243314768165359/9007199254740992)*(3*exp(6243314768165359/9007199254740992) + exp(6243314768165359/4503599627370496) + 3))/3 - 7/3