慕课matlab学习 第七章-040

第七节-Matlab符号计算

03-级数





% 第七节-Matlab符号计算
% 03-级数

%   1、级数求和
%   2、泰勒级数


%   1、级数求和
%   求无穷级数的和需要符号表达式求和函数symsum(),其调用格式为:
%   symsum(s,v,n,m)
%   其中,s表示一个级数的通项,是一一个符号表达式。v是求和变量,
%   【v】省略时使用系统的默认【变量】。n和m是求和变量v的初值和末值。

%1求下列级数之和。
% s=1+4+9+16+...+ 10000 n2
% S2=1-1/2+1/3.....+(-1)^(n+1)*(1/n)
% S3=1-1/3+1/5.....+(-1)^(n+1)*(1/(2n-1))


syms n;
s1=symsum(n^2,1,100) %级数求和,级数是 n^2  n=[1,100]进行求和
s2=symsum((-1)^(n-1)/n,1,+inf) %级数求和,级数是 n^2  n=[1,+oo]进行求和
s3=symsum((-1)^(n-1)/(2*n-1),1,+inf) %级数求和,级数是 n^2  n=[1,+oo]进行求和
hypergeom([-1/2, 1], 1/2, -1) %超几何函数
eval(s3)                      %转换为数值
eval(s3)*4  %圆周率 pi

% 假设某人在银行存款50000元,年利率为4.5%,按复利计息。
% ①若半年期计息一次,请问一年后总金额是多少?
% ②若每季度计息一次,请问一年后总金额是多少?
% ③若每月计息一次,请问- -年后总金额是多少?
% ④若计息时间无限短,即计息期数趋于无穷,则一年后总金额是多少?



% 假设存款(初始总金额)为p,年利率为r,计息期数为k。
% 第一期后总金额为p*(1+r/k)% 第二期后总金额为p*(1+r/k}% 第三期后总金额为p*(1+r/k)。
 syms k r
 p2=symsum(50000*(1+0.045/k)^k,k,2,2) %计算级数第2项的值[2,2]表示的是第2项 半年计息一次
 eval(p2)
 p2=symsum(50000*(1+0.045/k)^k,k,4,4) %计算级数第4项的值[4,4]表示的是第4项 一个季度计息一次
 eval(p2)
 p2=symsum(50000*(1+0.045/k)^k,k,12,12) %计算级数第4项的值[12,12]表示的是第4项 一个月计息一次
 eval(p2)
 limit((1+r/k)^k,k,inf) %无穷次计息
 50000*exp(0.045)
 
 

% 在级数的计算中,因为小数都表示为有理分数的形式,容易导致分子
% 或分母出现极大整数从而无法计算的情况。
% eg
s=symsum(1/n^2,n,1,inf)
s1=symsum(1/n^2,n,1,500)
eval(s1)


% 泰勒级数
% 可以将任意一个函数转换为一个幂级数
% MATLAB提供了taylor( )函数将函数展开为幂级数。
% 其调用格式为:
% taylorlf,v,a,Name,Value)
% 该函数将函数f按【变量v】在【a点】【展开】为泰勒级数,v省略时按
% 默认规则确定变量, a的默认值是0。【Name】和【Value】为选项设置,
% 经常成对使用,前者为选项名,后者为该选项的值。

% Name有3个取值: 【name 和 value 是对应的】
%'ExpansionPoint': 指定展开点,对应值可以是标量或向量。未
% 设置时,展开点为0%'Order' :指定截断参数,对应值为一个正整数。未设置时,截断
% 参数为6,即展开式的最高阶为5%'OrderMode': 指定展开式采用绝对阶或相对阶,对应值为
% 'Absolute''Relative'。未设置时取' Absolute'%求函数f zai x=1处的5阶泰勒级数展开式
% f(x)=(1+x+x^2)/(1-x+x^2)
syms x; % 定义变量x
f=(1+x+x^2)/(1-x+x^2); %建立f(x)
ts=taylor(f,x, 1,'Order',6) %求解泰勒展开式,变量x,在x=1处展开,order等于6,即最高阶为5
expand(ts) %对ts 展开符号表达式

% 复杂函数的计算方法问题
% 由以前所学习的计算机基础知识,我们已经知道了计算机的加法和减法运算规则。

% 除了四则运算以外,计算机对其他复杂函数怎么计算?
% 是否存在一种方法,使得计算机只需要通过四则运算,
% 就能计算其他复杂函数?
% 答:泰勒级数展开就可以实现复杂运算

% eg
syms x
f=taylor(cos(x),x,pi) %cos(x) 在pi 处进行泰勒展开
x=3
eval(f)
cos(3)
% 通过泰勒级数展开的方法,成功地将三E角函数的计算转换成了四则运算。
















你可能感兴趣的:(Matlab)