Fork me on GitHub

部分知识补充

范数 $||x||$

定义了向量空间里的距离,使得向量之间的比较成为了可能

可以把一个实数列表,映射为一个数

当维数超过三维,距离这个概念应该被进一步抽象,转为表示高维点之间的时空关系,便有了范数

常用

L0 范数,向量非 0 元素个数,即稀疏度

L1 范数,曼哈顿距离:一个向量中所有元素的绝对值之和

L2 范数,欧几里得范数:是一个向量中所有元素取平方和,然后再开平方(向量的模)

特征值

原空间某一个基在变换后,其空间的长度变化系数,$>0$ 表示方向一致,$<0$ 表示方向相反

变换后夹角 $<90^\circ$,说明变换后的向量投影回原向量时方向不变

用特征值做限制可以更直观也更严格地表达出这一个特点

奇异矩阵

行列式为 $0$,没有可逆矩阵好兄弟,可谓之奇异

正定矩阵 positive-definite matrix

一个矩阵正定(Possitive definite) 到底能说明什么,能解决什么问题?

可以将正定矩阵理解为矩阵版标量正系数 [知乎,若辰]

线性代数是研究变换的,一个作用在向量上的矩阵正定,事实上是一个相当强的限制,其规定向量被变换后,方向不变

正定代表二次型系统在空间内有最优解问题

对角占优矩阵

对角线元素比其他之和要大

设 $A$ 是 $n$ 阶矩阵,若 $A$ 满足

至少一个严格不等式成立,$A$ 为弱对角占优;

每个严格不等式都成立,$A$ 为严格对角占优

严格对角占优矩阵具有非奇异性

拉布拉斯矩阵显然不是严格对角占优矩阵

拉布拉斯矩阵

通过任意方阵变换得到,具有良好的性质,有利于后面对其研究(不够准确!)

M-矩阵

方阵,非对角元非正,存在正定对角阵 $P$ ,使得 $PB+B^TP$ 为非负定阵,为 M-矩阵

若有 $0$ 特征值,为奇异 M-矩阵

拉布拉斯矩阵显然为奇异 M-矩阵

置换矩阵

如:

根据左行右列定理,左乘做行变换,右乘做列变换,此矩阵将目标矩阵的 2,3 列交换

置换矩阵 $P$ 是方阵, $P$ 的每一行和每一列都有且仅有一个 1,其余均为 0

置换矩阵也可以看作单位矩阵 $I$ 的行重排列

$P^{-1} = P^{T}$

可约矩阵

可约矩阵主要用来描述此矩阵 $A$ 代表的有向图 $S(A)$ 是否具有强连通性

线性矩阵不等式 (LMI) - 一个求大矩阵正定的方法

可以通过对大矩阵巧妙分块,使得把求其正定的问题,转化为求小矩阵正定

给定对称矩阵 $Q(x)$ 和 $R(x)$,和矩阵 $S(x)$, 有:

与以下两个不等式两两等价

(1) $Q(x)>0, R(x)-S^T(x)Q(x)S(x)>0$

(2) $R(x)>0, Q(x)-S^T(x)R(x)S(x)>0$

引理,定理,定义,公理,命题,推论

一些科研的问题

邻接矩阵为什么要求拉普拉斯矩阵?

拉布拉斯矩阵放弃了节点的内耦合,如何弥补?

矩阵可以代表二次型,正定与否可以表示系统性质,那为什么系统就一定得是二次的?

很多模型出现了 $\theta$,$1-\theta$,是为了凑某个线性关系吗?为什么不是 $\theta$,$2-\theta$ ?

PAT-A-1002

PAT-A-1002

所有甲级题全解

原题链接

生僻词汇:

exponents 指数

coefficient 系数

题意

两个多项式相加,系数不为整数

知识点

在线处理

利用空间换解题复杂度

printf() 的格式问题,%.1f 是输出一位小数,类推

思路

$N$ 最多 为 1000,设置一个长度大于 1000 的数组,即可用角标代替指数,在线处理

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstdio>

const int maxN = 1005;
double arr[maxN] = {0};
int k, n, cnt = 0;
double an;
int t = 2;

int main() {


//循环2次,输入2个多项式
while (t--) {
scanf("%d", &k);

//在线处理
while (k--) {
scanf("%d%lf", &n, &an);
arr[n] += an;
}
}



//非零项数
for (int i = 0; i < maxN; i++) {
if (arr[i] != 0) cnt++;
}

//输出
printf("%d", cnt);
for (int i = maxN - 1; i >= 0; i--) {
if (arr[i] != 0) {
printf(" %d %.1f", i, arr[i]);
}
}
}

EditorConfig 使用说明

EditorConfig 使用说明

.EditorConfig 文件是为了保证跨 IDE 的代码一致性,以避免不同缩进方式带来的潜在安全问题

.EditorConfig 的优先级高于 IDE

查询表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 表示是最顶层的配置文件,发现值为true时,才会停止查找.editorconfig文件
root

# 设置使用那种缩进风格(tab是制表符,space是空格)
indent_style

# 定义用于每个缩进级别的空格数
indent_size

# 用一个整数来设置tab缩进的列数。
tab_width

# 设置换行符,值为lf、cr和crlf
end_of_line

# 设置编码格式,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le
charset

# 设置为true则删除换行符之前的任何空白字符
# 设置为true会删除每一行后的任何空格 ***
trim_trailing_whitespace

# 设置为true以确保文件在保存时以换行符结尾
# 如果设置为true,则文件最后一行也会确保以换行符结尾,会强制换行到下一行 ***
insert_final_newline

通配方式

*

任何字符串,路径分隔符 ( / ) 除外

**

任何字符串

?

任何单个字符,路径分隔符 ( / ) 除外

[name]

匹配名称中的任何单个字符

[!name]

匹配名称中没有的任何单个字符

{s1,s2,s3}

匹配任何给定的字符串(以逗号分隔,可以嵌套)

{num1..num2}

num1 和之间的任何整数 num2,其中 num1 和 num2 可以是正数或负数

匹配到的不同的文件类型,可以定义不同的格式化属性。

特殊字符可以用反斜杠转义,这样它们就不会被解释为通配符模式。

  • Copyrights © 2020-2023 Jack Kong
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信