Python 与 数学
-
最近 闲暇时间买了套卓里奇的《数学分析》在重温数学分析。之前 也通过 《流畅的 Python》 自学了 python。发现 python 里很多都可以用数学来理解。所以打算开个预期两年的坑,把数学分析用 python 去理解。
-
当然对于两方面 相对来说都是初学者,欢迎大家一起讨论学习。
-
代码块
为 python 代码, LaTeX \LaTeX LATEX 为 数学表达式
通用的数学概念及记号
基本运算
中文 | LaTeX \LaTeX LATEX | LaTeX \LaTeX LATEX代码 | Python 代码 | 备注 |
---|---|---|---|---|
非 | ¬ \neg ¬ | \neg | ! ,not | ! 对比两者值,not 对比两者内存(若为可变量有区别) |
与 | ∧ \land ∧ | \land | & ,and | 若做数值对比,& 表示位运算,and 含0,返回0; 均为非0时,返回后一个值 |
或 | ∨ \lor ∨ | \lor | | ,or | 若做数值对比, | 表示位运算, or 至少有一个非0时,返回第一个非0 |
蕴含 | ⇒ \Rightarrow ⇒ | \Rightarrow | ||
等价 | ⇔ \Leftrightarrow ⇔ | \Leftrightarrow | == | |
属于 | ∈ \in ∈ | \in | in | |
存在 | ∃ \exists ∃ | \exists | ||
可以找到 | ∀ \forall ∀ | \forall | for |
# 小练习
# 0 为真 1 为假 设定命题
A = (0,1)
print(f'¬A\n| A | 0 | 1 |\n|¬A | {int(not A[0])} | {int(not A[1])} |\n')
B = (0,1)
print(f'A and B\n| A\B | 0 | 1 |\n| 0 | {int(A[0] and B[0])} | {int(A[0]and B[1])} |\n| 1 | {int(A[1]and B[0])} | {int(A[1]and B[1])} |')
¬A
| A | 0 | 1 |
|¬A | 1 | 0 |
A and B
| A\B | 0 | 1 |
| 0 | 0 | 0 |
| 1 | 0 | 1 |
C = {1,2,3,4}
print(f'C : {C}\n1 in C: {1 in C}')
C : {1, 2, 3, 4}
1 in C: True
集合
- 集合在 Python 中 应该是可以理解为
set
。 ’由若干确定的、有充分区别的、具体或抽象合并而成的一个整体‘ —— 格奥尔格·康托尔 描述集合的概念。 - 在 Python 中
set
为无序的,有序的集合 为 tuple, 其中set
可变、 tuple 不可变 set
集合 :set()
、{A,B}
{ A , B } \{A, B\} {A,B}- tuple 元组 :
(A,B)
( A , B ) (A, B) (A,B) 因其不可变 所以有序 - 按照定义
(
A
,
B
)
=
(
C
,
D
)
(A,B) = (C,D)
(A,B)=(C,D) 表示
A
=
C
A=C
A=C 且
B
=
D
B=D
B=D。 若
A
≠
B
A \neq B
A=B 则
(
A
,
B
)
≠
(
B
,
A
)
(A, B) \neq (B,A)
(A,B)=(B,A)
- 需要注意的是
(A, B) = (B,A)
并不是 ( A , B ) = ( B , A ) (A, B) = (B,A) (A,B)=(B,A) 代码里的=
为赋值
- 需要注意的是
- 称 { A , B } \{A, B\} {A,B} 为偶,若有序 为有序偶 ( A , B ) (A, B) (A,B)
# 无序
A = {0,1}
B = {1,0}
print(f'set 无序\nA == B: {A == B}\nB == A: {B == A}')
set 无序
A == B: True
B == A: True
# 有序
A = (0,1)
B = (1,0)
print(f'tuple 有序\nA == B: {A == B}\nB == A: {B == A}')
tuple 有序
A == B: False
B == A: False
笛卡尔积
- 直积、笛卡尔积 X × Y : = { ( x , y ) ∣ ( x ∈ X ) ∧ ( y ∈ Y ) } X \times Y :=\{(x,y)\vert\ (x\in X)\land (y\in Y)\} X×Y:={(x,y)∣ (x∈X)∧(y∈Y)} 由属于X与Y的全部续偶组成。
- 这就是笛卡尔平面坐标系,全部由序偶 ( x , y ) (x,y) (x,y) 组成
# 简单起见 设X、Y为三个元素
X = {2,1,3}
Y = {3,1,2}
Descartes = {(x,y) for x in X
for y in Y}
print('Descartes: ', Descartes)
Descartes: {(1, 2), (3, 2), (1, 3), (3, 3), (3, 1), (2, 1), (2, 3), (2, 2), (1, 1)}
- 一般而言 X × Y ≠ Y × X X\times Y\neq Y\times X X×Y=Y×X 仅当 X = Y X = Y X=Y 时才成立, 这时 X × X X\times X X×X 简写为 X 2 X^2 X2
函数
- 函数 为 映射概念
- 设 X , Y X, Y X,Y 为两个集合
- 如果 集合 X X X 的每一个元素 x x x 按照 某个规律 f f f 与 集合 Y Y Y 的元素 y y y 相对应, 我们就说 有一个函数,它定义于 X X X 并取值于 Y Y Y
- X X X 为定义域, x x x 为函数的 变元 或 自变量
- 而自变量 x x x 的具体值 x 0 ∈ X x_0 \in X x0∈X 相对应的 元素 y 0 ∈ Y y_0\in Y y0∈Y 称为元素 x 0 x_0 x0 上的函数值,并表示为 f ( x 0 ) f(x_0) f(x0), 一般而言 y = f ( x ) ∈ Y y=f(x)\in Y y=f(x)∈Y 随 x x x 的值变化而变化,因此称为因变量。
f : X → Y , X → f Y f: X \to Y, X\overset{f}{\to} Y f:X→Y,X→fY
def f(x:str)->str:
return 'y'+x[1:]
X = {'x_0','x_1','x_2'}
Y = {f(x) for x in X}
print('Y: ', Y)
Y: {'y_0', 'y_1', 'y_2'}
# 若为有序
X = ['x_0','x_1','x_2']
Y = [f(x) for x in X] # 因tuple 为不可变 这里使用 list
for i in range(len(X)):
print(X[i],'→',Y[i])
x_0 → y_0
x_1 → y_1
x_2 → y_2
由于是我大晚上看书 心血来潮 所以今天就先写到这。。。