Python 与 数学 【1】

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) (xX)(yY)} 由属于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 x0X 相对应的 元素 y 0 ∈ Y y_0\in Y y0Y 称为元素 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:XY,XfY

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

由于是我大晚上看书 心血来潮 所以今天就先写到这。。。

你可能感兴趣的:(#,数学分析)