用matlab求F(z)=5z/(z2-3z+2)的z反变换
时间: 2024-05-04 10:21:31 浏览: 230
board[x][y] = curr_player;
capture_pieces(x, y);
curr_player = -curr_player;
move_cnt++;
}
首先,我们需要将 F(z) 分解成部分分式的形式:
F(z) = 5z / (// 绘制棋盘
void draw_board() {
printf(" ");
for (int i = 0; i < SIZE;z^2 - 3z + 2)
= 5z / [(z - 1)(z - 2)]
i++) {
printf("%2d ", i + 1);
}
printf("\n");
for (int i = 0 = A / (z - 1) + B / (z - 2)
通过通分,我们可以得到:
5z; i < SIZE; i++) {
printf("%2d ", i + 1);
for (int j = 0; j < SIZE; j++) {
if (board[i][j] == 1) {
printf(" O ");
} else if ( = A(z - 2) + B(z - 1)
将 z = 1 和 z = 2 代入上式board[i][j] == -1) {
printf(" X ");
} else {
printf(" . ");
}
}
,得到:
A = -5,B = 5
因此,F(z) 可以表示为:
F(z) = printf("%2d\n", i + 1);
}
printf(" ");
for (int i = 0; i -5 / (z - 1) + 5 / (z - 2)
现在,我们可以使用部分分式 < SIZE; i++) {
printf("%2d ", i + 1);
}
printf("\n");
}
int main() {
展开公式来求出 z 反变换:
f(n) = Res[ F(z) e^(zn), z = p ]
int x, y;
while (true) {
draw_board();
printf("Player %c's turn (x y): ",其中,Res 表示求解残差,p 是 F(z) 的极点。
由于 F(z) 的极点是 z curr_player == 1 ? 'O' : 'X');
scanf("%d %d", &x, &y);
if ( = 1 和 z = 2,因此,
f(n) = Res[ -5 / (z - 1) e^(is_out_of_range(x - 1, y - 1)) {
printf("Invalid input!\n");
continue;
}
zn), z = 1 ] + Res[ 5 / (z - 2) e^(zn), z = 2 ]
计 if (!is_valid_move(x - 1, y - 1)) {
printf("Invalid move!\n");
continue;
}
算第一项:
Res[ -5 / (z - 1) e^(zn), z = 1 ]
= lim(z→ make_move(x - 1, y - 1);
if (move_cnt >= SIZE * SIZE) {
printf("Game over1) [(z - 1) (-5 / (z - 1)) e^(zn)]
= lim(z→1) [-5!\n");
break;
}
}
return 0;
}
```
使用方法:
- 使用 CodeBlocks 打开代码 e^(zn)]
= -5e^n
计算第二项:
Res[ 5 / (z - 2) e^(文件,点击编译运行按钮,即可运行程序。
- 程序会提示当前玩家下棋,输入坐标zn), z = 2 ]
= lim(z→2) [(z - 2) (5 / (z - 2)) e^(zn)]
= lim(z→2) [5 e^(zn)]
= 5e^(2n)
因此,F(z)即可下棋。
- 坐标格式为 x y,x 表示行数,y 表示列数,取值范围 的 z 反变换为:
f(n) = -5e^n + 5e^(2n)
阅读全文