5.3 函数

第五章 集合论

全文均为手敲,如果发现有误,请于评论区交流讨论留言,作者会及时修改

5.3 函数

基本概念
  • 函数是一种特殊的关系,这种关系满足单值性,即从X到Y,元素x不能劈叉
    • 即 二 元 关 系 f 满 足 : 若 < x , y 1 > ∈ f 且 < x , y 2 > ∈ f 则 y 1 = y 2 即二元关系f满足:若< x, y_1> \in f 且 < x, y_2> \in f 则y_1 = y_2 f<x,y1>f<x,y2>fy1=y2
    • 这样的f我们称为X到Y的部分函数
    • x叫源像点,y是像点,可记为 y = f ( x ) y=f(x) y=f(x)
  • 函数的定义域与值域的定义完全照搬关系的
    • 若 x ∈ d o m ( f ) , 则 称 f 在 x 处 有 定 义 , 记 为 : “ f ( x ) ↓ ” 若x \in dom(f), 则称f在x处有定义,记为:“f(x) \downarrow” xdom(f),fxf(x)
    • 无 定 义 记 为 : “ f ( x ) ↑ ” 无定义记为:“f(x) \uparrow” f(x)
  • 注意我们上述说的都是部分函数
    • 我们把 d o m ( f ) = X dom(f) = X dom(f)=X的函数称为全函数,简称函数
    • d o m ( f ) ⊂ X 的 函 数 称 为 严 格 部 分 函 数 dom(f) \subset X的函数称为严格部分函数 dom(f)X
    • r a n ( f ) = Y ran(f) = Y ran(f)=Y ,称f为X到Y的部分函数。
    • r a n ( f ) ⊂ Y ran(f) \subset Y ran(f)Y ,称f为X到Y的部分函数。
    • 1-1部分函数: 当 f ( x 1 ) = f ( x 2 ) 时 , 都 有 x 1 = x 2 当f(x_1)=f(x_2)时,都有x_1=x_2 f(x1)=f(x2)x1=x2
  • 函数的限制:
    • 若 A ⊆ X , 则 f ∩ ( A × X ) 是 从 A 到 Y 的 函 数 , 称 为 f 在 A 上 的 限 制 , 记 作 f ∣ A 若A \subseteq X,则f\cap(A\times X)是从A到Y的函数,称为f在A上的限制,记作f|_A AXf(A×X)AYfAfA
    • 又 称 f 为 f ∣ A 到 X 上 的 延 拓 又称f为f|_A到X上的延拓 ffAX
  • 部分函数f的像与源像(f是X到Y的部分函数, A ⊆ X 且 B ⊆ Y A \subseteq X 且 B \subseteq Y AXBY):
    • f [ A ] = { f ( x ) ∣ x ∈ A ∧ f ( x ) ↓ } f[A] = \{f(x)|x \in A \wedge f(x)\downarrow \} f[A]={f(x)xAf(x)}
    • f − 1 [ B ] = { x ∈ X ∣ f ( x ) ∈ B ∧ f ( x ) ↓ } f^{-1}[B] = \{x \in X | f(x) \in B \wedge f(x)\downarrow \} f1[B]={xXf(x)Bf(x)}
    • d o m ( f ) = f − 1 [ Y ] ; r a n ( f ) = f [ X ] dom( f ) = f ^ { -1 } [Y] ; ran(f) = f[ X ] dom(f)=f1[Y];ran(f)=f[X]
      • 实际上这里的 f f f和我们上文中的 f : X → Y f:X\to Y f:XY已经发生了变化,变成了集合到集合的关系,但不影响理解。
  • 常用定理(不太重要,但可以看看,熟悉函数的性质):
    • A 1 ⊆ A 2 ⊆ X , 则 f [ A 1 ] ⊆ f [ A 2 ] ⊆ r a n ( f ) ( f − 1 同 理 ) A_1 \subseteq A_2 \subseteq X,则f[A_1] \subseteq f[A_2] \subseteq ran(f) (f^{-1}同理) A1A2Xf[A1]f[A2]ran(f)(f1)
    • 缩放定理:
      • A ⊆ d o m ( f ) , 则 A ⊆ f − 1 [ f [ A ] ] A \subseteq dom(f),则A \subseteq f^{-1}[f[A] ] Adom(f)Af1[f[A]]
      • B ⊆ r a n ( f ) , 则 B = f [ f − 1 [ B ] ] B \subseteq ran(f),则B = f[f^{-1}[B]] Bran(f)B=f[f1[B]]
      • (有点不对称,原因是 # d o m > # r a n \# dom > \# ran #dom>#ran)
    • 若 A ⊆ ρ ( X ) , B ⊆ ρ ( Y ) 若A \subseteq \rho (X), B \subseteq \rho (Y) Aρ(X),Bρ(Y)
      • f [ ∪ A ] = ∪ { f [ α ] ∣ α ∈ A } f[\cup A] = \cup \{f[\alpha] | \alpha \in A \} f[A]={f[α]αA}
      • f [ ∩ A ] ⊆ ∩ { f [ α ] ∣ α ∈ A } ( A ≠ ϕ ) f[\cap A] \subseteq \cap \{f[\alpha] | \alpha \in A \}(A \neq \phi) f[A]{f[α]αA}(A=ϕ)
      • f − 1 [ ∪ B ] = ∪ { f − 1 [ β ] ∣ β ∈ B } f^{-1}[\cup B] = \cup \{f^{-1}[\beta] | \beta \in B \} f1[B]={f1[β]βB}
      • f − 1 [ ∩ B ] = ∩ { f − 1 [ β ] ∣ β ∈ B } ( B ≠ ϕ ) f^{-1}[\cap B] = \cap \{f^{-1}[\beta] | \beta \in B \}(B \neq \phi) f1[B]={f1[β]βB}(B=ϕ)(与第2条不对称)
    • 限制定理:
      • d o m ( f ∣ A ) = A ∩ d o m f dom(f|_A) = A \cap domf dom(fA)=Adomf
      • r a n ( f ∣ A ) = f [ A ] ran(f|_A) = f[A] ran(fA)=f[A]
      • 若 A ⊆ d o m f , 则 f ∣ A 是 A 的 全 函 数 若A \subseteq domf,则f|_A是A的全函数 AdomffAA
  • 全函数集合:
    • Y X = { f ∣ f : X → Y } Y^X = \{f | f: X \rightarrow Y\} YX={ff:XY}
    • 每 个 X 中 的 元 素 都 可 以 任 意 选 择 一 个 Y 中 的 元 素 , 所 以 # ( Y X ) = ( # Y ) ( # X ) 每个X中的元素都可以任意选择一个Y中的元素,所以\#(Y^X) = (\# Y)^{(\# X)} XY#(YX)=(#Y)(#X)
函数的复合
  • 函数是一种特殊的关系,所以函数的复合与关系的复合是一样的,我们定义 f ⋅ g f \cdot g fg为X到Z的关系
    • 但是由于我们常用f(x)的方式来表示函数,所以我们把 f ⋅ g f \cdot g fg的复合关系表示为复合函数的话,写法为 g ( f ( x ) ) = ( g ⋅ f ) ( x ) g(f(x)) = (g \cdot f)(x) g(f(x))=(gf)(x)
  • 定义域与值域讨论:f是X到Y的部分函数,g是Y到z的部分函数
    • d o m ( g ⋅ f ) = f − 1 [ d o m g ] ( r a n 类 似 ) dom(g \cdot f) = f^-1[dom g] (ran类似) dom(gf)=f1[domg](ran)(关系怎么证这就怎么证)
    • f 与 g 都 是 全 函 数 , 则 g ⋅ f 也 是 全 函 数 f与g都是全函数,则g \cdot f也是全函数 fggf(由上得)
  • 结合律照样满足(关系一样)
  • 若 f : X → X , 则 我 们 可 以 定 义 f 的 n 次 幂 , f n 若f:X\rightarrow X, 则我们可以定义f的n次幂,f^n f:XX,fnfn(关系可以由矩阵表示,联系方阵与矩阵的n次幂定义)
函数的性质
  • 三大性质:(注意前提是全函数)
    • 满射: f 是 满 射    ⟺    ∀ y ( y ∈ Y → ∃ x ( x ∈ X ∧ y = f ( x ) ) ) f是满射 \iff \forall y(y \in Y \rightarrow \exists x(x \in X \wedge y = f(x) ) ) fy(yYx(xXy=f(x)))
    • 单射: f 是 单 射    ⟺    ∀ x 1 ∀ x 2 ( x 1 ∈ X ∧ x 2 ∈ X ∧ f ( x 1 ) = f ( x 2 ) → x 1 = x 2 ) f是单射 \iff \forall x_1 \forall x_2(x_1 \in X \wedge x_2 \in X \wedge f(x_1) = f(x_2) \rightarrow x_1 = x_2) fx1x2(x1Xx2Xf(x1)=f(x2)x1=x2)
    • 满射 + 单射 = 双射
  • 若 f 和 g 都 是 满 / 单 / 双 射 时 , g ⋅ f 也 是 满 / 单 / 双 射 若f和g都是满/单/双射时,g\cdot f也是满/单/双射 fg//gf//(按定义证)
  • 左满右单定理:
    • 若 g ⋅ f 是 满 射 , 则 g 是 满 射 若g\cdot f是满射,则g是满射 gfg
    • 若 g ⋅ f 是 单 射 , 则 f 是 单 射 若g\cdot f是单射,则f是单射 gff(反证法)
    • 若 g ⋅ f 是 双 射 , 则 … 若g\cdot f是双射,则\dots gf
    • 可以意象化的理解
逆函数
  • 还是那句话,函数是一种特殊的关系,所以函数的复合和关系的复合内容基本一致,但是函数有他的特殊性,就是单值性。所以我们如果沿用关系的逆的定义,会很麻烦,因为这样一个函数反过来不一定满足单值性,所以我们这里函数的逆明显不同于关系的逆,而更加的相像与矩阵的逆,而且复合是矩阵乘,所以在接触函数的逆的时候我们可以时刻联系矩阵运算

  • 我们定义了左逆右逆: 若 f : X → Y 若f:X \rightarrow Y f:XY

    • 若 有 g : Y → X , 使 得 g ⋅ f = I x , 则 f 左 可 逆 , g 为 f 的 左 逆 若有g:Y \rightarrow X,使得g \cdot f = I_x,则f左可逆,g为f的左逆 g:YX使gf=Ixfgf(右逆同理)
    • 若有g同时为左逆和右逆,则f可逆,g为f的逆
    • 左逆右逆不一定存在,也不一定唯一
  • 左右可逆的条件:

    • 左 可 逆    ⟺    单 射 左可逆 \iff 单射
    • 右 可 逆    ⟺    满 射 右可逆 \iff 满射
    • 可 逆    ⟺    双 射 可逆 \iff 双射
    • 可以用左满右单定理证出一边,用单射满射的性质构造出g来证另一边
    • 而我有一种新的理解,上文说到,我们可以时刻联系矩阵运算,满射的话X范围会比Y大,单射的话Y的范围会比X要大,对应的正是行数大于列数及列数大于行数的长条形矩阵(或说行满秩与列满秩),我们也可以构造出左边的逆与右边的逆(这里的逆矩阵也是长条形,当然只是类似),注意函数的左右是反过来的,所以矩阵的左乘和右乘的最后要在名称上称为右逆和左逆。(我这里不再细说,感兴趣欢迎来讨论)
  • 若 f 可 逆 , 则 f 的 逆 唯 一 , 且 f 的 逆 关 系 f − 1 即 为 f 的 逆 函 数 若f可逆,则f的逆唯一,且f的逆关系f^{-1}即为f的逆函数 ffff1f

    • 唯一性证明: g 1 = g 1 ⋅ I Y = g 1 ⋅ ( f ⋅ g 2 ) = I X ⋅ g 2 = g 2 g_1 = g_1 \cdot I_Y = g_1 \cdot (f \cdot g_2) = I_X \cdot g_2 = g_2 g1=g1IY=g1(fg2)=IXg2=g2
    • 关于 $f^{-1} 是 f 的 逆 函 数 : 证 明 不 难 , 但 是 我 们 注 意 到 , 是f的逆函数:证明不难,但是我们注意到, ff^{-1} $的矩阵表示为f的矩阵的转置,而不是矩阵的逆,这里主要是由于关系复合的乘法与真正的矩阵乘是有差别的,但是我们可以类比单位阵的意味,这里的矩阵可逆是正交的。
  • 可逆与复合的交换: f 可 逆 , g 可 逆 , 则 g ⋅ f 可 逆 , 且 ( g ⋅ f ) − 1 = f − 1 ⋅ g − 1 f可逆,g可逆,则g \cdot f可逆,且(g \cdot f )^{-1} = f^{-1} \cdot g^{-1} fggf(gf)1=f1g1

    • 证: ( g ⋅ f ) ⋅ ( f − 1 ⋅ g − 1 ) = I X ( 左 乘 同 理 ) (g \cdot f) \cdot (f^{-1} \cdot g^{-1}) = I_X(左乘同理) (gf)(f1g1)=IX()
集合的特征函数
  • 特征函数全集映射到{0,1}上,原理很简单,但是可以简化很多逻辑表达式的计算问题,但是要真正派上大用场得等到下一节-基数。

  • 定义:设U是全集,A是U的子集

    • 定 义 A 的 特 征 函 数 Ψ A : U → { 0 , 1 } 定义A的特征函数\Psi_A:U\rightarrow \{0,1\} AΨA:U{0,1}
      Ψ A ( x ) = { 1 若 x ∈ A 0 若 x ∉ A \Psi_A(x)= \begin{cases} 1 \quad 若x \in A \\\\ 0 \quad 若x \notin A \end{cases} ΨA(x)=1xA0x/A
  • 性质:

    • ∀ x ( Ψ A ( x ) = 0 )    ⟺    A = ϕ \forall x(\Psi_A(x) = 0) \iff A = \phi x(ΨA(x)=0)A=ϕ
    • A = U    ⟺    … A = U \iff \dots A=U
    • ∀ x ( Ψ A ( x ) ≤ Ψ B )    ⟺    A ⊆ B \forall x(\Psi_A(x) \leq \Psi_B) \iff A \subseteq B x(ΨA(x)ΨB)AB
    • A = B    ⟺    … A = B \iff \dots A=B
    • Ψ A ∩ B = Ψ A ⋅ Ψ B \Psi_{A \cap B} = \Psi_A \cdot \Psi_B ΨAB=ΨAΨB
    • Ψ A ∪ B = Ψ A + Ψ B − Ψ A ∩ B \Psi_{A \cup B} = \Psi_A + \Psi_B - \Psi_{A \cap B} ΨAB=ΨA+ΨBΨAB
    • Ψ ∼ A = 1 − Ψ A \Psi_{\sim A} = 1 - \Psi_A ΨA=1ΨA
    • Ψ A − B = Ψ A ∩ ∼ B = … \Psi_{A - B} = \Psi_{A \cap \sim B} = \dots ΨAB=ΨAB=
  • 证明俩逻辑表达式相等可以转化为证明特征函数相等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Python实现multi函数的代码: ```python def multi(a, b): """ 实现两个数的乘法 :param a: 第一个数 :param b: 第二个数 :return: 两个数的乘积 """ return a * b # 测试 print(multi(5, 3)) # 输出 15 ``` 该函数接受两个参数,返回它们的乘积。在上面的代码中,我们定义了一个名为`multi`的函数,它接受两个参数`a`和`b`,并返回它们的乘积。我们使用`*`运算符来计算两个数的乘积。最后,我们使用`print`函数来测试该函数是否正常工作。 ### 回答2: Python中实现multi函数5.3,需要先了解multi函数的含义。multi函数是一个把两个参数相乘的函数,参数可以是任何数值类型。所以我们需要定义一个函数名为multi,同时定义两个参数。 先来看一下实现该函数的代码: ``` def multi(a, b): return a * b ``` 这段代码就是实现了multi函数5.3的功能。其中,def关键字用来定义一个函数,multi是函数名,a和b是参数名。函数体中的return关键字用来返回该函数的结果,即a和b的乘积。 那么,如何测试该函数的正确性呢?可以使用一些测试用例,例如: ``` print(multi(3, 5)) # 输出 15 print(multi(2.5, 4)) # 输出 10.0 print(multi(-2, 6)) # 输出 -12 ``` 这些测试用例中,分别传入不同类型的参数,即整数、浮点数和负数,测试multi函数是否能正确计算它们的乘积。运行结果是正确的,说明该函数的实现是正确的。 综上,Python实现multi函数5.3,只需要定义一个函数名为multi,定义两个参数a和b,函数体中用return语句返回a和b的乘积就可以了。同时,可以使用各种测试用例来测试该函数的正确性。 ### 回答3: Python是一种高级编程语言,提供了许多内置函数来简化编程过程。其中之一是multi函数,可以实现多个数字相乘。下面将详细介绍如何使用Python实现multi函数。 1. 定义multi函数 首先,需要定义一个名为multi的函数函数有一个参数,即要相乘的数字列表: ``` def multi(numbers): ``` 2. 初始化结果变量 接下来,需要初始化一个结果变量,用于存储数字相乘的结果。在这里,可以将结果变量设置为1,因为任何数字乘以1都等于其本身: ``` result = 1 ``` 3. 循环相乘 然后,在for循环中,使用“*”符号将相邻的数字相乘,并将结果赋给结果变量。注意,这里的for循环是遍历数字列表中的所有数字,即使它们很多也不会出现问题: ``` for number in numbers: result *= number ``` 4. 返回结果 最后,将计算结果返回给调用函数的代码行: ``` return result ``` 完整代码如下: ``` def multi(numbers): result = 1 for number in numbers: result *= number return result ``` 5.3版本的multi函数现已成功实现,可以接受数字列表作为输入,并返回所有数字的乘积。这个函数可以用于各种场合,例如在计算机程序中进行数学计算,或将多个数字相乘以得出结果等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值