Matlab_级数

级数

01 求级数的和函数

调用格式为:

fn为级数的通项,k为级数项数,k0与kn为级数的开始项和终止项。
(fn需要以符号表达式给出,若fn只有一个自变量,则k可以省略。)

S=symsum(fn,k,k0,kn)

实践

  1. 求等比数列 a q n aq^n aqn的和函数
syms n q a;
fn=a*q^n;
s=symsum(fn,n,0,Inf)

运行

s =
 
piecewise(1 <= q, Inf*a, abs(q) < 1, -a/(q - 1))

piecewise表示分段,即: 当 q ≥ 1 时 , s = ∞ , 当 ∣ q ∣ < 1 时 , s = − a q − 1 当q \geq 1 时,s= \infty ,当|q| < 1 时,s=\frac{-a}{q-1} q1s=q<1s=q1a




02 求和函数可用于检验敛散性

实践

  1. 判 断 级 数 的 敛 散 性 : 1 、 ∑ n = 1 ∞ 1 n ( n + 1 ) ;         2 、 ∑ n = 1 ∞ n ( 4 3 ) n 判断级数的敛散性:1、 \sum^{\infty}_{n=1}\frac{1}{n(n+1)}; \ \ \ \ \ \ \ 2、 \sum^{\infty}_{n=1}n(\frac{4}{3})^n 1n=1n(n+1)1;       2n=1n(34)n

求解

%题1
syms n;
fn=1/(n*(n+1));
s=symsum(fn,n,1,Inf)

%题2
syms n;
s=symsum(n*(4/3)^n,1,Inf)

运行

题1:级数收敛
s =
 
1

题2:级数发散
s =
 
Inf

注意

有时候,对于一些复杂级数,matlab无法直接给出的解析解。例如:

  1. 判 断 级 数 的 敛 散 性 : 1 、 ∑ n = 1 ∞ ( − 1 ) n 1 n 判断级数的敛散性:1、 \sum^{\infty}_{n=1}(-1)^n\frac{1}{\sqrt{n}} 1n=1(1)nn 1
syms n;
s=symsum((-1)^n/n^(1/2),n,1,Inf)

运行

>> syms n;
s=symsum((-1)^n/n^(1/2),n,1,Inf)
 
s =
 
symsum((-1)^n/n^(1/2), n, 1, Inf)

显然,这个答案不是我们想要的结果。此时我们可以尝试使用vpa命令给出答案的精度。

syms n;
s=symsum((-1)^n/n^(1/2),n,1,Inf);
vpa(s,8)        % 8表示s的数值解的精度

运行

>> syms n;
s=symsum((-1)^n/n^(1/2),n,1,Inf);
vpa(s,8)
 
ans =
 
-0.60489864

说明级数收敛

除了上述方法,我们还会遇到其他一些和函数无法给出解析解的情况。可考虑以下思路。

判 断 ∑ n = 1 ∞ s i n 1 n ( n + 1 ) 的 敛 散 性 判断\sum^{\infty}_{n=1}sin\frac{1}{n(n+1)}的敛散性 n=1sinn(n+1)1

syms n;
s=symsum(sin(1/(n*(n+1))),n,1,Inf);

运行

>> syms n;
s=symsum(sin(1/(n*(n+1))),n,1,Inf)
 
s =
 
symsum(sin(1/(n*(n + 1))), n, 1, Inf)

显然Matlab无法给出解析解,此时我们可以通过求有限项之和来求级数和。

syms n;
s=symsum(sin(1/(n*(n+1))),n,1,1000);     % n=1000时的和
vpa(s,6)
s=symsum(sin(1/(n*(n+1))),n,1,10000);     % n=10000时的和
vpa(s,6)
s=symsum(sin(1/(n*(n+1))),n,1,100000);     % n=100000时的和
vpa(s,6)

运行

ans =
 
0.977528        % n=1000时的和
 
ans =
 
0.978427        % n=10000时的和
 
ans =
 
0.978517        % n=100000时的和

此时从数学实验的角度分析,可以得出级数收敛于某个数。
当然,更严谨的讲,有时候需要运用比较审敛法等审敛方法来确定级数是否收敛。

03 求收敛半径与收敛域

实践

  1. 求 幂 级 数 ∑ n = 1 ∞ x n 3 n n 的 收 敛 域 与 和 函 数 求幂级数\sum^{\infty}_{n=1}\frac{x^n}{3^nn}的收敛域与和函数 n=13nnxn

求解

A. 第一步:求收敛半径 (利用后项系数与前项系数之比,再求倒数即为收敛半径。)

syms n;
a1=1/(3^n*n);        
a2=1/(3^(n+1)*(n+1));
r=limit(a1/a2,n,Inf)
r = 3       %得出收敛半径为3

B. 第二步:考察端点处级数是否收敛

syms n;
s1=symsum((-3)^n/(3^n*n),n,1,Inf)
s2=symsum((3)^n/(3^n*n),n,1,Inf)
s1 =
 
-log(2)     % 说明级数在x=-3处收敛
 
 
s2 =
 
Inf         % 说明级数在x=3处发散

则 幂 级 数 ∑ n = 1 ∞ x n 3 n n 收 敛 域 为 [ − 3 , 3 ) 则幂级数\sum^{\infty}_{n=1}\frac{x^n}{3^nn}收敛域为[-3,3) n=13nnxn[3,3)

C. 第三步:求和函数

syms n x;
s1=symsum(x^n/(3^n*n),n,1,Inf)

运行结果

s1 =
 
piecewise(x == 3, Inf, abs(x) <= 3 & x ~= 3, -log(1 - x/3))     

04 泰勒展开

调用格式为:
f为要展开成级数的函数,v为自变量,a表示在x=a处将函数展开,默认为0;

Value为展开的级数的项数,默认为6,此时为n-1次泰勒式展开;

如果要改变Value的值,则’Order’不可省略。(类似于命令?键值?)

f需要以符号表达式给出,若f只有一个自变量,则v可以省略。

taylor(f,v,a,'Order',Value)

实践

  1. 将 y = s i n x 在 x = 0 处 展 开 成 5 阶 泰 勒 展 开 式 将y=sinx在x=0处展开成5阶泰勒展开式 y=sinxx=05
syms x;
t51=taylor(sin(x))
t52=taylor(sin(x),x)
t53=taylor(sin(x),x,0)
t54=taylor(sin(x),x,0,'Order',6)

上面4个式子的结果一致:

t5 =
 
x^5/120 - x^3/6 + x

我们还可以尝试着绘制sinx的6阶展开式的图形,直观观察:

syms x;
f=sin(x);
F=ezplot(f,[-4+pi/4,4+pi/4]);
set(F,'LineWidth',2)
hold on
t6=taylor(sin(x),x,0,'Order',7);    %注意6阶展开式,项数应该为7
T6=ezplot(t6,[-4+pi/4,4+pi/4])
set(T6,'LineStyle','--')
hold off

运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0bcVZWWp-1611131190580)(2021-01-20-16-25-50.png)]

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值