matlab--求极限和级数
L=limit(fun, x, x0) % //普通极限L=limit(fun, x, x0, 'left') % //左极限L=limit(fun, x, x0, 'right') % //右极限%fun指函数表达式,x是函数自变量,x0是极限范围。
目录
1.求极限
1.1极限的定义
1.2单变量求极限
普通极限
左极限
右极限
matlab实现方法
L=limit(fun, x, x0) % //普通极限
L=limit(fun, x, x0, 'left') % //左极限
L=limit(fun, x, x0, 'right') % //右极限
%fun指函数表达式,x是函数自变量,x0是极限范围
实例解析
syms x;
f=sin(x)/x;
L=limit(f, x, 0)
syms x a b
f = x*(1+a/x)^x*sin(b/x)
L = limit(f, x, inf)
syms x;
L = limit((exp(x^3)-1)/(1-cos(sqrt(x-sin(x)))),x,0,'right')
注意:matlab中表达e^x使用exp函数,exp(x)。
用下面的语句还可以绘制出( − 0.1 , 0.1 ) 区间的函数曲线。
x0=-0.1:0.001:0.1;
y0=((exp(x0.^3)-1)./(1-cos(sqrt(x0-sin(x0)))));
plot(x0, y0, '-', [0], [L], 'o')
可见, 对这个例子来说, 即使不用单边极限,使用画图法也能求出函数极限值是12,
syms t;
f=tan(t);
L1=limit(f,t,pi/2,'left')
L2=limit(f,t,pi/2,'right')
syms n positive
f = n^(2/3)*sin(factorial(n))/(n+1);
F = limit(f,n,inf)
1.3多变量函数求极限
matlab实现方法
多元函数的极限也可以同样用MATLAB中的limit()
函数直接求解。
假设有二元函数f ( x , y ) f(x,y)f(x,y), 若想求出二元函数的累极限
则可以嵌套使用limit()
函数。例如:
L1 = limit(limit(f,x, x0), y, y0)
L2 = limit(limit(f,y, y0), x, x0)
如果x 0或y 0 不是确定的值, 而是另一个变量的函数, 例如x → g ( y )则上述的极限求取顺序不能交换。
应用举例
syms x a;
syms y positive;
f = exp(-1/(y^2+x^2))*sin(x)^2/x^2*(1+1/y^2)^(x+a^2*y^2);
L = limit(limit(f, x, 1/sqrt(y)), y, inf)
syms x y;
f=(x*y/(x^2+y^2))^(x^2);
L1=limit(limit(f,x,inf),y,inf)
L2=limit(limit(f,y,inf),x,inf)
L3=limit(limit(f,x,y^2),y,inf)
L4=limit(limit(f,y,x^2),x,inf)
证明极限不存在比求重极限容易的多,可以沿y=kx趋近。
syms r x y
f=x*y/(x^2+y^2);
L=limit(subs(f,y,r*x),x,0)
R = subs(S, old, new) 利用new的值代替符号表达式中old的值。
old为符号变量或是字符串变量名。
new是一个符号货数值变量或表达式
2.求级数
2.1无限极数
无穷级数(无限极数)是研究有次序的可数或者无穷个数函数的和的收敛性及和的数值的方法,理论以数项级数为基础,数项级数有发散性和收敛性的区别。只有无穷级数收敛时有一个和,发散的无穷级数没有和。(本段定义引用自百度百科无限级数)
2.2symsum函数
在MATLAB中提供了symsum函数用于计算无限级数,其中symsum函数的调用方式为:
symsum(y,x,start,end)
y是一个符号表达式,表示的是该无限级数的通项,
x表示的是进行计算的自变量,
start表示的是开始项,
end表示的是结束项。
下面对于symsum函数进行举例,例如利用MATLAB判断下面的级数和为多少:
MATLAB代码如下所示:
syms n
s=symsum(1/(n*(n+1)),n,1,Inf)
2.3实例解析
下面对于一些无限级数的示例进行求解,例如:
MATLAB代码如下所示:
syms n
x1=(-1^(n-1))/(n*(n+2))
x2=1/((5*n-4)*(5*n+1))
x3=1/(n^2)
x4=((-1)^(n+1))/(n^2)
y1=symsum(x1,n,1,Inf)
y2=symsum(x2,n,1,Inf)
y3=symsum(x3,n,1,Inf)
y4=symsum(x4,n,1,Inf)
2.4泰勒极限
如果f(x)在具有任意接的导数,则幂函数
称为在处的泰勒级数。
在泰勒级数中,取,得到的级数:
称为麦克劳林级数。函数f(x)的麦克劳林级数是x的幂函数,那么这种展开是唯一的,且必然与f(x)的麦克劳林级数一致。
2.5taylor函数
在MATLAB中提供了taylor函数对符号表达式求其泰勒级数的表达式,taylor函数的调用方式为:
taylor(y,x,a,Name,Value)
y表示的是待展开的函数表达式。
x表示自变量。
a表示的是函数y在x=a的展开值。
Name有三个取值,包括ExpansionPoint、Order以及OrderMode,而Value表示Name的取值,具体的细节如下所示:Order:指定截断阶,所取的是一个正整数,未设置的时候,截断阶为6,表示的最高阶为5。
ExpansionPoint:指定展开点,系统的默认值为0。
OrderMode:指定展开式相对阶和绝对阶,有两个取值,分别为Absolute和Relative,如果未设置,那么系统默认为Absolute。
下面举例利用MATLAB中taylor函数对于符号表达式的泰勒级数进行计算。
例如对于在x=0处求其泰勒级数。
利用MATLAB进行求解如下所示:
syms x
y=exp(x);
taylor(y)
通过上述运行结果可以看出系统默认的输出结果的最高阶是5,并且默认情况下取变量x在x=0时的情况
2.6实例解析
利用MATLAB我们还可以对一些较为符号表达式进行求解。例如:
syms x
f1=exp(-x^2/2);
f2=1/(x-1);
f3=sin(4*x);
f4=x/2*cos(x);
y1=taylor(f1,x,0)
y2=taylor(f2,x,0,'Order',7)
y3=taylor(f3,x,0,'Order',6)
y4=taylor(f4,x,0)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)