写出如下各题的MATLAB代码: (1)求 2+4+6+......+100之和。 (2)由键盘输入成绩(0-100分),自动输出等级(优、良、中、及格、不及格) (3)求线性方程组的解 (4)求微分方程的解(5)作出函数的图像
时间: 2024-01-11 17:02:28 浏览: 153
好的,我会为您逐一解答。
(1)求 2+4+6+......+100之和。
MATLAB代码如下:
```
sum = 0;
for i = 2:2:100
sum = sum + i;
end
disp(sum);
```
(2)由键盘输入成绩(0-100分),自动输出等级(优、良、中、及格、不及格)
MATLAB代码如下:
```
score = input('请输入成绩(0-100分):');
if score >= 90
disp('优');
elseif score >= 80
disp('良');
elseif score >= 70
disp('中');
elseif score >= 60
disp('及格');
else
disp('不及格');
end
```
(3)求线性方程组的解
MATLAB代码如下:
```
A = [1 2 3; 4 5 6; 7 8 9];
b = [3; 6; 9];
x = A\b;
disp(x);
```
(4)求微分方程的解
MATLAB代码如下:
```
syms y(x)
eqn = diff(y,x) == x*y;
ySol(x) = dsolve(eqn);
disp(ySol);
```
(5)作出函数的图像
MATLAB代码如下:
```
x = -5:0.1:5;
y = x.^2;
plot(x,y);
```
相关问题
MATLAB代码:采用dir2fs(h)函数实现给定FIR滤波器H(Z)=0.2*(1 + 1z^-1 + 5z^-2+3z^-3++z^4) 请画出其级联型、频率抽样型结构 并写出dir2fs(h)函数
以下是给定FIR滤波器H(Z)=0.2*(1 + 1z^-1 + 5z^-2+3z^-3++z^4)的级联型和频率抽样型结构的MATLAB代码:
```matlab
% FIR滤波器系数
h = [0.2, 0.2, 1, 5, 3, 1];
% 级联型结构
b1 = [h(1), h(2)];
b2 = [h(3), h(4)];
b3 = [h(5), h(6)];
sos = [b1, 0, 1, -b2, 0, 1, -b3, 0, 1];
% 绘制级联型结构
fvtool(sos);
% 频率抽样型结构
fs = dir2fs(h);
% 绘制频率抽样型结构
fvtool(fs);
function fs = dir2fs(h)
% DIR2FS 通过迭代法实现FIR滤波器的频率抽样结构
% 输入参数:
% h: FIR滤波器系数
% 输出参数:
% fs: 频率抽样型结构
N = length(h);
M = floor(N/2);
if mod(N, 2) == 0
a = h(1:M) + h(N:-1:M+1);
b = h(1:M) - h(N:-1:M+1);
else
a = [h(1:M), h(M+1)*2, h(M+2:N)] + [h(N:-1:M+2), h(M+1)*2, h(1:M)];
b = [h(1:M), -h(M+2:N)] + [h(N:-1:M+2), -h(1:M)];
end
fs = zeros(3, N);
fs(1, :) = [a, 0];
fs(2, :) = [b(1:2:end), 0];
fs(3, :) = [b(2:2:end), 0];
end
```
其中,`dir2fs(h)`函数采用迭代法实现FIR滤波器的频率抽样结构。具体实现过程如下:
1. 计算中间点M和系数a、b:
如果N为偶数,则M = N/2,a = h(1:M) + h(N:-1:M+1),b = h(1:M) - h(N:-1:M+1);
如果N为奇数,则M = (N-1)/2,a = [h(1:M), h(M+1)*2, h(M+2:N)] + [h(N:-1:M+2), h(M+1)*2, h(1:M)],b = [h(1:M), -h(M+2:N)] + [h(N:-1:M+2), -h(1:M)]。
2. 构造频率抽样型结构的三个部分:
第一部分:所有系数都为a,输出为y1(n);
第二部分:每隔一个采样周期,将系数b的奇数项作为输入,输出为y2(n);
第三部分:每隔一个采样周期,将系数b的偶数项作为输入,输出为y3(n)。
3. 将三个部分连接起来,得到频率抽样型结构。
写出MATLAB代码:已知离散系统的脉冲传递函数求出其状态空间表达式,请写出两个实际例子
MATLAB代码:
假设离散系统的脉冲传递函数为H(z),其状态空间表达式为:
x(k+1) = Ax(k) + Bu(k)
y(k) = Cx(k) + Du(k)
其中,A、B、C、D分别为状态空间矩阵。
根据H(z)求出A、B、C、D的方法如下:
1. 对H(z)进行部分分式分解,得到其形式为:
H(z) = (b0 + b1z^-1 + ... + bMz^-M) / (1 + a1z^-1 + ... + aNz^-N)
2. 令z = 0,得到D = b0。
3. 令z = 1,得到A = -a1 - a2 - ... - aN。
4. 令z = exp(j*w),其中w为采样角频率,得到:
B = [1, -exp(-j*w), ..., -exp(-j*M*w)] * [b1, b2, ..., bM]' / (1 - exp(-j*w))
C = [1, exp(j*w), ..., exp(j*M*w)] * [b1, b2, ..., bM]' / (1 + exp(j*w))
其中,j为虚数单位。
两个实际例子:
1. 控制系统中的直流电机,其状态空间表达式可以通过脉冲传递函数得到。
2. 通信系统中的数字滤波器,同样可以通过脉冲传递函数得到其状态空间表达式。
阅读全文