写在前面:文章里面的图片公式都是逆天一个个打出来画出来的,公式系列基本上都提供了源码
图片基本上不太加水印了,加了的也留了空间可以让你裁剪去水印,这样你引用也比较方便 ~
但是还是想说下:”加个参考链接呗,逆天写作也不容易啊~“
在线预览:https://www.cnblogs.com/dotnetcrazy/p/9294292.html
线性代数研究的是什么内容?
1维直线、2维平面(长宽)、3维空间(长宽高 | xyz轴)、4维时空(xyz轴+时间轴)
学习中主要就是学习矩阵
、向量
等,理解线性映射
、特征值
和特征向量
等。
总结:线性代数就是一门将M维世界与N维世界联系起来的学科
一开始人们用的数都是 自然数 (0、1、2...)来计算
后来发现用小数减大数就没法计算了。eg:1-2=?
接着就引入了负数
,然后常用的数就变成了 整数 (正整数、0、负整数),这样就可以快乐的加减乘
运算
整数:
后来发现,像1/3=?
这类的不能整除了,于是就引入了分数
,
这样数的界限又扩充了,就叫 有理数 ,这样加减乘除都可以通过分数来表示了
有理数(分数):
好景不长,之后求圆面积啥的,又发现了像π、√3
这类的,没法用分数表示的数,
于是就又在原有基础上扩展了,加入了无理数
,数的界限又扩展了==> 实数
实数(小数):
这下总算可以了吧,可事实往往出乎意料,像二次曲线求解有无解的情况(曲线跟x轴不相交)
这太不科学了吧,然后就引入了 虚数
i 的概念,并定义i²=-1
,数的范围又扩大了,就叫 复数
举个例子(后面有推导):
x=−b±b2−4ac−−−−−−−√2ax=−b±b2−4ac2a
以前我们遇到:x²+3=0
,因为判别式b²-4ac<0
所以方程无解(或者曲线画出来,看跟x轴有几个交点==>就说明有几个解)
其实我们中学学的这个无解,指的是在实数范围内无解
引入虚数后:x²+3=0
==> x²-(-3)=0
,因为i²=-1
==> (x+√3i)(x-√3i)=0
有解了
In [1]:
# 画个图看看曲线长什么样
import matplotlib.pyplot as plt
In [2]:
# 生成x和y的值
x_list = list(range(-10, 11))
y_list = [x**2 + 3 for x in x_list] # 2**3 ==> 8 **是Python里面的幂运算符
print(x_list)
print(y_list)
# 画图
plt.plot(x_list, y_list)
# 显示图片
plt.show()
[-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[103, 84, 67, 52, 39, 28, 19, 12, 7, 4, 3, 4, 7, 12, 19, 28, 39, 52, 67, 84, 103]
综上所述,数可以分为:
复数:z = a+bi,i² = -1
求解公式
的推导这个应该是初中学的,很多学校教数学就让背公式,其实这样容易忘记(你好几年不接触数学公式还记得?)会推导才是根本 :
其实不仅仅是数学公式了,很多程序中的算法也是这样,都是需要推导的,不然只能用而不能深究,就更不提创新了。不扯了,进入正题:
ax2+bx+c=0(a≠0)ax2+bx+c=0(a≠0)
要求x,那我们先两边同时除以a:
x2+bax+ca=0x2+bax+ca=0
把和x没关系的常数移到等号另一边:
x2+bax=−cax2+bax=−ca
看到左边就想到了 ==> x2+2ax+a2x2+2ax+a2 我们来凑一下:
x2+2∗b2ax+(b2a)2=(b2a)2−cax2+2∗b2ax+(b2a)2=(b2a)2−ca
因为:x2+2ax+a2=(x+a)2x2+2ax+a2=(x+a)2 所以可以转换成:
(x+b2a)2=(b2a)2−ca(x+b2a)2=(b2a)2−ca
把右边化简一下:
(x+b2a)2=b24a2−4ac4a2=b2−4ac4a2(x+b2a)2=b24a2−4ac4a2=b2−4ac4a2
去左边平方(右边开根号):
x+b2a=±b2−4ac√2ax+b2a=±b2−4ac2a
把左边的常数移过去:
x=−b±b2−4ac√2ax=−b±b2−4ac2a
方便有需求的人,推导过程的源码贴一下:
$ax^2+bx+c=0(a\neq0)$
要求x,那我们先两边同时除以a:
$x^2+\frac{b}{a}x+\frac{c}{a}=0$
把和x没关系的常数移到等号另一边:
$x^2+\frac{b}{a}x=-\frac{c}{a}$
看到左边就想到了 ==> $x^2+2ax+a^2$ 我们来凑一下:
$x^2+2*\frac{b}{2a}x+(\frac{b}{2a})^2=(\frac{b}{2a})^2-\frac{c}{a}$
因为:$x^2+2ax+a^2=(x+a)^2$ 所以可以转换成:
$(x+\frac{b}{2a})^2=(\frac{b}{2a})^2-\frac{c}{a}$
把右边化简一下:
$(x+\frac{b}{2a})^2=\frac{b^2}{4a^2}-\frac{4ac}{4a^2}=\frac{b^2-4ac}{4a^2}$
去左边平方(右边开根号):
$x+\frac{b}{2a}=\frac{ \pm \sqrt{b^2-4ac}}{2a}$
把左边的常数移过去:
$x=\frac{-b \pm \sqrt{b^2-4ac}}{2a}$
命题中学阶段就接触了,我们来先说说命题 :可以判断真假的语句叫做命题
比如:小明是个男的
,这个不管对错肯定有个确定的答案
再比如:小明是活泼好学的孩子
,这个就不一定了,公说公有理婆说婆有理,这种结果模糊不确定的就不是命题
充分条件和必要条件
这个时间长了容易混淆,举个例子:小明是人类
,人类是小明
通过小明肯定能推出他是个人,这个就叫必要条件
人就一定是小明吗?不一定吧 ==> 这个就是充分条件
如果P成立,Q就成立是真命题时,就可以表示为:P=>Q
(由P肯定能推导出Q)(eg:小明=>人
):
P是Q的必要条件
Q是P的充分条件
充分必要条件:
如果P=>Q
,而且Q=>P
,那么:
P是Q的充分必要条件
Q是P的充分必要条件
表示为:P<=>Q
集合应该是刚上高中那会教的内容,我们来看看:
集合 (Python里面用 set 来表示):某种特定性质的对象,汇总成的集体(人以类聚,物以群分
) 这些对象称为该集合的元素。
集合中的元素有三个特征:
表示方式,eg:10以内的偶数:
X = {0, 2, 4, 6, 8}
X = {2n | n = 0, 1, 2, 3, 4}
当x是X集合里面的元素时,可以表示为:x ∈ X
eg:2 ∈ X
In [3]:
# Python3 Code
X = set([x for x in range(10) if x%2==0])
print(X)
{0, 2, 4, 6, 8}
In [4]:
# 当x是X集合里面的元素时,可以表示为:x ∈ X
# eg:2 ∈ X
2 in X
Out[4]:
True
子集 :当一个集合A里面所有元素都属于集合B时,称A是B的子集。即:A ⊆ B
eg:集合A:{1,2,3} 集合B:{1,2,3,4} ==> A ⊆ B
如果两个集合A和B的元素完全相同,则称A与B两个集合相等,记为 A=B
:
集合A:{1,2,3,4} 集合B:{1,2,3,4} ==> A ⊆ B
and B ⊆ A
==> A = B
真子集 :如果集合A是集合B的子集A ⊆ B
,并且集合B中至少有一个元素x∉A,那么集合A叫做集合B的真子集
简单讲:如果A包含于B,且A不等于B,就说集合A是集合B的真子集
(A有的B全有,B有的A不一定有
)
如果集合A中任意一个元素都是集合B中的元素,我们就说这两个集合有包含关系,称集合A为集合B的子集。可知任一集合A是自身的子集,空集是任一集合的子集。真子集就是一个集合中的元素全部是另一个集合中的元素,但不存在相等。所有亚洲国家组成的集合是地球上所有国家组成的集合的真子集;所有自然数的集合是所有整数的集合的真子集。
In [5]:
A = set([1,2,3])
B = set([1,2,3,4])
print(A)
print(B)
{1, 2, 3}
{1, 2, 3, 4}
In [6]:
# 子集(判断A是否是B的子集)
A.issubset(B)
Out[6]:
True
In [7]:
# 父集(B是否是A的父集)
B.issuperset(A)
Out[7]:
True
In [8]:
A = B
A.issubset(B)
Out[8]:
True
并集 :由所有属于集合A或属于集合B的元素所组成的集合,读作“A并B”(或“B并A”)并集越并越多,而且没有重复元素。
记作A∪B
or B∪A
,即 A∪B={x|x∈A,或x∈B}
交集 :由属于A且属于B的相同元素组成的集合,读作“A交B”(或“B交A”)交集越交越少。
记作A∩B
or B∩A
,即 A∩B={x|x∈A,且x∈B}
若A包含B,则A∩B=B,A∪B=A
差集 :A,B是两个集合,所有x∈A且x∉B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差)
类似地,对于集合A、B,我们把集合 A-B={x∣x∈A,且x∉B}
叫做A与B的差集(把B中元素从A中减去
)
补集 :一般指绝对补集,即一般地,设S是一个集合,A是S的一个子集(S包含于A)(大前提
),由S中所有不属于A的元素组成的集合,叫做子集A在S中的绝对补集。
扩展:在集合论和数学的其他分支中,存在补集的两种定义:相对补集和绝对补集
In [9]:
set1=set([1,2,5])
set2=set([2,4,6])
print(set1)
print(set2)
{1, 2, 5}
{2, 4, 6}
In [10]:
# 交集 A∩B={x|x∈A,且x∈B}
set1 & set2
Out[10]:
{2}
In [11]:
# 并集 A∪B={x|x∈A,或x∈B}
set1 | set2
Out[11]:
{1, 2, 4, 5, 6}
In [12]:
# 差集 A-B={x∣x∈A,且x∉B}
set1 - set2
Out[12]:
{1, 5}
In [13]:
set3=set(list(range(10)))
print(set3)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
In [14]:
# 【大前提】set2是set3的一个子集(set3包含于set2)
set2.issubset(set3)
Out[14]:
True
In [15]:
# 这时候求差集,就等于求补集
set3 - set2
Out[15]:
{0, 1, 3, 5, 7, 8, 9}
这个系列应该是高一的知识
设A,B是两个非空的集合,如果按某一个确定的对应关系f,使对于集合A中的任意一个元素x
,在集合B中都有唯一的元素y
与之对应,那么就称对应的规则f
为从集合A到集合B的映射
一般这样表示:f:A → B
。其中,y
称为元素x
在映射f
下的 像
,记作:y=f(x)
。
通俗讲:
把使集合A的元素与集合B的元素相对应的规则
叫做 “集合A到集合B的映射”
如果从A集合中取元素x
,通过f
得到其对应B集合的元素y
。这个新的元素就叫做:“x通过映射f形成的像
”
像
这个说的还是有点抽象,举个简单的例子:
高中的时候经常做这样的练习:f(x)=2x+1
用映射来解释就是:“映射 f
是使集合B的元素 2x+1
与集合A的元素 x
相对应的规则”
再解释像就简单了:f(2)
x=2
通过 f
形成的像是 2*2+1
我们把映像f
产生的值组成一个集合{f(0)、f(1)、f(2)...}
,这个集合就叫做“映像f
的值域”。
而x
值组成的集合 {0、1、2...}
就叫做“映像f
的定义域”。
这个值域的集合往往是集合B的子集:{f(x1),f(x2)...f(xn)}⊆B{f(x1),f(x2)...f(xn)}⊆B
比如说:f(x)=2x+1
定义域A{0、1、2、3},那么求出来的值域是:{1、3、5、7},而B集合是{1、3、5、7、8}
满射:如果值域任何元素都有至少有一个变量与之对应,那这个映射就叫做满射。
来个示意图:f(x)=x22
其实老版本的教科书还有一种说法叫做:”当映射f的值域等于集合B时,f为满射
“
单射:设f是由集合A到集合B的映射,如果所有x,y∈A,且x≠y,都有f(x)≠f(y),则称f为由A到B的单射
(函数f被称为是单射时,对每一值域内的y,存在至多一个定义域内的x使得f(x) = y)
来个图示:(两种情况都是)
双射 (一一映射):既是单射又是满射的映射称为双射
图示:(偷个懒,拿上面的图片改改)
这次先不定义,先看个图:
看完图基本上懂了(映射g
就是映射f
的逆映射),现在来定义一下:
逆映射 :
当f是双射(一一对应的单射)并且映射f
和映射g
满足:
那么映射g
就是映射f
的逆映射,表示方式:f−1:B→Af−1:B→A
后面说线性回归之类的代码和数学知识时会讲,这边因为也是属于映射内容,所以简单提一下定义:
假设 x1x1 和 x2x2 是属于A集合中的任意元素,c
为任意实数,f
为从A到B的映射。
当映射f
满足以下两个条件:
那么映射f
就是从A到B的线性映射
举个例子:f(x)=x
验证一下:是线性映射
f(x1)+f(x2)=x1+x2=f(x1+x2)f(x1)+f(x2)=x1+x2=f(x1+x2)
cf(x1)=cx1=f(cx1)cf(x1)=cx1=f(cx1)
再测试一个不是的:f(x)=x+1
验证一下:
f(x1)+f(x2)=x1+x2+2f(x1)+f(x2)=x1+x2+2
f(x1+x2)=x1+x2+1f(x1+x2)=x1+x2+1
f(x1)+f(x2)≠f(x1+x2)f(x1)+f(x2)≠f(x1+x2)
后面都不用验证了,不是线性映射
这个应该是高二的时候学的,简单提一下
排列组合 :
通俗讲:
组合个数:“从n
个中挑出r
个的个数” 一般用 CrnCnr 来表示(n>=r)
Crn=n!r!(n−r)!Cnr=n!r!(n−r)!
排列个数:“从n
个中挑出r
个的个数,然后再把选好的r个事物按照顺序排列的种数” 一般用 ArnAnr 来表示(n>=r)
Arn=r!Crn=n!(n−r)!Anr=r!Cnr=n!(n−r)!
如果还抽象的话,我们来看个案例:
小明请小潘和小张一起去食堂吃饭,食堂今天总共有5个菜
1.试问,他们从5个菜中选出3个不同的菜,有几种可能性?
假设有A、B、C、D、E这5个菜,那选出3个有如下组合(不管顺序):
列举 | 列举 | 列举 | 列举 | 列举 | 列举 |
---|---|---|---|---|---|
ABC | ABD | ABE | ACD | ACE | ADE |
BCD | BCE | BDE | |||
CDE |
C35=5!3!(5−3)!=5×4×3×2×13×2×1×2×1=10C53=5!3!(5−3)!=5×4×3×2×13×2×1×2×1=10
2.试问,选出的这3个菜有几种排放顺序?
假设选出的是A、B、C这3个菜,那它的排序有几种可能:
序号 | 列举 | 列举 |
---|---|---|
A | ABC | ACB |
B | BAC | BCA |
C | CAB | CBA |
其实无论选择哪3种,他们的排序都是6种,3!=3×2×1=6
简单分析一下:
第一道菜可以在已经选好的菜里面选1个,那就是3种可能
第二道菜可以在剩下的2道菜中选1个,那就是2种可能(第一道刚才选好了,已经算确定的了)
第三道菜不用选了,因为现在只剩下1道了,那就是1种可能
所以有 3×2×1种可能==>3!=6种可能
3.试问,从5个菜中选出3个不同的菜,并按顺序打包带走总共有多少种可能?
排列的个数其实就是:5选3组合个数 × 3道菜可能的排序
= 10 × 6 =60
A35=5!(5−3)!=5×4×3×2×12×1=60A53=5!(5−3)!=5×4×3×2×12×1=60
简单分析推导一下:
第一个菜可以在5道菜里面选一个,那就是5种可能
第二道菜可以在剩下的4道菜里面选一个,那就是4种可能
第三道菜可以在剩下的3道菜里面选一个,那就是3种可能
那总共可能性就是:5×4×3=60种可能性,和上面公式计算一样结果
排列、组合、二项式定理公式口诀:
加法乘法两原理,贯穿始终的法则。与序无关是组合,要求有序是排列。
两个公式两性质,两种思想和方法。归纳出排列组合,应用问题须转化。
排列组合在一起,先选后排是常理。特殊元素和位置,首先注意多考虑。
不重不漏多思考,捆绑插空是技巧。排列组合恒等式,定义证明建模试。
关于二项式定理,中国杨辉三角形。两条性质两公式,函数赋值变换式。
以前在网上找的资料,你们有更好的可以贴一下(点我查看)
以前在网上找的资料,你们有更好的可以贴一下(点我查看)
下次和Numpy一起讲,这样才会~数学不枯燥,代码不空洞
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。