Python 与 数学
-
最近 闲暇时间买了套卓里奇的《数学分析》在重温数学分析。之前 也通过 《流畅的 Python》 自学了 python。发现 python 里很多都可以用数学来理解。所以打算开个预期两年的坑,把数学分析用 python 去理解。
-
当然对于两方面 相对来说都是初学者,欢迎大家一起讨论学习。
-
代码块
为 python 代码, 为 数学表达式
通用的数学概念及记号
基本运算
中文 | 代码 | Python 代码 | 备注 | |
---|---|---|---|---|
非 | \neg |
! ,not |
! 对比两者值,not 对比两者内存(若为可变量有区别) |
|
与 | \land |
& ,and |
若做数值对比,& 表示位运算,and 含0,返回0; 均为非0时,返回后一个值 |
|
或 | \lor |
| ,or |
若做数值对比, | 表示位运算, or 至少有一个非0时,返回第一个非0 |
|
蕴含 | \Rightarrow |
|||
等价 | \Leftrightarrow |
== |
||
属于 | \in |
in |
||
存在 | \exists |
|||
可以找到 | \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}
- tuple 元组 :
(A,B)
因其不可变 所以有序 - 按照定义
表示
且
。 若
则
- 需要注意的是
(A, B) = (B,A)
并不是 代码里的=
为赋值
- 需要注意的是
- 称 为偶,若有序 为有序偶
# 无序
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 = {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)}
- 一般而言 仅当 时才成立, 这时 简写为
函数
- 函数 为 映射概念
- 设 为两个集合
- 如果 集合 的每一个元素 按照 某个规律 与 集合 的元素 相对应, 我们就说 有一个函数,它定义于 并取值于
- 为定义域, 为函数的 变元 或 自变量
- 而自变量 的具体值 相对应的 元素 称为元素 上的函数值,并表示为 , 一般而言 随 的值变化而变化,因此称为因变量。
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
由于是我大晚上看书 心血来潮 所以今天就先写到这。。。