一道关于幂次方矩阵题目的精彩解法
这道题源自23版李林880的矩阵章节,题目如下: 设矩阵 A=[1−1−1−1−11−1−1−1−11−1−1−1−11]A=\left[ \begin{matrix} 1 & -1 & -1 & -1 \\ -1 & 1 & -1 & -1 \\ -1 & -1 & 1 & -1 \\ -1 & -1 & -1 & 1 \end{matrix} \right]A=1−1−1−1−11−1−1−1−11−1−1−1−11,则 An(n≥1)=?A^n(n \geq 1)=?An(n≥1)=? 个人解法如下: 先将矩阵 AAA 拆分成一个秩为 1 的矩阵和数量矩阵之和,即: A=[−1−1−1−1−1−1−1−1−1−1−1−1−1−1−1−1]+2[1111]=B+2EA = \left[ \begin{matrix} -1 & -1 & -1 & -1 \\ -1 & -1 & -1 & -1 \\ -1 & -1 ...
施密特正交化
公式 {β1=α1β2=α2−(α2,β1)(β1,β1)β1β3=α3−(α3,β1)(β1,β1)β1−(α3,β2)(β2,β2)β2\left\{ \begin{aligned} &\beta_1 = \alpha_1 \\ &\beta_2 = \alpha_2 - \frac{(\alpha_2, \beta_1)}{(\beta_1,\beta_1)} \beta_1 \\ &\beta_3 = \alpha_3 - \frac{(\alpha_3, \beta_1)}{(\beta_1,\beta_1)} \beta_1 - \frac{(\alpha_3, \beta_2)}{(\beta_2,\beta_2)} \beta_2 \\ \end{aligned} \right. ⎩⎨⎧β1=α1β2=α2−(β1,β1)(α2,β1)β1β3=α3−(β1,β1)(α3,β1)β1−(β2,β2)(α3,β2)β2 推导 令 {β1=α1β2=α2+kβ1β3=α3+m1β1+m2β2...
线性相关性、线性表示、秩
一、线性相关性 1. 定义 (1)线性相关:设 α1,α2,...,αs\alpha_1,\alpha_2,...,\alpha_sα1,α2,...,αs 是 nnn 维向量,若 ∃\exist∃ 不全为 000 的一组数 k1,k2,...,ksk_1,k_2,...,k_sk1,k2,...,ks,使得 k1α1+k2α2+...+ksαs=0k_1\alpha_1 + k_2\alpha_2+...+k_s\alpha_s = 0k1α1+k2α2+...+ksαs=0,则称 α1,α2,...,αs\alpha_1,\alpha_2,...,\alpha_sα1,α2,...,αs 线性相关。 (2)线性无关:设 α1,α2,...,αs\alpha_1,\alpha_2,...,\alpha_sα1,α2,...,αs 是 nnn 维向量,若要使得 k1α1+k2α2+...+ksαs=0k_1\alpha_1 + k_2\alpha_2+...+k_s\alpha_s = 0k1α1+k2α2+...+ksαs=0,当...
初等变换和广义初等变换
一、初等变换 1. 互换变换 第iii行和第jjj行互换:EijE_{ij}Eij 第iii列和第jjj列互换:EijE_{ij}Eij 【例】第111行和第222行互换,或第111列和第222列互换:E12=[010100001]E_{12}=\left[ \begin{matrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1\end{matrix} \right]E12=010100001 【推导】不凭记忆,如何求出互换变换矩阵? (1)行互换:设矩阵A=[α1α2α3]A = \left[ \begin{matrix} \alpha_1 \\ \alpha_2 \\ \alpha_3\end{matrix} \right]A=α1α2α3,其中α1,α2,α3\alpha_1,\alpha_2,\alpha_3α1,α2,α3为行向量,则第111行和第222行互换后得到B=[α2α1α3]=[010100001][α1α2α3]=[010100001]AB ...
留数法分解有理真分式
一、真分式和假分式 设Pn(x)P_n(x)Pn(x)和Qm(x)Q_m(x)Qm(x)表示nnn次和mmm次的多项式函数,则 {Pn(x)Qm(x)为假分式,n≥mPn(x)Qm(x)为真分式,n<m\begin{cases} \frac{P_n(x)}{Q_m(x)}为假分式, & n \geq m \\ \frac{P_n(x)}{Q_m(x)}为真分式, & n < m \end{cases} {Qm(x)Pn(x)为假分式,Qm(x)Pn(x)为真分式,n≥mn<m 假分式可使用长除法分解,此处不再赘述。 二、有理真分式的分解形式 有理真分式Pn(x)Qm(x)\frac{P_n(x)}{Q_m(x)}Qm(x)Pn(x)可分解成如下四种形式: Ax−a,A(x−a)l,Mx+Nx2+px+q,Mx+N(x2+px+q)l\frac{A}{x-a},\frac{A}{(x-a)^l},\frac{Mx+N}{x^2+px+q},\frac{Mx+N}{(x^2+px+q)^l} x−aA,(x−a)lA,x...
递推方程的几种解法
一、常系数线性齐次递推方程 1. 定义 {H(n)−a1(n−1)−a2H(n−2)−...−akH(n−k)=0H(0)=b0H(1)=b1H(2)=b2...H(k−1)=bk−1\left\{ \begin{aligned} &H(n)-a_1(n-1)-a_2H(n-2)-...-a_kH(n-k)=0 \\ &H(0)=b_0 \\ &H(1)=b_1 \\ &H(2)=b_2 \\ &... \\ &H(k-1)=b_{k-1} \end{aligned} \right. ⎩⎨⎧H(n)−a1(n−1)−a2H(n−2)−...−akH(n−k)=0H(0)=b0H(1)=b1H(2)=b2...H(k−1)=bk−1 这是关于H(n)H(n)H(n)的递推方程,其中:n≥k,ak≠0n \geq k,a_k \neq 0n≥k,ak=0 2. 特征方程 递推方程的特征方程为 xk−a1xk−1−...−ak−1x−ak=0x^k-a_1x^{k-1}-...-a_{k-1}x-a_k=0 xk...
二阶常系数线性非齐次微分方程的解
LaTeX在线编辑器:Equation Editor [toc] 一、定义 二阶常系数线性齐次微分方程: y′′(x)+py′(x)+qy(x)=0y''(x)+py'(x)+qy(x)=0 y′′(x)+py′(x)+qy(x)=0 二阶常系数线性非齐次微分方程: y′′(x)+py′(x)+qy(x)=g(x)y''(x)+py'(x)+qy(x)=g(x) y′′(x)+py′(x)+qy(x)=g(x) 二阶常系数线性非齐次微分方程的通解: y(x)=齐次通解+非齐次特解=y0(x)+y∗(x)y(x)=齐次通解+非齐次特解=y_0(x)+y^*(x) y(x)=齐次通解+非齐次特解=y0(x)+y∗(x) 二、齐次通解 特征方程为 r2+pr+q=0r^2+pr+q=0 r2+pr+q=0 根据特征方程的根r1,r2r_1,r_2r1,r2的情况,设通解为 y0(x)={C1er1x+C2er2x,r1≠r2(C1+C2x)er1x,r1=r2eαx[C1cos(βx)+C2sin(βx)],r=α±...
C语言scanf函数的匹配和缓冲机制
scanf函数的数据匹配规则 数据类型 匹配规则 整型%d 两个数据间的分割符可以是空格符(ASCII=32)、换行符(ASCII=10)、制表符(ASCII=9) 浮点型%f 两个数据间的分割符可以是空格符(ASCII=32)、换行符(ASCII=10)、制表符(ASCII=9) 字符串%s 以非空白字符开始,以第一个空白字符(空格符、换行符、制表符)结束 字符型%c 两个数据间没有分割符,所有字符(包括控制字符)都能匹配 缓冲区的三种类型 缓冲区的三种类型: 全缓冲:在这种情况下,当填满标准 I/O 缓存后才进行实际 I/O 操作。全缓冲的典型代表是对磁盘文件的读写。 行缓冲:在这种情况下,当在输入和输出中遇到换行符时,才执行真正的 I/O 操作。这时,输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的 I/O 操作。典型代表是键盘输入数据,标准输入(stdin)和标准输出(stdout)。 不带缓冲:也就是不进行缓冲,标准出错情况 stderr 是典型代表,这使得出错信息可以直接尽快地显示出来。 以下情况将引发缓冲区的刷新: 缓冲...
如何理解strcpy函数中的赋值语句?
关于 strcpy 函数的赋值语句 如何理解while (*s++ = *t++)? 1234void strcpy(char *s, char *t){ while (*s++ = *t++);} 该语句等价于while (*(s++) = *(t++))。 赋值语句的结合方向是自右往左,所以从右往左读,可以将*(s++) = *(t++)拆成两条语句: 12temp = *(t++);*(s++) = temp; 也即代码段 A: 1234temp = *t;t++;*s = temp;s++; 赋值语句实际上是一个表达式,等于赋值运算符右边表达式的结果,比如a = b的结果是b。这里右边表达式是*(t++),结果是*t(先使用,后自增),因此原代码可等价于代码段 B: 123while (*t != '\0'){ *(s++) = *(t++);} 代码段 A 和 B 结合在一起: 1234567char temp = *t;while (temp != '\0'){ ...
C语言和C++的const修饰符用法总结
已经玩了C++三年的菜鸟一枚,因此本文部分内容可能有误,请见谅。 作用:只读,不能修改。 规则:const 默认作用于其左边的东西,否则作用于其右边的东西。从右往左即可读懂。 const applies to the thing left of it. If there is nothing on the left then it applies to the thing right of it. 变量声明: 名字 声明 解释 含义 常量整型 const int a const 修饰 int 为常量整型 不能修改值,必须初始化 常量整型 int const a const 修饰 int 为常量整型 不能修改值,必须初始化 指向常量整型的变量指针 const int *a const 修饰 int 为常量整型,* 作用于常量整型 指针可修改,内容不可修改 指向常量整型的变量指针 int const *a const 修饰 int 为常量整型,* 作用于常量整型 指针可修改,内容不可修改 指向变量整型的常量指针 int* const a const ...



