专题七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


总结

目录
相关文章
基于粒子滤波器的电池剩余使用寿命计算matlab仿真
本研究基于粒子滤波器预测电池剩余使用寿命(RUL),采用MATLAB2022a实现。通过非线性动力学模型模拟电池老化过程,利用粒子滤波器处理非线性和非高斯问题,准确估计电池SOH变化趋势,进而预测RUL。系统仿真结果显示了良好的预测性能。
|
4月前
|
算法
MATLAB符号计算
【10月更文挑战第9天】MATLAB不仅擅长数值计算,还具备强大的符号计算功能,支持代数运算、方程求解、微积分等。本文介绍如何使用MATLAB的符号工具箱进行符号变量定义、方程求解、微分积分及矩阵运算,并通过多个实际应用案例展示了其在机械系统、电路分析、经济优化和物理运动学等领域的应用。此外,文章还提供了符号计算的最佳实践和未来展望。
139 2
|
4月前
|
安全 调度
电力系统的负荷损失和潮流计算matlab仿真,对比最高度数,最高介数以及最高关键度等节点攻击
本课题研究节点攻击对电力系统稳定性的影响,通过模拟最高度数、最高介数和最高关键度攻击,对比不同攻击方式下的停电规模。采用MATLAB 2022a 进行系统仿真,核心程序实现线路断开、潮流计算及优化。研究表明,节点攻击会导致负荷损失和系统瘫痪,对电力系统的安全构成严重威胁。通过分析负荷损失率和潮流计算,提出减少负荷损失的方法,以提升电力系统的稳定性和安全性。
二阶锥松弛在配电网最优潮流计算中的应用matlab
二阶锥松弛在配电网最优潮流计算中的应用matlab
|
5月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
6月前
|
Python
【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
Python中实现MATLAB中rectint函数的方法,该函数用于计算两个矩形相交区域的面积,并通过定义Rectangle类和calc_area函数展示了如何计算两个矩形的交集面积。
86 1
|
7月前
|
安全 C++
基于MATLAB的电力线路参数计算仿真
*1. 课题概述** - 电力线路分为输电与配电,计算关键参数至关重要 - 本项目开发基于MATLAB的软件,用于计算电力线路的重要参数 *2. 系统仿真结果** - 实现了工频电场、电力系统潮流等参数的计算。 - 包括MATLAB界面设计与计算功能实现。 *3. 系统原理简介** - **额定电压**: 设备最佳工作电压,保障性能稳定及延长使用寿命。 - **输变电设施**: 运行时产生工频电场和磁场,需符合国家标准限值。 - **线径计算**: 依据电流密度和趋肤效应确定导线截面积。 - **电力系统潮流计算**: 基于牛顿-拉夫逊法求解电力系统稳态运行状态,用于检查系统过负荷及电压质量。
|
7月前
|
监控
基于偏微分方程离散化计算的地下换热器建模与温度检测matlab仿真
**摘要:** 探索地下换热器的建模与温度检测,使用MATLAB2022a进行系统仿真,关注传热过程的热传导、对流和辐射。通过离散化偏微分方程建立数值模型,模拟温度场,考虑地质特性和水流影响。建模以网格单元描述温度变化,采用热电偶、红外和光纤测温技术验证模型并监控温度,各具优缺点。光纤测温法提供高精度和抗干扰的分布式监测。
|
8月前
|
存储 算法 计算机视觉
m基于FPGA的FIR低通滤波器实现和FPGA频谱分析,包含testbench和滤波器系数MATLAB计算程序
在Vivado 2019.2平台上开发的系统,展示了数字低通滤波器和频谱分析的FPGA实现。仿真结果显示滤波效果良好,与MATLAB仿真结果一致。设计基于FPGA的FIR滤波器,利用并行处理和流水线技术提高效率。频谱分析通过离散傅里叶变换实现。提供了Verilog核心程序以示例模块工作原理。
83 4
|
8月前
|
算法
m基于PSO粒子群优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB2022a仿真实现了基于遗传优化的NMS LDPC译码算法,优化归一化参数以提升纠错性能。NMS算法通过迭代处理低密度校验码,而PSO算法用于寻找最佳归一化因子。程序包含粒子群优化的迭代过程,根据误码率评估性能并更新解码参数。最终,展示了迭代次数与优化过程的关系,并绘制了SNR与误码率曲线。
70 2