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


总结

目录
相关文章
|
5月前
|
算法 计算机视觉 异构计算
基于FPGA的图像PSNR质量评估计算实现,包含testbench和MATLAB辅助验证程序
基于FPGA的图像PSNR质量评估计算实现,包含testbench和MATLAB辅助验证程序
|
6月前
专题七MATLAB符号计算-1
专题七MATLAB符号计算
40 0
|
1天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到"result.txt"以供MATLAB显示图像分割效果。
|
14天前
|
传感器 存储 数据库
matlab测量计算信号的相似度
matlab测量计算信号的相似度
14 0
|
8月前
|
机器学习/深度学习 传感器 算法
【TGV 正则器的快速计算方法】通过FFT的总(广义)变化进行图像去噪(Matlab代码实现)
【TGV 正则器的快速计算方法】通过FFT的总(广义)变化进行图像去噪(Matlab代码实现)
|
4月前
【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)
【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)
|
8月前
|
机器学习/深度学习 传感器 算法
【气动学】基于涡格法实现气动力计算附Matlab代码
【气动学】基于涡格法实现气动力计算附Matlab代码
|
9月前
|
算法
基于遗传算法和粒子群算法的潮流计算比较(Matlab代码实现)
基于遗传算法和粒子群算法的潮流计算比较(Matlab代码实现)
|
5月前
|
算法 计算机视觉
基于WTMM算法的图像多重分形谱计算matlab仿真
基于WTMM算法的图像多重分形谱计算matlab仿真
|
8月前
|
机器学习/深度学习 传感器 算法
【视频处理】通过调用图像来重建新影片及计算颜色通道的平均灰度值,并检测帧与前一帧之间的差异(Matlab代码实现)
【视频处理】通过调用图像来重建新影片及计算颜色通道的平均灰度值,并检测帧与前一帧之间的差异(Matlab代码实现)

热门文章

最新文章