1.7 周期矩阵

幂等矩阵在接口开发中表示重复调用无影响,而在矩阵运算中指矩阵乘其自身结果不变。周期矩阵是幂等矩阵的扩展,具有特定的周期性。例如,单位矩阵是幂等矩阵,且周期为1。文章还提到,周期矩阵的逆矩阵如果存在,也是周期矩阵,并给出了周期为2的矩阵示例。
摘要由CSDN通过智能技术生成

幂等矩阵

  幂等这个概念,在Java开发或其他语言的接口开发中很常见,在接口开发中的意思是重复调用接口,效果和只调用一次一样,这样可以避免重复调用接口产生数据错误。幂等矩阵Idempotent Matrix,是指一个矩阵乘以自己等于自己,再乘自己还是等于自己,无论乘多少次都是自己,这就和接口幂等是一个意思,无论多少次方和一次方是一样的。
  毫无疑问,单位矩阵就是这样的矩阵,再举个不是单位矩阵的例子:
( 2 − 3 − 5 − 1 4 5 1 − 3 − 4 ) × ( 2 − 3 − 5 − 1 4 5 1 − 3 − 4 ) = ( 2 − 3 − 5 − 1 4 5 1 − 3 − 4 ) \begin{pmatrix}2 & -3 & -5\\ -1 & 4 & 5\\ 1 & -3 & -4\\ \end{pmatrix} \times \begin{pmatrix}2 & -3 & -5\\ -1 & 4 & 5\\ 1 & -3 & -4\\ \end{pmatrix} = \begin{pmatrix}2 & -3 & -5\\ -1 & 4 & 5\\ 1 & -3 & -4\\ \end{pmatrix} 211343554 × 211343554 = 211343554
  幂等矩阵就是 A 2 = A A^2=A A2=A的一类特殊方阵,那么有没有 A k = A , k > 2 A^k=A,k>2 Ak=A,k>2的矩阵呢?这就引出了周期矩阵的概念。

周期矩阵

  周期矩阵肯定是存在的,幂等矩阵可以看作一类特殊的周期矩阵,也就是周期为1的矩阵。周期是幂减去1啊,因为如果三次方等于自己,那么中间就夹着一个矩阵,距离就是2,如下所示:
A , A 2 , A , A 2 , A , ⋯ A ,A^2,A,A^2,A,\cdots A,A2,A,A2,A,
  我举一个周期为2的矩阵作为例子:
A = ( 1 − 2 − 6 − 3 2 9 2 0 − 3 ) A 2 = ( − 5 − 6 − 6 9 10 9 − 4 − 4 − 3 ) A 3 = ( 1 − 2 − 6 − 3 2 9 2 0 − 3 ) = A A=\begin{pmatrix}1 & -2 & -6\\ -3 & 2 & 9\\ 2 & 0 & -3\\ \end{pmatrix}\\ A^2 = \begin{pmatrix}-5 & -6 & -6\\ 9 & 10 & 9\\ -4 & -4 & -3\\ \end{pmatrix}\\ A^3= \begin{pmatrix}1 & -2 & -6\\ -3 & 2 & 9\\ 2 & 0 & -3\\ \end{pmatrix}=A A= 132220693 A2= 5946104693 A3= 132220693 =A

周期矩阵的性质

  周期矩阵拥有以下性质,名词看不懂的,我都给了链接。

  1. 幂等矩阵的1阶迹等于它的秩;
  2. 幂等矩阵的特征值要么是0,要么是1;
  3. 除单位矩阵外的幂等矩阵,都是不可逆矩阵。
  4. 如果周期矩阵可逆,周期为 k k k,也就是, A k + 1 = A A^{k+1}=A Ak+1=A,那么 A k = I A^k=I Ak=I
  5. 如果周期矩阵可逆,那么它的逆矩阵也是周期矩阵。
  6. k × k k \times k k×k的循环矩阵是周期为 k k k的周期矩阵。
  7. 多项式 x k − x + 1 x^k-x+1 xkx+1的友矩阵是周期为 k k k的周期矩阵。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这是一个关于单片机的问题。首先需要明确的是,使用C51单片机需要编写汇编语言或者C语言的程序。在程序中,需要对矩阵键盘进行扫描,并且根据不同按键的值,进行相应的处理。其中包括控制扬声器发出不同音高的声音。 以下是一个简单的C语言程序框架,可以实现上述功能: ``` #include <reg52.h> // 51单片机的寄存器定义头文件 sbit SPEAKER = P1^7; // 将P1.7定义为扬声器输出口 void delay(int n) // 延时函数 { while(n--); } unsigned char readKey() // 读取矩阵键盘按键值 { unsigned char keyValue = 0xff; // 定义一个初始值,表示没有按键按下 // 在这里编写矩阵键盘的扫描代码,获取按键的值,并赋值给keyValue变量 return keyValue; } void playSound(unsigned char key) // 发出声音 { unsigned int soundPeriod = 0; // 定义一个变量,存储声音的周期 // 根据不同的按键值,计算相应的声音周期值,存储到soundPeriod变量中 for(int i = 0; i < 100; i++) // 发出100个周期的声音 { SPEAKER = 1; // 将扬声器输出口设置为高电平 delay(soundPeriod); // 延时一段时间,控制声音的周期 SPEAKER = 0; // 将扬声器输出口设置为低电平 delay(soundPeriod); // 延时一段时间,控制声音的周期 } } void main() { while(1) { unsigned char key = readKey(); // 读取矩阵键盘按键值 if(key != 0xff) // 判断是否有按键按下 { playSound(key); // 根据按键值,发出相应的声音 } } } ``` 在实际编写程序时,需要根据具体的硬件连接和矩阵键盘的扫描方式进行相应的修改。同时,需要根据不同的按键值,计算出相应的声音周期值,以便控制扬声器发出不同音高的声音。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒过来摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值