利用MATLAB计算级数之和与泰勒级数的应用

摘要

本文是《科学计算与MATLAB语言》专题七第3小节的学习笔记,如果大家有时间的话,可以去听听课,没有的话,可以看看我的笔记,还是很不错的。本节主要讲了如何利用MATLAB求级数之和以及泰勒级数如何计算,文中每个代码我都跑过一遍,可以直接复制到MATLAB中运行。

1 级数求和

1.1 MATLAB级数求和函数

求无穷级数的和需要符号表达式求和函数symsum(),其调用格式为:
symsum(s,v,n,m)
其中,s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和变量v的初值和末值。
银行利率的计算问题
例1 求下列级数之和。
(1) S 1 = 1 + 4 + 9 + 16 + … + 10000 S_1=1+4+9+16+…+10000 S1=1+4+9+16++10000
(2) S 2 = 1 − 1 2 + 1 3 − 1 4 + . . . + ( − 1 ) n + 1 1 n . . . S_2=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+...+(-1)^{n+1}\frac{1}{n}... S2=121+3141+...+(1)n+1n1...
(3) S 3 = 1 − 1 3 + 1 5 − 1 7 + . . . + ( − 1 ) n + 1 1 2 n − 1 . . . S_3=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+...+(-1)^{n+1}\frac{1}{2n-1}... S3=131+5171+...+(1)n+12n11...
(1) S 1 = 1 + 4 + 9 + 16 + … + 10000 S_1=1+4+9+16+…+10000 S1=1+4+9+16++10000

syms n; 
s1=symsum(n^2,1,100)
s1 = 
338350

(2) S 2 = 1 − 1 2 + 1 3 − 1 4 + . . . + ( − 1 ) n + 1 1 n . . . S_2=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+...+(-1)^{n+1}\frac{1}{n}... S2=121+3141+...+(1)n+1n1...

s2=symsum((-1)^(n-1)/n,1,inf)
s2 = 
log(2)

(3) S 3 = 1 − 1 3 + 1 5 − 1 7 + . . . + ( − 1 ) n + 1 1 2 n − 1 . . . S_3=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+...+(-1)^{n+1}\frac{1}{2n-1}... S3=131+5171+...+(1)n+12n11...

s3=symsum((-1)^(n-1)/(2*n-1),n,1,inf)
s3 = 
hypergeom([-1/2, 1], 1/2, -1) - 1

上式是什么意思呢?

hypergeom([-1/2, 1], 1/2, -1) - 1
ans =
    0.7854

看 看 4 倍 的 S 3 是 什 么 意 思 。 看看4倍的S_3是什么意思。 4S3

s3=symsum((-1)^(n-1)/(2*n-1),n,1,inf)
eval(s3)*4
ans =
    3.1416

可以看出 S 3 = π 4 S_3=\frac{\pi}{4} S3=4π

1.2 级数求和应用实例

假设某人在银行存款50000元,年利率为4.5%,按复利计息。
①若半年期计息一次,请问一年后总金额是多少?
②若每季度计息一次,请问一年后总金额是多少?
③若每月计息一次,请问一年后总金额是多少?
④若计息时间无限短,即计息期数趋于无穷,则一年后总金额是多少?
思考:期数无限多,总金额是否也会无限增长?
问题分析:
假 设 存 款 ( 初 始 总 金 额 ) 为 p , 年 利 率 为 r , 计 息 期 数 为 k 。 第 一 期 后 总 金 额 为 p ∗ ( 1 + r / k ) 。 第 二 期 后 总 金 额 为 p ∗ ( 1 + r / k ) 2 。 第 三 期 后 总 金 额 为 p ∗ ( 1 + r / k ) 3 。 依 此 类 推 , 第 k 期 后 总 金 额 为 p ∗ ( 1 + r / k ) k 。 \color{green}假设存款(初始总金额)为p,年利率为r,计息期数为k。\\ 第一期后总金额为p*(1+r/k)。\\ 第二期后总金额为p*(1+r/k)^2。\\ 第三期后总金额为p*(1+r/k)^3。\\ 依此类推,第k期后总金额为p*(1+r/k)^k。 prkp1+r/kp1+r/k2p1+r/k3kp1+r/kk

①若半年期计息一次,请问一年后总金额是多少?

syms k r; 
p2=symsum(50000*(1+0.045/k)^k,k,2,2); 
eval(p2)
ans =
   5.2275e+04

②若每季度计息一次,请问一年后总金额是多少?

syms k r; 
p4=symsum(50000*(1+0.045/k)^k,k,4,4); 
eval(p4)
ans =
   5.2288e+04

③若每月计息一次,请问一年后总金额是多少?

syms k r; 
p12=symsum(50000*(1+0.045/k)^k,k,12,12); 
eval(p12)
ans =
   5.2297e+04

④若计息时间无限短,即计息期数趋于无穷,则一年后总金额是多少?

limit((1+r/k)^k,k,inf)%计算一下lim(1+r/k)^k,k趋于无穷大时的结果。
ans =
exp(r)

所以,即使是无数次计息,只要年利率确定,总金额也不会无限增长,它收敛于 p e r pe^r per
当p=5000,r=4.5%时。

5000*exp(0.045)
ans =
   5.2301e+03

1.3 特例

注 意 : 在 符 号 计 算 中 , 因 为 小 数 都 表 示 为 有 理 分 数 的 形 式 , 随 着 计 算 次 数 的 增 加 , 容 易 导 致 分 子 或 分 母 出 现 极 大 整 数 从 而 无 法 计 算 的 情 况 。 \color{red}注意:\\在符号计算中,因为小数都表示为有理分数的形式,随着计算次数的增加,\\容易导致分子或分母出现极大整数从而无法计算的情况。 ,
求以下级数之和
(1) S 1 = 1 + 1 / 4 + 1 / 9 + . . . + 1 / n 2 + . . . S_1=1+1/4+1/9+...+1/n^2+... S1=1+1/4+1/9+...+1/n2+...
(2) S 2 = 1 + 1 / 4 + 1 / 9 + . . . + 1 / 50 0 2 S_2=1+1/4+1/9+...+1/500^2 S2=1+1/4+1/9+...+1/5002

syms n; 
s1=symsum(1/n^2,n,1,inf)
s1 = 
pi^2/6
syms n; 
s2=symsum(1/n^2,n,1,500)
s2 =
409896675094...
eval(s2)
ans =
   NaN

第2个级数无法使用symsum函数求和。但可以使用循环计算。

s=0
for i=1:500
    s=s+1/i^2
end
s =
    1.6429

2 泰勒级数

2.1 泰勒级数函数的调用

MATLAB提供了taylor()函数将函数展开为幂级数,其调用格式为:
taylor(f,v,a,Name,Value)
该函数将函数f按变量v在a点展开为泰勒级数,v的默认值与diff函数相同,a的默认值是0。Name和Value为选项设置,经常成对使用,前者为选项名,后者为该选项的值。
Name有3个可取字符串:
①’ExpansionPoint’:指定展开点,对应值可以是标量或向量。
未设置时,展开点为0。
②’Order’:指定截断参数,对应值为一个正整数。未设置时,截断参数为6,即展开式的最高阶为5。
③’OrderMode’:指定展开式采用绝对阶或相对阶,对应值为
’Absolute’或’Relative’。未设置时取Absolute’。

例2 求函数 f f f x = 1 x=1 x=1处的5阶泰勒级数展开式。
(1) f = 1 + x + x 2 1 − x + x 2 f=\frac{1+x+x^2}{1-x+x^2} f=1x+x21+x+x2

syms x; 
f=(1+x+x^2)/(1-x+x^2); 
taylor(f,x,1,'order',6)
ans = 
2*(x - 1)^3 - 2*(x - 1)^2 - 2*(x - 1)^5 + 3
expand(ans)
ans = 
- 2*x^5 + 10*x^4 - 18*x^3 + 12*x^2 + 1

2.2 泰勒级数的应用

复杂函数的计算方法问题
除 了 四 则 运 算 以 外 , 计 算 机 对 其 他 复 杂 函 数 怎 么 计 算 ? 是 否 存 在 一 种 方 法 , 使 得 计 算 机 只 需 要 通 过 四 则 运 算 , 就 能 计 算 其 他 复 杂 函 数 ? \color{blue}除了四则运算以外,计算机对其他复杂函数怎么计算?\\是否存在一种方法,使得计算机只需要通过四则运算,就能计算其他复杂函数? 使
泰勒级数展开就是一种非常好的解决方案。
例3 利用泰勒展开式计算三角函数的值。

syms x; 
f=taylor(cos(x),x,pi)%求cos(x)的泰勒展开式并赋值给f
f = 
(x - pi)^2/2 - (x - pi)^4/24 - 1
syms x; 
f=taylor(cos(x),x,pi);
x=3;
eval(f)
ans =
   -0.9900
cos(3)
ans =

   -0.9900

通过泰勒级数展开的方法,成功地将三角函数的计算转换成了四则运算。
是不是感觉数学实在是太美妙了。

结语

最后欢迎大家点赞👍,收藏⭐,转发🚀
如有问题、建议,请您在评论区留言💬哦。

  • 17
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值