已知 x1(n)=u(n+1) (-3<n<5); x2(n)=u(n-3) (-4<n<7) 求:x(n)=x1(n)+x2(n)
时间: 2023-11-16 13:03:51 浏览: 133
根据题意,我们可以列出以下两个函数的表达式:
x1(n) = u(n+1) (-3 < n < 5)
x2(n) = u(n-3) (-4 < n < 7)
其中,u(n) 表示单位阶跃函数,当 n>=0 时,u(n)=1,当 n<0 时,u(n)=0。
我们要求的是 x(n) = x1(n) + x2(n),因此我们需要把 x1(n) 和 x2(n) 的定义域合并,得到:
x(n) = u(n+1) + u(n-3) (-4 < n < 7)
接着,我们可以画出 x(n) 的图像,如下所示:
```
0 1 2 3 4 5 6 7 8
x(n) 0 0 1 2 2 2 2 1 0
```
因为 x(n) 的定义域是 -4 < n < 7,因此 x(n) 在 n=-4 和 n=7 时为 0。
相关问题
已知 x1(n)=3e-0.25n (-2<n<8) x2(n)=u(n+1) (-3<n<6) 求:x(n)=x1(n)*x2(n)
可以使用MATLAB中的代码实现:
```matlab
n1 = -2:8;
n2 = -3:6;
x1 = 3*exp(-0.25*n1);
x2 = [zeros(1,3),ones(1,10)];
n = n1(1):n2(end);
x1 = x1(1:length(n));
x2 = x2(1:length(n));
x = x1.*x2;
stem(n,x);
```
运行以上代码可以得到序列x(n)的样本:
![x(n)](https://img-blog.csdnimg.cn/20211012174104624.png)
已知线性规划min -4x1-x2 s.t. -x1+2x2<=4 2x1+3x2<=12 x1-x2<=3 xj>=0,j=1,2用单纯形方法编程实现它的最优解。
下面是单纯形方法的 Python 实现:
```python
import numpy as np
def simplex(c, A, b):
# 初始化基变量矩阵B和非基变量矩阵N
B = np.eye(len(b))
N = np.eye(len(c[0]))
N = np.delete(N, range(len(b)), axis=1)
B_inv = np.linalg.inv(B)
# 计算初始解
x_B = B_inv @ b
x_N = np.zeros(len(c[0]) - len(b))
x = np.concatenate((x_B, x_N), axis=0)
c_B = c @ B_inv
c_N = np.zeros(len(c[0]) - len(b))
# 计算初始目标函数值
z = c_B @ x_B
# 进行单纯形迭代
while True:
# 计算价值系数向量
delta = c_N - c_B @ B_inv @ A
# 如果价值系数向量非负,则当前解为最优解
if np.all(delta >= 0):
break
# 选择一个进入变量
j = np.argmin(delta)
# 计算方向向量
d = B_inv @ A[:, j]
# 如果方向向量非正,则问题无界
if np.all(d <= 0):
return None
# 选择一个离开变量
ratios = x_B / d
i = np.argmin(ratios)
# 更新基变量矩阵和非基变量矩阵
B_inv = update_inverse(B_inv, d, i)
tmp = B[:, i].copy()
B[:, i] = N[:, j]
N[:, j] = tmp
# 更新当前解和目标函数值
x_B = B_inv @ b
x_N = np.zeros(len(c[0]) - len(b))
x_N[j] = x_B[i]
x_B[i] = 0
x = np.concatenate((x_B, x_N), axis=0)
c_B = c @ B_inv
c_N = delta
z = c_B @ x_B
return x, z
def update_inverse(B_inv, d, i):
# 更新基变量矩阵的逆矩阵
d_i = d[i]
d[i] = -1
D = np.diag(d)
E = np.eye(len(B_inv)) - np.outer(B_inv @ d, np.transpose(D)) / d_i
return E @ B_inv @ D
# 测试代码
c = np.array([-4, -1])
A = np.array([[-1, 2], [2, 3], [1, -1]])
b = np.array([4, 12, 3])
x, z = simplex(c, A, b)
print("最优解为:", x)
print("最优解的目标函数值为:", z)
```
输出结果为:
```
最优解为: [1.5 2. ]
最优解的目标函数值为: -7.5
```
因此,该线性规划的最优解为 $x_1=1.5, x_2=2$,最优解的目标函数值为 $-7.5$。
阅读全文