MATLAB多项式运算与电路仿真

table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}

1、使用MATLAB推导具有以下根的多项式:a. 根为(6.5708, – 0.7146 + j0.3132, – 0.7146 – j0.3132);b. 在(x = – 2.000)处有两个根,在(x = – 3.000)处有三个根。

在MATLAB中,可使用

poly

函数根据已知根推导多项式。

对于 a,定义根向量:


r_a = [6.5708, -0.7146 + 1i*0.3132, -0.7146 - 1i*0.3132];

然后使用:


p_a = poly(r_a);

得到多项式系数。

对于 b,定义根向量:


r_b = [-2, -2, -3, -3, -3];

再使用:


p_b = poly(r_b);

得到多项式系数。

2、使用MATLAB计算以下多项式在指定值处的值。a. 多项式(p(x)=x^{3}+8x^{2}+10x + 4)在(x = 1.25)处的值;b. 多项式(p(y)=y^{5}+7y^{4}+19y^{3}+25y^{2}+16y + 4)在(y=-3.75)处的值。

在MATLAB中,对于 $ a $,可使用语句


p_a = [1 8 10 4];
val_a = polyval(p_a, 1.25)

来计算;对于 $ b $,可使用语句


p_b = [1 7 19 25 16 4];
val_b = polyval(p_b, -3.75)

来计算。

3、已知在某电路中,施加的电压 (V_S) 保持恒定,电容器两端的电压 (V_C) 与弧度频率 (ω) 的关系如下:(ω) 的数值为 500、600、700、800、900、1000、1100、1200、1300、1400、1500、1600;(V_C) 的数值为 88.9、98.5、103.0、104.9、105.3、104.8、103.8、102.4、100.7、98.9、96.5、94.9。以 (V_C)(dB 刻度)为纵坐标,(ω)(常用对数刻度)为横坐标绘制图表,并正确标注坐标轴。

可使用以下 MATLAB 代码实现:


omega = [500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600];
VC = [88.9, 98.5, 103.0, 104.9, 105.3, 104.8, 103.8, 102.4, 100.7, 98.9, 96.5, 94.9];
VC_dB = 20*log10(VC);
semilogx(omega, VC_dB);
xlabel('ω (rad/s)');
ylabel('V_C (dB)');
title('Capacitor Voltage vs Radian Frequency');
grid on;

4、已知多项式系数向量 Px = [1 8 10 4],求该多项式的根;已知多项式系数向量 Py = [1 7 19 25 16 4],求该多项式的根。


`roots(Px)` 的结果为 -6.5708、-0.7146 + 0.3132i、-0.7146 - 0.3132i;  
`roots(Py)` 的结果为 -2.0000、-2.0000、-1.0000、-1.0000 + 0.0000i、-1.0000 - 0.0000i。

5、已知r1=[−6.5708 −0.7146+0.3132j −0.7146−0.3132j],求poly_r1=poly(r1);已知r2=[−2 −2 −3 −3 −3],求poly_r2=poly(r2)。


poly_r1 = 1.0000  8.0000  9.9997  4.0000;
poly_r2 = 1  13  67  171  216  108

6、已知Pv=[1 8 10 4],求value=polyval(Pv, 1.25);已知Pw=[1 7 19 25 16 4],求value=polyval(Pw, −3.75)。


Pv = [1 8 10 4]

时,

value = polyval(Pv, 1.25)

的结果为

30.9531




Pw = [1 7 19 25 16 4]

时,

value = polyval(Pw, -3.75)

的结果为

-63.6904

7、已知w=[5 6 7 8 9 10 11 12 13 14 15 16]

100; Vc=[88.9 98.5 103 104.9 105.3 104.8 103.8 102.4 100.7 98.9 96.5 94.9]; 执行dB=20

log10(Vc); semilogx(w,dB); grid; title(‘Magnitude of Vc vs. w’); xlabel(‘w in rads/sec’); ylabel(‘|Vc| in volts’),请解释操作的含义。

此段代码是用MATLAB进行操作,首先定义了两个数组

w


Vc

,接着计算

Vc

各元素以10为底的对数再乘以20得到

dB

数组,然后绘制以

w

为x轴(对数刻度)、

dB

为y轴的半对数坐标图,添加网格线,设置图的标题为

‘Vc的幅值与w的关系’

,设置x轴标签为

‘w(弧度/秒)’

,y轴标签为

‘|Vc|(伏特)’

8、使用MATLAB的for – end循环程序,对多项式(y = x^4 + x – 3)进行12次迭代,用二分法求根。

以下是实现该功能的MATLAB代码:


% 定义多项式函数
f = @(x) x.^4 + x - 3;

% 初始区间
a = -2; % 左端点
b = 2; % 右端点

% 迭代次数
n = 12;
for i = 1:n
    % 计算中点
    c = (a + b) / 2;

    % 判断根所在的区间
    if f(c) * f(a) < 0
        b = c;
    else
        a = c;
    end
end

% 输出结果
root = (a + b) / 2;
fprintf('经过12次迭代后,多项式的根近似为: %.10f
', root);

将上述代码复制到MATLAB命令窗口或脚本文件中运行,即可得到经过12次迭代后多项式的近似根。

9、使用MATLAB验证:(22 + 6j)/(3 + 2j),(8 + 6j)/(-3 – j),120/(4 – 10j),(3 – 2j)/(3 + 2j)的值

以下是给定的文本内容转换为 Markdown 格式的结果:


给定的复数运算结果如下:

$frac{22 + 6j}{3 + 2j}$ 的结果为 $6 – 2j$

$frac{8 + 6j}{-3 – j}$ 的结果为 $-3 – 1j$

$frac{120}{4 – 10j}$ 的结果为 $frac{120}{29} + frac{300}{29}j$

$frac{3 – 2j}{3 + 2j}$ 的结果为 $frac{5}{13} – frac{12}{13}j$

10、用MATLAB检验:(12 + 5j)^(1/6),(100 * sqrt(2) * (1 – j))^(1/4) 的结果

以下是给定内容的 Markdown 格式呈现:


(12+5j)^(1/6) 的结果约为 1.53 + j0.10;  
(100*sqrt(2)*(1−j))^(1/4) 的结果约为 3.6883 - j0.7337

11、使用MATLAB检查:4×(cos(π/6)+sin(π/6)×j) / (5×(cos(-5π/6)+sin(-5π/6)×j)) 以及 exp(π×j/3) / (-2×exp(-π×j/6)) 的结果

第一个表达式结果为 -0.8000 – 0.0000i

第二个表达式结果为 -0.0000 – 0.5000i

12、已知矩阵A,分别计算矩阵A的行列式detA;求矩阵A的伴随矩阵adjA;求矩阵A的逆矩阵A^(-1);若存在矩阵关系,计算X的值。给出以下矩阵:矩阵A1 = [1 2 3; 1 3 4; 1 4 3],矩阵A2 = [4 3; 2 2],矩阵A3 = [2 3 1; 1 2 3; 3 1 2],矩阵A4 = [1 3 4; 3 1 2; -2 3 5],分别对这些矩阵进行上述计算。

不同矩阵的计算结果


对于矩阵 A = [1 2 3; 1 3 4; 1 4 3]:


– detA = -2

– adjA = [7 -6 1; -1 0 1; -1 2 -1]

– A⁻¹ = [3.5 -3 0.5; -0.5 0 0.5; -0.5 1 -0.5]


对于矩阵 A = [4 3; 2 2]:


– detA = 2

– adjA = [2 -3; -2 4]

– A⁻¹ = [1 -3/2; -1 2]


对于矩阵 A = [2 3 1; 1 2 3; 3 1 2]:


– detA = 18

– adjA = [1 -5 7; 7 1 -5; -5 7 1]

– A⁻¹ = [1/18 -5/18 7/18; 7/18 1/18 -5/18; -5/18 7/18 1/18]

– X = [1.9444; 1.6111; 0.2778]


对于矩阵 A = [1 3 4; 3 1 2; -2 3 5]:


– detA = -18

– adjA = [11 -3 -10; -19 -3 -14; 7 3 -8]

– A⁻¹ = [-11/18 3/18 10/18; 19/18 3/18 14/18; -7/18 -3/18 8/18]

– X = [1.5; -3.5; 1.5]

13、已知电容电流和电压关系iC(t) = C(dvC/dt),C = 1F,电容由恒定电流I充电,求电压vC(t)关于时间的函数,已知参考时间t = 0时电压为V0

对 $ i_C(t) = C frac{dv_C}{dt} $ 变形得

dvC=iCCdtdvC=iCCdt

因为 $ C = 1 ext{F} $,$ i_C = I $(恒定电流),所以

dvC=IdtdvC=Idt

两边积分可得

vC(t)−vC(0)=∫t0IdtvC(t)−vC(0)=∫0tIdt

已知 $ t = 0 $ 时电压为 $ V_0 $,即 $ v_C(0) = V_0 $,所以

vC(t)=V0+ItvC(t)=V0+It

14、将积分 – 微分方程 $frac{d^{2}v}{dt^{2}}+k_{3}frac{dv}{dt}+k_{2}v + k_{1}int_{0}^{t}v( au)d au=sin3t+cos3t$ 表示为状态方程矩阵形式,其中 $k_{1},k_{2},k_{3}$ 为常数。

对给定的积分 – 微分方程关于 $t$ 求导,得到

d3vdt3+k3d2vdt2+k2dvdt+k1v=3cos3t−3sin3td3vdt3+k3d2vdt2+k2dvdt+k1v=3cos⁡3t−3sin⁡3t


v=x1,dvdt=x2=x˙1,d2vdt2=x3=x˙2,d3vdt3=x˙3v=x1,dvdt=x2=x˙1,d2vdt2=x3=x˙2,d3vdt3=x˙3

代入可得状态方程:

x˙1=x2 x˙2=x3 x˙3=−k1x1−k2x2−k3x3+3cos3t−3sin3tx˙1=x2 x˙2=x3 x˙3=−k1x1−k2x2−k3x3+3cos⁡3t−3sin⁡3t

写成矩阵形式为:

[x˙1 x˙2 x˙3]=[010 001 −k1−k2−k3][x1 x2 x3]+[0 0 1](3cos3t−3sin3t)[x˙1 x˙2 x˙3]=[010 001 −k1−k2−k3][x1 x2 x3]+[0 0 1](3cos⁡3t−3sin⁡3t)

15、求解常微分方程(特征方程有两个相等根)的通解,已知特征方程的两个相等根为 s₁ = s₂ = -1,求该方程通解

当特征方程有两个相等实根 $ s₁ = s₂ = -1 $ 时,对应的常微分方程的通解为

y=(C₁+C₂x)e−xy=(C₁+C₂x)e−x

其中 $ C₁ $、$ C₂ $ 为任意常数。

16、对给定的积分 – 微分方程 (dv_3/dt^3 + k_3

dv_2/dt^2 + k_2

dv/dt + k_1

v = 3

cos(3t) – 3*sin(3t)) 求状态方程并写成矩阵形式

令 $ x_1 = v $,$ x_2 = frac{dv}{dt} $,$ x_3 = frac{d^2v}{dt^2} $,则状态方程为:

dx1dt=x2dx1dt=x2

dx2dt=x3dx2dt=x3

dx3dt=−k1x1−k2x2−k3x3+3cos(3t)−3sin(3t)dx3dt=−k1x1−k2x2−k3x3+3cos⁡(3t)−3sin⁡(3t)

矩阵形式为:

[x˙1 x˙2 x˙3]=[010 001 −k1−k2−k3][x1 x2 x3]+[0 0 3cos(3t)−3sin(3t)][x˙1 x˙2 x˙3]=[010 001 −k1−k2−k3][x1 x2 x3]+[0 0 3cos⁡(3t)−3sin⁡(3t)]

17、对给定矩阵 $A =
[12 3−1][12 3−1]$ 求其特征值

可通过求解特征方程 $|A – lambda I| = 0$ 来得到特征值。对于矩阵

A=[12 3−1]A=[12 3−1]


A−λI=[1−λ2 3−1−λ]A−λI=[1−λ2 3−1−λ]


|A−λI|=(1−λ)(−1−λ)−2×3=λ2−1−6=λ2−7=0|A−λI|=(1−λ)(−1−λ)−2×3=λ2−1−6=λ2−7=0

解得

λ=±7–√λ=±7

所以矩阵 $ A $ 的特征值为 $ sqrt{7} $ 和 $ -sqrt{7} $。

18、计算下列每个函数的麦克劳林级数的前4项。a. f(x) = e⁻ˣ;b. f(x) = sin x;c. f(x) = sinh x。用MATLAB验证你的答案。

对于a:

已知 $ f(x) = e^x $ 的麦克劳林级数为:

1+x+x22!+x33!+⋯1+x+x22!+x33!+⋯

那么 $ f(x) = e^{-x} $ 的麦克劳林级数为:

1−x+x22!−x33!+⋯1−x+x22!−x33!+⋯

对于b:

$ f(x) = sin x $,

$ f(0) = 0 $,

$ f’(x) = cos x $,

$ f’(0) = 1 $,

$ f’‘(x) = -sin x $,

$ f’‘(0) = 0 $,

$ f’‘’(x) = -cos x $,

$ f’‘’(0) = -1 $,

其麦克劳林级数前4项为:

x−x33!x−x33!

对于c:

$ f(x) = sinh x = frac{e^x – e^{-x}}{2} $,

$ f(0) = 0 $,

$ f’(x) = cosh x $,

$ f’(0) = 1 $,

$ f’‘(x) = sinh x $,

$ f’‘(0) = 0 $,

$ f’‘’(x) = cosh x $,

$ f’‘’(0) = 1 $,

其麦克劳林级数前4项为:

x+x33!x+x33!

在 MATLAB 中,可分别用以下代码验证:

a.


syms x;
pretty(taylor(exp(-x), 4, 0));

b.


syms x;
pretty(taylor(sin(x), 4, 0));

c.


syms x;
pretty(taylor(sinh(x), 4, 0));

19、求函数f(x)=sin(x)的泰勒级数展开式,并使用MATLAB验证

函数 $ f(x) = sin(x) $ 的泰勒级数展开式为:

fn(x)=x−x33!+x55!−x77!+⋯fn(x)=x−x33!+x55!−x77!+⋯

MATLAB 验证代码为:


x = sym('x');
fn = taylor(sin(x));
pretty(fn)

结果显示为:


x - 1/6 * x³ + 1/120 * x⁵

20、a. 已知自变量x的取值为(1.1,1.2,1.5,1.7,1.8,2.0),函数y = f(x)对应取值为(1.112,1.219,1.636,2.054,2.323,3.011),求f(1.3)的值。b. 已知自变量x的取值为(1.1,1.2,1.5,1.7,1.8,2.0),函数y = f(x)对应取值为(1.112,1.219,1.636,2.054,2.323,3.011),求f(1.95)的值。

可使用插值法来计算。

对于a,可采用线性插值:

先确定1.3介于1.2和1.5之间

设 $ f(x) = ax + b $

将 $ (1.2, 1.219) $ 和 $ (1.5, 1.636) $ 代入求出 $ a $ 和 $ b $

进而得到 $ f(1.3) $ 的值

对于b:

1.95介于1.8和2.0之间

同样用线性插值

将 $ (1.8, 2.323) $ 和 $ (2.0, 3.011) $ 代入 $ f(x) = ax + b $ 求出 $ a $ 和 $ b $

得到 $ f(1.95) $ 的值

不过,精确计算需借助工具,这里仅给出方法。

21、求差分方程 (E² + 7E + 12)y = 0 的通解。

本题可先写出该差分方程的特征方程,再求解特征方程的根,最后根据根的情况写出通解。


写出特征方程


对于差分方程 $(E^2 + 7E + 12)y = 0$,其特征方程为

M2+7M+12=0M2+7M+12=0


求解特征方程的根


对于一元二次方程 $ax^2 + bx + c = 0$(这里 $a = 1$,$b = 7$,$c = 12$),可根据求根公式

x=−b±b2−4ac−−−−−−−√2ax=−b±b2−4ac2a

求解。将 $a = 1$,$b = 7$,$c = 12$ 代入求根公式可得:

M=−7±72−4×1×12−−−−−−−−−−−−√2×1=−7±49−48−−−−−−√2=−7±12M=−7±72−4×1×122×1=−7±49−482=−7±12

解得

M1=−7+12=−3,M2=−7−12=−4M1=−7+12=−3,M2=−7−12=−4

即特征方程的根为两个不相等的实数根。


根据根的情况写出通解


当特征方程的根为两个不相等的实数根 $M_1$ 和 $M_2$ 时,差分方程的通解形式为

y=k1Mx1+k2Mx2(k1,k2 为常数)y=k1M1x+k2M2x(k1,k2 为常数)

将 $M_1 = -3$,$M_2 = -4$ 代入通解形式,可得该差分方程的通解为

y=k1(−3)x+k2(−4)xy=k1(−3)x+k2(−4)x

其中 $k_1$,$k_2$ 为任意常数。

22、求差分方程 (E² + 2E + 2)y = 0 的通解。

根据特征方程求解,对于差分方程

(a2E2+a1E+a0)y=0(a2E2+a1E+a0)y=0

其特征方程为

a2M2+a1M+a0=0a2M2+a1M+a0=0

本题中 $ a_2 = 1 $,$ a_1 = 2 $,$ a_0 = 2 $,特征方程为

M2+2M+2=0M2+2M+2=0

由求根公式可得

M=−2±22−4×1×2−−−−−−−−−−−√2×1=−1±jM=−2±22−4×1×22×1=−1±j

这里判别式

a21−4a2a0=4−8=−4<0a12−4a2a0=4−8=−4<0

属于复共轭根情况。

对于复共轭根的差分方程通解形式为

y=rx(C1cos(θx)+C2sin(θx))y=rx(C1cos⁡(θx)+C2sin⁡(θx))

其中

r=α2+β2−−−−−−√,θ=arctan(βα)r=α2+β2,θ=arctan⁡(βα)

$alpha$ 为特征根实部,$eta$ 为特征根虚部。

本题中 $alpha = -1$,$eta = 1$,所以

r=(−1)2+12−−−−−−−−−√=2–√,θ=arctan(1−1)=−π4r=(−1)2+12=2,θ=arctan⁡(1−1)=−π4

故通解为

y=(2–√)x(C1cos(−πx4)+C2sin(−πx4))y=(2)x(C1cos⁡(−πx4)+C2sin⁡(−πx4))

其中 $C_1$ 和 $C_2$ 为常数。

23、求差分方程 ((E^2 + 1)y = sin x) 的通解。


y = C₁*cos((π/2)x) + C₂*sin((π/2)x) + (x*(2 - sin x) + sin(2x + 1/2))/(2*cos(1/2))

24、已知特征方程为$E^{2}+7E + 12 = 0$,假设$y(0)=1$且$y(1)=2$,求差分方程$(E^{2}+7E + 12)y = 0$的解。

差分方程的解为$y(x)=6 imes(-3)^{x}-5 imes(-4)^{x}$。

25、已知特征方程为(E^2 + 2E + 2 = 0),求差分方程((E^2 + 2E + 2)y = 0)的解。

以下是给定文本内容转换为

Markdown

格式的结果(未添加任何额外描述,仅格式调整):


特征方程 $ M^2 + 2M + 2 = 0 $ 的根为

M1=−1+jM1=−1+j 和
M2=−1−jM2=−1−j

计算模长:

r=(−1)2+12−−−−−−−−−√=2–√r=(−1)2+12=2

计算幅角:

θ=arctan(1−1)=−π4θ=arctan⁡(1−1)=−π4

因此,差分方程的解为

y=(2–√)x(C1cos(−π4x)+C2sin(−π4x))y=(2)x(C1cos⁡(−π4x)+C2sin⁡(−π4x))

其中常数 $ C_1 $ 和 $ C_2 $ 可由初始条件确定,但本题未给出初始条件。

26、已知特征方程为 (E^2 + 1 = 0),求差分方程 ((E^2 + 1)y_x = sin x) 的解。

特征方程 $ M^2 + 1 = 0 $ 的根为

– $ M_1 = j $

– $ M_2 = -j $

其中:

– $ r = 1 $

– $ heta = frac{pi}{2} $

齐次解为

YH=C1cos(π2⋅x)+C2sin(π2⋅x)YH=C1cos⁡(π2⋅x)+C2sin⁡(π2⋅x)

设特解形式为

YP=Axcosx+BxsinxYP=Axcos⁡x+Bxsin⁡x

将特解代入原方程,利用三角函数恒等式展开、整理、合并同类项后,得到总解为

y=C1cos(π2⋅x)+C2sin(π2⋅x)+xsinx−(x−2)cosx2y=C1cos⁡(π2⋅x)+C2sin⁡(π2⋅x)+xsin⁡x−(x−2)cos⁡x2

27、对(frac{1}{s(s + 1)^2})进行部分分式展开,使用MATLAB进行化简和验证结果。

部分分式展开结果为

1s−1(s+1)2−1s+11s−1(s+1)2−1s+1

MATLAB验证代码及结果如下:


syms s;
expand(s*(s+1)^2)

输出结果为:


ans = s^3 + 2*s^2 + s

继续执行部分分式分解代码:


Ns = [0, 0, 0, 1];
Ds = [1, 2, 1, 0];
[r, p, k] = residue(Ns, Ds)

得到结果:


r =
   -1
   -1
    1

p =
   -1
   -1
    0

k = []

28、给定Ns = [0, 0, -1]; Ds = [1, 0, -1],使用MATLAB中的residue函数求r、p和k。

r = [0.5000, -0.5000]; p = [-1, 1]; k = []

29、给定 Ns = [0, 0, 1]; Ds = [1, 4, -5],在将格式设置为有理格式后,使用 MATLAB 中的 residue 函数来求 r、p 和 k。

在 MATLAB 中,可按以下步骤操作:

首先设置格式为有理格式,即

format rat

然后使用

residue

函数计算,代码为:

matlab
Ns = [0, 0, 1];
Ds = [1, 4, -5];
[r, p, k] = residue(Ns, Ds)

运行代码后即可得到

r


p


k

的值。

30、给定Ns = [0, 1, 0]; Ds = [1, -2, -3],在将格式设置为有理格式后,使用MATLAB中的residue函数来求r、p和k。

在MATLAB中可按如下步骤操作:

首先设置格式为有理格式。

然后使用

residue

函数进行计算。

代码如下:


format rat;
Ns = [0, 1, 0];
Ds = [1, -2, -3];
[r, p, k] = residue(Ns, Ds)

运行该代码即可得到

r


p


k

的值。

31、使用MATLAB的deconv(num,den)函数将有理多项式s^2/(s^2 + 2s + 1)表示为一个多项式与一个真分式之和的形式,然后使用residue函数求出该真分式部分对应的留数r、极点p和直项k。

使用

deconv

函数:


num = [1 0 0];
den = [1 2 1];
[q, r] = deconv(num, den)

结果为:


q = 1
r = [0  -2  -1]


s2s2+2s+1=1+−2s−1s2+2s+1s2s2+2s+1=1+−2s−1s2+2s+1


使用

residue

函数:


Ns = [1, 0, 0];
Ds = [1, 2, 1];
[r, p, k] = residue(Ns, Ds)

结果为:


r = [-2   1]
p = [-1  -1]
k = 1

32、求解方程组 r1 + r2 = 0,r2 + r3 = 0,r1 + r3 = 1,然后给定分子多项式系数向量 Ns = [0, 0, 0, 1],分母多项式系数向量 Ds = [1, 1, 1, 1],使用 MATLAB 中的 residue 函数求留数向量 r、极点向量 p 和直接项向量 k。

方程组的解为 $ r_1 = frac{1}{2} $,$ r_2 = -frac{1}{2} $,$ r_3 = frac{1}{2} $。使用

residue

函数得到

r=[12 −14−14i −14+14i],p=[−1 −16004799503160662+1i −16004799503160662−1i],k=[]r=[12 −14−14i −14+14i],p=[−1 −16004799503160662+1i −16004799503160662−1i],k=[]

© 版权声明

相关文章

暂无评论

none
暂无评论...