专题七MATLAB符号计算-2

简介: 专题七MATLAB符号计算

三、级数


1、级数求和

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

(2)例子:


  • 求下列级数之和

image.png

230925985244607c0d4be1f74850ecb9_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

  • 银行利率计算问题

56baab703086a1d018bc0cbc199e5a8e_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

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阶泰勒级数展开式

image.png

abcc3e43738893a70a230235c8a923ba_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

(3)使用泰勒级数展开,可以让计算机只需要通过四则运算便能计算其他复杂函数。

例子:利用泰勒展开式计算三角函数cosx的值

72dde73d7046691915958a58f92eb189_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png


四、符号方程的求解

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)例子:解方程image.png

以下给出四种形式

(3)需要注意的是,solve()函数求解方程时不一定准确,有时候方程有解,solve却给出无解。

例如下面方程组:

image.png

dfd2c9633b30dd4c6ca3f91b0d59af55_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

image.png

7992f1796e363e3103ad1c9616792524_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

因此,利用solve求解方程组需要尝试不同方法。


2、常微分方程符号求解


  • MATLAB中,大写字母D表示导数。如,Dy表示y’,D2y表示y’’,Dy(0)=5表示y’(0)=5。但注意,此方法未来新版本替换,而是使用syms声明变量。例如:image.png ,定义代码为: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)例子

①求下列微分方程或方程组的解


  • image.png

2c18beb2fb4aa565eefa54e38e9b0b7e_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

  • image.png


207a906e4cb59e63af559cec53b20002_20210430130957439.png

②疾病传染问题

557a33dcf13e473bf60d7f82ca58a4c1_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

(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')

61e8682e4d648ac0efc2ae00bd42cf0d_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

当λ=μ时,病人比例随着时间增加而减少

(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)

738f177608652f467993c4150b28bb03_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpY2FyZG8y,size_16,color_FFFFFF,t_70.png

此时,病人比例随着时间增加而增加,并趋于0.5


总结

目录
相关文章
|
26天前
|
边缘计算 资源调度 监控
无人机边缘计算中的计算卸载——Stackelberg博弈方法研究(Matlab代码实现)
无人机边缘计算中的计算卸载——Stackelberg博弈方法研究(Matlab代码实现)
|
1月前
|
Python
使用毕奥-萨伐尔定律计算圆形电流环的磁场,通过毕奥-萨伐尔定律,计算了圆形电流环的磁场(Matlab代码实现)
使用毕奥-萨伐尔定律计算圆形电流环的磁场,通过毕奥-萨伐尔定律,计算了圆形电流环的磁场(Matlab代码实现)
|
2月前
|
数据采集 数据可视化 前端开发
基于ARIMA电价预测,并计算置信区间研究(Matlab代码实现)
基于ARIMA电价预测,并计算置信区间研究(Matlab代码实现)
|
16天前
|
算法 机器人
基于SOA海鸥优化算法的PID控制器最优控制参数计算matlab仿真
本课题研究基于海鸥优化算法(SOA)优化PID控制器参数的方法,通过MATLAB仿真对比传统PID控制效果。利用SOA算法优化PID的kp、ki、kd参数,以积分绝对误差(IAE)为适应度函数,提升系统响应速度与稳定性。仿真结果表明,SOA优化的PID控制器在阶跃响应和误差控制方面均优于传统方法,具有更快的收敛速度和更强的全局寻优能力,适用于复杂系统的参数整定。
|
2月前
|
传感器 编解码 监控
【三维成像】45公里距离下的单光子计算三维成像研究(Matlab代码实现)
【三维成像】45公里距离下的单光子计算三维成像研究(Matlab代码实现)
|
14天前
|
数据采集 算法 前端开发
MATLAB|基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]
MATLAB|基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]
100 2
|
16天前
|
算法
【电力系统潮流】5节点系统潮流计算-牛拉法和PQ分解法(Matlab代代码实现)
【电力系统潮流】5节点系统潮流计算-牛拉法和PQ分解法(Matlab代代码实现)
152 3
|
16天前
|
传感器 算法 数据可视化
MATLAB来计算和仿真无人机飞行过程
使用MATLAB来计算和仿真无人机飞行过程中的运动参数是一个极其常见且强大的方法。这通常被称为无人机建模与仿真,是无人机飞控算法开发中不可或缺的一环。
37 1
|
16天前
|
Serverless Python
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
|
25天前
|
存储 编解码 并行计算
【快速傅里叶变换FFT、窗函数法、希尔伯特-黄变换、小波变换】电力系统同步相量计算研究(Matlab代码实现)
【快速傅里叶变换FFT、窗函数法、希尔伯特-黄变换、小波变换】电力系统同步相量计算研究(Matlab代码实现)

热门文章

最新文章