三、级数
1、级数求和
(1)求无穷级数的和需要符号表达式求和函数symsum(s,v,n,m),其中s表示一个级数的通项,是一个符号表达式。v是求和变量,省略时使用系统的默认变量。n和m是求和变量v的初值和末值。
(2)例子:
- 求下列级数之和
- 银行利率计算问题
syms k r; p2=eval(symsum(50000*(1+0.045/k)^k,k,2,2))%半年计息 p4=eval(symsum(50000*(1+0.045/k)^k,k,4,4))%按季度计息 p12=eval(symsum(50000*(1+0.045/k)^k,k,12,12))%按月计息 p_inf=limit(50000*(1+r/k)^k,k,inf)%用极限求无限期数
从结果知,当期数趋于无限大时,年利率确定,总金额也确定。因此,当年利率为4.5%,计息期趋于无穷时,一年后总金额为:
50000*exp(0.045)=5.2301e+04
(3)需要注意的是,符号计算中因为小数都是表示为有理分数的形式,随着计算次数的增加,容易导致分子或分母出现极大整数从而无法计算。
2、泰勒级数
(1)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在x=1处的5阶泰勒级数展开式
(3)使用泰勒级数展开,可以让计算机只需要通过四则运算便能计算其他复杂函数。
例子:利用泰勒展开式计算三角函数cosx的值
四、符号方程的求解
1、代数方程符号求解
(1)MATLAB中求解符号表达式的代数方程可以用solve()实现:
- solve(s):求解符号表达式s的代数方程,求解变量为默认变量。
- solve(s,v):求解符号表达式s的代数方程,求解变量为v。
- solve(s1,s2,……,sn,v1,v2,……,vn):求解符号表达式s1,s2,……,sn组成的代数方程组,求解变量分别为v1,v2,……,vn。
(2)例子:解方程
以下给出四种形式
(3)需要注意的是,solve()函数求解方程时不一定准确,有时候方程有解,solve却给出无解。
例如下面方程组:
因此,利用solve求解方程组需要尝试不同方法。
2、常微分方程符号求解
- MATLAB中,大写字母D表示导数。如,Dy表示y’,D2y表示y’’,Dy(0)=5表示y’(0)=5。但注意,此方法未来新版本替换,而是使用syms声明变量。例如: ,定义代码为:syms y(t);diff(y,t,2)
- 符号常微分方程求解可以通过函数dsolve()来实现,格式:dsolve(e,c,v)
用于求解常微分方程e在初值条件c下得特解。参数v是方阵中的自变量,省略时按默认处理,若没给出初值条件c,则求方程的通解。
- dsolve在求常微分方程组时格式为:
dsolve(e1,e2,……,en,c1,c2,……,cn,v)
(1)例子
①求下列微分方程或方程组的解
②疾病传染问题
(1)当λ=μ=0.3,b=0.7
syms y(t) t; e1=diff(y,t)==0.3*y*(1-y)-0.3*y; e2=y(0)==0.7; y=dsolve(e1,e2,t) fplot(y,[0,100]) xlabel('时间t'); ylabel('病人比例y')
当λ=μ时,病人比例随着时间增加而减少
(2)当λ=0.3,μ=0.15,b=0.15时
syms y(t) t; e1=diff(y,t)==0.3*y*(1-y)-0.15*y; e2=y(0)==0.3; y=dsolve(e1,e2,t) fplot(y,[0,100]) xlabel('时间t'); ylabel('病人比例y') m=limit(y,t,inf)
此时,病人比例随着时间增加而增加,并趋于0.5
总结