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

您所在的位置:网站首页 求级数的值是求极限吗 利用MATLAB计算级数之和与泰勒级数的应用

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

2024-07-17 16:24| 来源: 网络整理| 查看: 265

文章目录 摘要1 级数求和1.1 MATLAB级数求和函数1.2 级数求和应用实例1.3 特例 2 泰勒级数2.1 泰勒级数函数的调用2.2 泰勒级数的应用 结语

摘要

本文是《科学计算与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​=1−21​+31​−41​+...+(−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​=1−31​+51​−71​+...+(−1)n+12n−11​... (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​=1−21​+31​−41​+...+(−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​=1−31​+51​−71​+...+(−1)n+12n−11​...

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是什么意思。 看看4倍的S3​是什么意思。

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。 假设存款(初始总金额)为p,年利率为r,计息期数为k。第一期后总金额为p∗(1+r/k)。第二期后总金额为p∗(1+r/k)2。第三期后总金额为p∗(1+r/k)3。依此类推,第k期后总金额为p∗(1+r/k)k。

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

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=1−x+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

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

结语

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



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3