├── .gitignore ├── Readme.org ├── bibliography.tex ├── book.bib ├── build-pic.sh ├── clear-pic.sh ├── cmd-env.tex ├── content ├── algebra │ ├── algebra-base.tex │ ├── algebra.tex │ ├── exercise.tex │ ├── exp-ln-level.tex │ ├── function-equation.tex │ ├── function-general.tex │ ├── inequation.tex │ ├── linear-equations-system.tex │ ├── number-sequence.tex │ ├── pic │ │ └── definition-of-convexity-function.asy │ ├── polynome.tex │ ├── solve-equation.tex │ ├── the-convexity-of-function.tex │ └── triangle-function.tex ├── analytic-geometry │ ├── analytic-geometry.tex │ ├── oval-pole-line.tex │ ├── oval-preliminary-discussion.tex │ ├── oval-two-definition.tex │ ├── para-curve.tex │ └── pic │ │ ├── ellipse-bounded-by-circle.asy │ │ ├── ellipse-focus-triangle-incenter-orbit.asy │ │ ├── focal-radius-of-ellipse.asy │ │ ├── oval-chord-located-in-oval.asy │ │ ├── oval-focus-triangle-external-bisector.asy │ │ ├── oval-focus-triangle-non-external-bisector.asy │ │ ├── oval-optical-property.asy │ │ ├── oval-pole-and-polor-line.asy │ │ ├── oval-ray-from-center-split.asy │ │ ├── oval-tangent-line.asy │ │ ├── oval-tangent-two-perpendicular-line.asy │ │ ├── oval-two-focus-radius-intersectionpoint.asy │ │ ├── parabola-focus-chord-three-line-intersection.asy │ │ ├── pt-inside-triangle-distance-sum.asy │ │ └── two-definition-of-ellipse.asy ├── combination │ ├── combination.tex │ ├── derangement-problem.tex │ ├── exercises.tex │ └── solve-number-of-equation.tex ├── number-theory │ ├── congruences.tex │ ├── indefinite-equation.tex │ ├── integer-division.tex │ └── number-theory.tex ├── plane-geometry │ ├── circle.tex │ ├── conic-section.tex │ ├── curve-and-equation.tex │ ├── exercises.tex │ ├── oval-preliminary-discussion.tex │ ├── para-curve.tex │ ├── pic │ │ ├── 2016-06-24-1.asy │ │ ├── 2017-02-09-01-01.png │ │ ├── 2017-02-09-01-02.asy │ │ ├── apollonius-circle.asy │ │ ├── barycentric-of-triangle-vector.asy │ │ ├── bezier-curve-contaied-by-median-trapezoid.asy │ │ ├── bezier-curve-two-control-pt.asy │ │ ├── bezier-curve.asy │ │ ├── centroid-of-triangle.asy │ │ ├── ceva-circle.asy │ │ ├── ceva-theorem-extends.asy │ │ ├── cevian-theorem.asy │ │ ├── cevian-theorem2.asy │ │ ├── cevian-theorem3.asy │ │ ├── cosin-of-three-side-angle.asy │ │ ├── definite-proportion-inequality.asy │ │ ├── distance-on-ball-accord-longitude-latitude.asy │ │ ├── ec-2017-02-09-01.asy │ │ ├── ellipse-bounded-by-circle.asy │ │ ├── ellipse-focus-triangle-incenter-orbit.asy │ │ ├── euler-circumcenter-orthocenter-barycenter-line.asy │ │ ├── example-for-cevian-ade-equal-adf.asy │ │ ├── example-for-cevian-ap-perp-bc.asy │ │ ├── exercise-ahk-coline.asy │ │ ├── exercise-pi-perp-mn.asy │ │ ├── external-common-tangent-for-3-circle.asy │ │ ├── focal-radius-of-ellipse.asy │ │ ├── internal-common-tangent-for-3-circle.asy │ │ ├── menelaus-theorem-extends.asy │ │ ├── menelaus-theorem-proof.asy │ │ ├── menelaus-theorem-proof2.asy │ │ ├── menelaus-theorem.asy │ │ ├── menelaus-theorem2.asy │ │ ├── oval-chord-located-in-oval.asy │ │ ├── oval-focus-triangle-external-bisector.asy │ │ ├── oval-focus-triangle-non-external-bisector.asy │ │ ├── oval-optical-property.asy │ │ ├── oval-pole-and-polor-line.asy │ │ ├── oval-ray-from-center-split.asy │ │ ├── oval-tangent-line.asy │ │ ├── oval-tangent-two-perpendicular-line.asy │ │ ├── oval-two-focus-radius-intersectionpoint.asy │ │ ├── parabola-focus-chord-three-line-intersection.asy │ │ ├── property-circumcenter-orthocenter-oh-equal-2od-proof.asy │ │ ├── property-circumcenter-orthocenter-oh-equal-2od.asy │ │ ├── pt-inside-triangle-distance-sum.asy │ │ ├── spread-angle-theorem.asy │ │ ├── stewart-theorem.asy │ │ ├── triangle-angle-bisector-theorem-proof.asy │ │ ├── triangle-angle-bisector-theorem.asy │ │ ├── triangle-distance-of-incenter-circumcenter.asy │ │ ├── triangle-incenter-ki-kb-kc-equal.asy │ │ ├── two-definition-of-ellipse.asy │ │ ├── vector-definition-proportion.asy │ │ └── vector-inner-product-distribution-law.asy │ ├── plane-geometry.tex │ ├── some-important-theorem.tex │ ├── triangle-base-discussion.tex │ ├── trihedral-angle.tex │ └── vector.tex ├── prepare │ ├── codinatie-axias-rotation.tex │ ├── determinant.tex │ ├── inclusion-exclusion-priciple.tex │ ├── irrational-power.tex │ ├── mathematical-induction.tex │ ├── pic │ │ └── inclusion-exclusion-principle.asy │ ├── polynomial-theorem.tex │ ├── prepare.tex │ ├── some-instruction.tex │ └── some-principle.tex └── solid-geometry │ ├── pic │ └── cosin-of-three-side-angle.asy │ ├── solid-geometry.tex │ └── trihedral-angle.tex ├── cover.tex ├── elementary-math-note.tex ├── makefile ├── preface.tex ├── tableofcontents.tex └── use-packages.tex /.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | *.pdf 3 | !elementary-math-note.pdf 4 | *.swp 5 | *.log 6 | *.aux 7 | *.maf 8 | *.mtc 9 | *.mtc* 10 | *.toc 11 | *.out 12 | *.dvi 13 | *.eps 14 | *~ 15 | *#*# 16 | _*_.* 17 | auto/* 18 | -------------------------------------------------------------------------------- /Readme.org: -------------------------------------------------------------------------------- 1 | #+TITLE: 初等数学学习笔记 2 | 3 | 这个文档工程是我学习初等数学的笔记,全文使用 =LaTeX= 进行排版, =PDF= 文档可前往 [[https://gitee.com/zhcosin/math-notes-publish/blob/master/elementary-math-note.pdf]] 下载,并且会在这个页面不定期更新(落后于本工程中的源文件更新)。 4 | 5 | 这份笔记包含了代数、几何、数论等方面内容,并按章节划分为初等数论、函数与方程、数列、不等式、组合与概率、平面几何、解析几何、立体几何等,笔记中所使用的材料绝大部分来自于参考文献中所列出的那些书籍,它们也是我最近几年所读过的书籍(没有哪一本是读完过的)。 6 | 7 | 写作这份笔记的初衷,是因为毕业时没有选择数学教育行业,在日复一日的工作循环持续了几年后,突然自己的数学水平基本上没有任何进步,由此决定以写作笔记为契机,让自己能够常有所思,常有所得,不求短期的悬梁刺股立竿见影,但求数学知识能随时间的增长而积累,以在今后,不会因低下的数学水平而自我懊恼,留下遗憾。 8 | 9 | 曾经为是否公开这份笔记的源码而纠结了几个月的时间,现在再次决定公开它,计较太多实在没啥益处,但愿这是我最后一次就这个问题做决定。 10 | 11 | 笔记中的图片都是用 =Asymptote= 绘制的,编译之前需要先使用 =texlive= 自带的 =Asymptote= 程序将源文件(=*.asy=)转换为pdf文件,我只写了一个 =linux= 脚本 =build-pic.sh= ,没有提供相应的 =windows= 批处理脚本,这是因为我实在没搞定如何使用 =windows= 的脚本来递归的将目录下的 =asy= 文件调用 =Asymptote= 转换成 =pdf= 文件,虽然我笔记主要是在 =windows= 下写成的,但因为我每绘制一张图都会将它生成 =pdf= 文件,所以我这并不存在这个问题,如果有谁愿意帮我写一个 =windows= 脚本来完成这件工作,我非常感激,说明一下,利用 =Asymptote= 将 =*.asy= 源文件生成 =pdf= 的命令是 =asy -f pdf xxx.asy= 。 12 | -------------------------------------------------------------------------------- /bibliography.tex: -------------------------------------------------------------------------------- 1 | 2 | \begin{thebibliography}{99} 3 | \bibitem{caculus-course} [前苏联]菲赫金哥尔茨. 微积分学教程. 高等教育出版社, 2006. 4 | \bibitem{olympic-math} 钱展望,朱华伟. 奥林匹克数学. 湖北教育出版社, 2002. 5 | \bibitem{contest-math-course} 陈传理,张同君. 竞赛数学教程. 高等教育出版社, 2002. 6 | \bibitem{advanced-algebra} 北京大学数学系几何与代数教研室前代数小组. 高等代数. 高等教育出版社, 2004. 7 | \bibitem{math-analysis} 华东师范大学数学系, 数学分析. 高等教育出版社, 2004. 8 | \bibitem{elementary-number-theory} 闵嗣鹤,严士健. 初等数论. 高等教育出版社, 1983. 1983. 9 | \bibitem{kuing-problem-elementary-math-note} kuing. kuing网络撸题集. 网络电子书, 2015. 10 | \bibitem{the-secret-of-inequality} [越南]范建熊(著),隋振林(译). 不等式的秘密(第一卷). 哈尔滨工业大学出版社, 2012. 11 | \bibitem{conic-sections} [古希腊]阿波罗尼奥斯. 圆锥曲线论. 陕西科学技术出版社, 2007. 12 | \bibitem{geometry-treasure} 沈文选,杨清桃. 几何瑰宝. 哈尔滨工业大学出版社, 2010. 13 | \end{thebibliography} 14 | 15 | 16 | \addcontentsline{toc}{chapter}{参考文献} 17 | 18 | %%% Local Variables: 19 | %%% mode: latex 20 | %%% TeX-master: "elementary-math-note" 21 | %%% End: 22 | -------------------------------------------------------------------------------- /book.bib: -------------------------------------------------------------------------------- 1 | 2 | @BOOK{olympic-math, 3 | TITLE={奥林匹克数学}, 4 | AUTHOR={钱展望 and 朱华伟}, 5 | PUBLISHER={湖北教育出版社}, 6 | YEAR={2002} 7 | } 8 | 9 | @BOOK{contest-math-course, 10 | TITLE={竞赛数学教程}, 11 | AUTHOR={陈传理 and 张同君}, 12 | PUBLISHER={高等教育出版社}, 13 | YEAR={2002} 14 | } 15 | 16 | @BOOK{calculus-course, 17 | TITLE={微积分学教程}, 18 | AUTHOR={菲赫金哥尔茨}, 19 | PUBLISHER={高等教育出版社}, 20 | YEAR={2006} 21 | } 22 | 23 | @BOOK{higher-algebra, 24 | TITLE={高等代数}, 25 | AUTHOR={北京大学数学系几何与代数教研室前代数小组}, 26 | PUBLISHER={高等教育出版社}, 27 | YEAR={2004} 28 | } 29 | 30 | @BOOK{mathematical-analysis, 31 | TITLE={数学分析}, 32 | AUTHOR={华东师范大学数学系}, 33 | PUBLISHER={高等教育出版社}, 34 | YEAR={2004} 35 | } 36 | 37 | @BOOK{elementary-number-theory, 38 | TITLE={初等数论}, 39 | AUTHOR={闵嗣鹤 and 严士健}, 40 | PUBLISHER={人民教育出版社}, 41 | YEAR={1983} 42 | } 43 | 44 | @BOOK{kuing-problem-book, 45 | TITLE={kuing网络撸题集}, 46 | AUTHOR={kuing}, 47 | PUBLISHER={未出版}, 48 | YEAR=2015 49 | } 50 | -------------------------------------------------------------------------------- /build-pic.sh: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/bash 3 | 4 | function scandir() { 5 | local cur_dir parent_dir workdir 6 | workdir=$1 7 | cd ${workdir} 8 | if [ ${workdir} = "/" ] 9 | then 10 | cur_dir="" 11 | else 12 | cur_dir=$(pwd) 13 | fi 14 | 15 | for dirlist in $(ls ${cur_dir}) 16 | do 17 | if test -d ${dirlist};then 18 | echo "enter directory: "${dirlist} 19 | cd ${dirlist} 20 | scandir ${cur_dir}/${dirlist} $2 21 | cd .. 22 | else 23 | #做自己的工作 24 | local filename=$dirlist 25 | #echo "当前文件是:"${cur_dir}/$filename 26 | #echo ${#2} #.zip 4 27 | #echo ${filename:(-${#2})} 28 | 29 | if [[ ${filename:(-${#2})} = $2 ]] 30 | then 31 | echo "process file: "${cur_dir}/$filename 32 | asy -f pdf $filename 33 | fi 34 | fi 35 | done 36 | } 37 | 38 | scandir $(pwd) "asy" 39 | -------------------------------------------------------------------------------- /clear-pic.sh: -------------------------------------------------------------------------------- 1 | 2 | find -name "*.pdf" -exec rm -f {} \; 3 | -------------------------------------------------------------------------------- /cmd-env.tex: -------------------------------------------------------------------------------- 1 | 2 | %修改 proof 证明环境 3 | \makeatletter 4 | \renewcommand\proofname{证明} 5 | \renewenvironment{proof}[1][\proofname]{\par 6 | \pushQED{\qed}% 7 | \normalfont \topsep6\p@\@plus6\p@ \labelsep1em\relax 8 | \trivlist 9 | \item[\hskip\labelsep\indent 10 | \bfseries #1]\ignorespaces 11 | }{% 12 | \popQED\endtrivlist\@endpefalse 13 | } 14 | \makeatother 15 | 16 | % 例题环境 17 | \newcounter{example}[section] 18 | \renewcommand{\theexample}{\thesection.\arabic{example}} 19 | 20 | \newenvironment{example}[1][]{\refstepcounter{example} \textbf{例 \theexample \ #1} \hspace{0.5em}}{\hspace{\stretch{1}} \rule{1ex}{1ex}} 21 | 22 | % 习题环境 23 | \newcounter{exercise}[section] 24 | \renewcommand{\theexercise}{\thesection.\arabic{exercise}} 25 | 26 | \newenvironment{exercise}[1][]{\refstepcounter{exercise} \textbf{题 \theexercise \ #1} \hspace{0.5em}}{\hspace{\stretch{1}} \rule{1ex}{1ex}} 27 | 28 | \newcommand{\exerciseFrom}[1][]{\textbf{题目出处}\hspace{1em}#1} 29 | \newcommand{\exerciseSolvedDate}[1][]{\textbf{解答日期}\hspace{1em}#1} 30 | \newenvironment{exerciseAdditional}{\textbf{补充说明}\hspace{1em}}{} 31 | 32 | 33 | \newtheorem{definition}{定义}[section] 34 | \newtheorem{property}{性质}[section] 35 | \newtheorem{theorem}{定理}[section] 36 | \newtheorem{inference}{推论}[section] 37 | \newtheorem{axiom}{公理}[section] 38 | \newtheorem{lemma}{引理}[section] 39 | \newtheorem{principle}{原理}[section] 40 | %\newtheorem{exercise}{题目}[section] 41 | \newtheorem{topic}{问题}[section] 42 | \newtheorem{statement}{命题}[section] 43 | % \newtheorem{example}{例}[section] 44 | 45 | % 使公式编号与章节关联,命令由 amsmath 宏包提供 46 | \numberwithin{equation}{section} 47 | 48 | % 配合 \autoref 命令使引用不只引用编号,也能引用环境命名,如: 定理 3.2.5,来自 hyperref 宏包。 49 | %\newcommand\equationautorefname{式} 50 | %\newcommand\footnoteautorefname{脚注}% 51 | %\newcommand\itemautorefname{项} 52 | \def\figureautorefname{图} 53 | \def\tableautorefname{表} 54 | \def\chapterautorefname{章} 55 | \def\sectionautorefname{节} 56 | \def\subsectionautorefname{小节} 57 | \def\appendixautorefname{附录} 58 | \def\propertyautorefname{性质} 59 | \def\theoremautorefname{定理} 60 | \def\definitionautorefname{定义} 61 | \def\inferenceautorefname{推论} 62 | \def\axiomautorefname{公理} 63 | \def\lemmaautorefname{引理} 64 | \def\principleautorefname{原理} 65 | \def\exerciseautorefname{题目} 66 | \def\topicautorefname{问题} 67 | \def\statementautorefname{命题} 68 | \def\exampleautorefname{例} 69 | \def\equationautorefname{式} 70 | 71 | \newcommand{\pair}[2]{\langle #1, #2 \rangle} 72 | 73 | %%% Local Variables: 74 | %%% mode: latex 75 | %%% TeX-master: "elementary-math-note" 76 | %%% End: 77 | -------------------------------------------------------------------------------- /content/algebra/algebra-base.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{代数学基础} 3 | \label{sec:algebra-base} 4 | 5 | \subsection{集合} 6 | \label{sec:set} 7 | 8 | 集合是数学中不加定义的一个基本概念,一些确定的对象构成的整体即称为集合,构成集合的个体称为集合的元素,不包含任何元素的集合称为空集,记作$\emptyset$。 9 | 10 | 例如,平面上的所有直线构成一个集合,三维空间中的所有点构成一个集合。 11 | 12 | 所有的整数构成整数集$\mathbb{Z}$,全体有理数构成有理数集$\mathbb{Q}$,全体实数构成实数集$\mathbb{R}$,全体复数构成复数集$\mathbb{C}$. 13 | 14 | 如果集合中的全体元素都满足某个条件,并且满足此条件的元素都属于这集合,那么通常就用这条件来刻画这个集合,例如$A=\{ x | x \in \mathbb{Z}, x>0 \}$就表示正整数集合. 15 | 16 | 如果元素$x$是集合$A$中的元素,称为$x$属于集合$A$,记作$x \in A$,否则称$x$不属于集合$A$,记作$x \not in A$. 17 | 18 | 集合中的元素是不区分顺序的,如果两个集合$A$与$B$中的元素个数相同且对应相等,那么这两个集合称为相等,用符合语言就是: 19 | \[ A = B \Leftrightarrow (x \in A \Rightarrow x \in B) \wedge (x \in B \Rightarrow x \in A) \] 20 | 上式中上尖括号$\wedge$表示逻辑上的与。 21 | 规定所有的空集都是相等的。 22 | 23 | 相等是集合间的一种关系,除此之外,还有包含与被包含关系: 24 | \begin{definition} 25 | 如果一个集合$B$中的任何元素都是集合$A$中的元素,则称$B$是$A$的\emph{子集},记作$B \subset B$,或者称$A$包含$B$并记作$A \supset B$,这两个称呼与符号是等价的.规定空集是任何集合(包括空集本身)的子集. 26 | \end{definition} 27 | 28 | 显然, 相等是包含关系的特例,并且$A=B \Leftrightarrow (A \subset B) \wedge (B \subset A)$. 29 | 30 | 如果$A$是$B$的子集且两者并不相等,则称$A$是$B$的\emph{真子集},显然,$A$是$B$的真子集的充分必要条件是,$A$是$B$的子集且$B$中至少包含一个不属于$A$的元素. 31 | 32 | 集合与集合之间可以进行一些运算,例如交、并、差等。 33 | \begin{definition} 34 | 设$A$与$B$是两个集合,由所有同时属于两者的元素所组成的集合称为它们的\emph{交集},记作$A \cap B$,即$A \cap B = \{ x | (x \in A) \wedge (x \in B) \}$. 35 | \end{definition} 36 | 37 | \begin{definition} 38 | 设$A$与$B$是两个集合,由所有属于$A$或者属于$B$的元素所组成的集合称为它们的\emph{并集},记作$A \cup B$,即$A \cup B = \{x | (x \in A) \lor (x \in B) \}$. 39 | \end{definition} 40 | 41 | 交集与并集的混合运算满足德摩根律. 42 | \begin{theorem} 43 | 设$A$、$B$、$C$是三个集合,则 44 | \begin{align*} 45 | A \cap (B \cup C) & = (A \cap B) \cup (A \cap C) \\ 46 | A \cup (B \cap C) & = (A \cup B) \cap (A \cup C) 47 | \end{align*} 48 | \end{theorem} 49 | 50 | \begin{definition} 51 | 设$A$与$B$是两个集合,由所有属于$A$但是不属于$B$的元素所组成集合称为$A$与$B$的\emph{差集},记作$A-B$,即$A-B = \{x | (x in A) \land (x \notin B) \}$. 52 | \end{definition} 53 | 54 | 显然: $A-B = A - (A \cap B)$. 55 | 56 | 下面介绍集合间的一种重要的运算:笛卡尔积. 57 | \begin{definition} 58 | 设$A$、$B$是两个集合,则序偶$\pair{a}{b}$的集合$\{ \pair{a}{b} | a \in A, b \in B \}$称为$A$与$B$的\emph{笛卡尔积},记作$A \times B$. 59 | \end{definition} 60 | 61 | 注意,笛卡尔的元素是序偶,该序偶的第一个元素来自于集合$A$,而第二个元素来自于集合$B$. 62 | 63 | 显然,$A \times B$与$B \times A$是两个不同的集合,将实数集$\mathbb{R}$与自身作笛卡尔积,则得到平面上的坐标集合。 64 | 65 | \subsection{映射与变换} 66 | \label{sec:map-and-translation} 67 | 68 | \begin{definition} 69 | 设$A$、$B$是两个非空集合,集合$C$是$A$与$B$的笛卡尔积$A \times B$的一个子集,如果集合$C$满足: 70 | \begin{enumerate} 71 | \item $\forall a \in A, \exists b \in B \Rightarrow \pair{a}{b} \in C$. 72 | \item $ \pair{a}{b_1} \in C, \pair{a}{b_2} \in C \Rightarrow b_1=b_2$. 73 | \end{enumerate} 74 | 则称集合$C$是$A$到$B$的一个\emph{映射},记作$f:A \mapsto B$. 75 | \end{definition} 76 | 77 | 用通俗的语言说,从$A$到$B$的映射是一个对应关系,它使得$A$中任何元素(称为原象)都能对应到$B$中的某一个元素(称为象),并且不存在一对多的现象,但是多对一是允许的,并且$B$中可以有一些没有原象的元素。 78 | 79 | 定义中是映射的严格的符号化定义,可以看出,映射实际上是笛卡尔积的一个满足特定条件的一个子集. 80 | 81 | 设$f: A \mapsto B$是从$A$到$B$的一个映射,而$a \in A$,$a$在$B$中的象是$b$,记作$b=f(a)$. 82 | 83 | 函数就是从数集到数集的映射。 84 | 85 | \begin{definition} 86 | 设$f$是从集合$A$到集合$B$的一个映射,如果$A$中不同元素在$B$中的象也不同,则称该映射是一个\emph{单射},即$\forall a_1,a_2 \in A,a_1 \neq a_2 \Rightarrow f(a_1) \neq f(a_2)$,而如果$B$中每一个元素,都能在$A$中找到它的原象,则称该映射是一个\emph{满射},即$\forall b \in B, \exists a \in A, b=f(a)$. 如果一个映射,既是单射又是满射,那么称其为\emph{双射}或者\emph{一一映射}. 87 | \end{definition} 88 | 89 | 显然,两个集合间能够建立起双射的充分必要条件是它们的元素个数相同。 90 | 91 | \begin{definition} 92 | 集合$A$到自身的映射称为集合$A$上的\emph{变换},如果这映射又是双射,则称为\emph{一一变换}. 93 | \end{definition} 94 | 95 | 有限集$\{a_1,a_2,\ldots,a_n\}$到自身的一个一一变换称为一个\emph{重排}. 96 | 97 | 映射是可以进行相乘的,假设有两个映射$f: A \mapsto B$与$g: B \mapsto C$,那么以$B$作为桥梁,我们建立起从$A$到$C$的一个映射,这就是映射的乘积: 98 | 99 | \begin{definition} 100 | 设$A$、$B$、$C$是三个非空集合,而$U$是从$A$到$B$的一个映射,$V$是从$B$到$C$的一个映射,那么,集合 101 | \[ W = \{ \pair{a}{c} | a \in A, c \in C, \exists b \in B \Rightarrow (\pair{a}{b} \in U) \land (\pair{b}{c} \in V) \} \] 102 | 是从$A$到$C$的一个映射$h$,称它是映射$f$与$g$的\emph{乘积},记作$h=gf$,即 103 | \[ h(a) = (gf)(a) = g(f(a)) \] 104 | \end{definition} 105 | 106 | 类似的,可以利用映射的乘积定义变换的乘积。 107 | 108 | 现在考虑映射的逆,设$f: A \mapsto B$是从$A$到$B$的一个映射,把这个映射反过来看,则从$B$到$A$的一个对应,我们看看这个对应在什么情况下可以构成一个映射。因为映射需要原象中每一个元素都要有象,因此映射$f$必然是满射才能保证它逆过来也满足这一点,又映射不允许一对多,所以映射$f$就不能是多对一,即是单射,所以只有映射$f$是双射时,它反过来才能构成映射,这就是逆映射,当然这个逆映射也是双射。 109 | \begin{definition} 110 | 设$f: A \mapsto B$是从$A$到$B$的一个映射,则如果它的反向对应也构成一个映射,则称这个反向映射$f^{-1}: B \mapsto A$是映射$f$的\emph{逆映射},记作$f^{-1}$。 111 | \end{definition} 112 | 根据前面的讨论,只有双射才有逆映射,并且$a=f^{-1}(b)$的充分必要条件是$b=f(a)$. 113 | 114 | \subsection{运算} 115 | \label{sec:operation} 116 | 117 | \begin{definition} 118 | 设$A$、$B$、$C$是三个非空集合,则由$A \times B$到$C$的一个映射,称为从$A$、$B$到$C$的一个\emph{二元运算},关于运算,通常讨论从$A \times A$到$B$的二元运算,即参与运算的两个元素来自同一个集合。 119 | \end{definition} 120 | 121 | \subsection{关系} 122 | \label{sec:relation} 123 | 124 | 集合的元素间,通常会有这样那样的关系,实数集之上,有大小关系,有相等关系等。这一小节就来讨论它。 125 | 126 | \begin{definition} 127 | 设$A$是一个非空集合,则它与自身的笛卡尔积$A\times A$的一个子集$R$称为$A$上的一个\emph{关系},任意$a,b \in A$,如果$\pair{a}{b} \in R$,则称$a$与$b$之间满足$R$关系,形式化的写作$aRb$,否则称$a$与$b$不满足$R$关系. 128 | \end{definition} 129 | 130 | 例如,实数间的相等关系,则是由$\mathbb{R} \times \mathbb{R}$的子集$\{\pair{x}{x} | x in \mathbb{R}\}$确定的。 131 | 132 | \begin{definition} 133 | 如果集合$A$上的一个关系$R$满足: 134 | \begin{enumerate} 135 | \item $\forall a in A, aRa$ (自反性) 136 | \item 如果$aRb$,则也有$bRa$ (对称性) 137 | \item 如果$aRb$且$bRc$,则必有$aRc$ (传递性) 138 | \end{enumerate} 139 | 则称关系$R$是一个\emph{等价关系}. 140 | \end{definition} 141 | 142 | \begin{definition} 143 | 如果集合$A$上的一个关系$R$满足: 144 | \begin{enumerate} 145 | \item 任意$a,b \in A,a\neq b$,$aRb$与$bRa$两个中必有一个成立. 146 | \item 如果$aRb$且$bRa$,则必有$a=b$. (反对称性) 147 | \item 如果$aRb$且$bRc$,则必有$aRc$ (传递性) 148 | \end{enumerate} 149 | 则称关系$R$是一个\emph{全序关系}. 150 | \end{definition} 151 | 全序关系意味着,集合中的任意两个元素间,都可以比较,或者$\pair{a}{b}$满足关系,或者$\pair{b}{a}$满足关系。 152 | 153 | \begin{definition} 154 | 如果集合$A$上的一个关系$R$满足: 155 | \begin{enumerate} 156 | \item $\forall a \in A, aRa$. (自反性) 157 | \item 如果$aRb$且$bRa$,则必有$a=b$. (反对称性) 158 | \item 如果$aRb$且$bRc$,则必有$aRc$ (传递性) 159 | \end{enumerate} 160 | 则称$R$是一个\emph{偏序关系}. 161 | \end{definition} 162 | 偏序关系,就不一定能在集合中的任意两个元素间进行比较了,例如正整数集上的整除关系。 163 | 164 | %%% Local Variables: 165 | %%% mode: latex 166 | %%% TeX-master: "../../elementary-math-note" 167 | %%% End: 168 | -------------------------------------------------------------------------------- /content/algebra/algebra.tex: -------------------------------------------------------------------------------- 1 | 2 | \chapter{函数、方程与不等式} 3 | \label{chap:elementary-algebra} 4 | 5 | \input{content/algebra/algebra-base} 6 | 7 | \input{content/algebra/function-general} 8 | 9 | \input{content/algebra/solve-equation} 10 | 11 | \input{content/algebra/polynome} 12 | 13 | %\input{content/algebra/function-equation} 14 | 15 | %\input{content/algebra/triangle-function} 16 | 17 | %\input{content/algebra/the-convexity-of-function} 18 | 19 | \input{content/algebra/number-sequence} 20 | %\input{content/algebra/exp-ln-level} 21 | \input{content/algebra/inequation} 22 | 23 | 24 | \input{content/algebra/exercise} 25 | 26 | \input{content/algebra/linear-equations-system} 27 | 28 | %%% Local Variables: 29 | %%% mode: latex 30 | %%% TeX-master: "../../elementary-math-note" 31 | %%% End: 32 | -------------------------------------------------------------------------------- /content/algebra/exercise.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{题集} 3 | \label{sec:number-sequence-exercise} 4 | 5 | %%% Local Variables: 6 | %%% mode: latex 7 | %%% TeX-master: "../../elementary-math-note" 8 | %%% End: 9 | 10 | -------------------------------------------------------------------------------- /content/algebra/exp-ln-level.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{关于指对函数与多项式函数的增长阶} 3 | \label{sec:exp-log-level} 4 | 5 | 最近人教数学官方QQ群接连抛出如下两道与指对函数与多项式函数的增长阶有关的题目, 6 | \begin{exercise} 7 | (辽G教师LiBy) 设$a>0$为实常数,讨论函数$f(x)=ax^2-e^x$的极值点个数. 8 | \end{exercise} 9 | 10 | \begin{exercise} 11 | (辽B爱好者1bk3) 已知$a>0$为实常数,函数$f(x)=\ln{x}$,$g(x)=ax-1$ \\ 12 | (1). 讨论函数$h(x)=f(x)-g(x)$的单调性. \\ 13 | (2). 若函数$f(x)$与$g(x)$有两个不同的交点$A(x_1,y_1)$和$B(x_2,y_2)$,其中$x_10$,证明存在实数$s>\ln{2a}$,使得$e^s>2as$成立. 19 | \end{topic} 20 | 21 | \begin{topic} 22 | \label{topic-log} 23 | 已知实数$a>0$, 证明存在实数$s>\frac{1}{a}$,使得$\ln{s}1$,则存在实数$T$,使得对于任意满足$x>T$的实数$x$均成立$a^x>x^m$,这里$m$是任何正整数. 30 | \end{statement} 31 | 这结论的意义就是:指数函数能够在充分远的区间$(T,+\infty)$上,大于任何多项式函数,只要$T$选择的足够大。 32 | 33 | \begin{statement} 34 | \label{statement-log} 35 | 设实数$a>0$,则存在实数$T$,使得对于任何满足$x>T$的实数$x$,均成立$\ln{x}1$,就能保证$a^{\frac{1}{m}}>1$,所以由$m=1$的情况便可证明$m>1$的情况。在$m=1$时,不等式简化成$a^x>x$。 42 | 43 | 因为$a>1$,命$a=1+\lambda(\lambda>0)$,对于自变量$x$为正整数的时候,利用二项式定理,我们有 44 | \[ a^n = (1+\lambda)^n=\sum_{k=0}^nC_n^k\lambda^k > C_n^2\lambda^2 =\frac{1}{2}n(n-1)\lambda^2 \] 45 | 所以只要$n>1+\frac{2}{\lambda^2}$,便能保证$a^n>n$成立. 46 | 47 | 根据前面所说,显然我们也已经证明了$m>1$时的限于正整数情形的结论: 存在实数$T$,使得对于任何满足$n>T$的正整数$n$,均有$a^n>n^m$成立,$m$是任何正整数. 48 | 49 | 现在来考虑自变量$x$的一般情形,设其整数部分为$n$,$x=n+\alpha(0\leqslant \alpha < 1)$,在刚才正整数的结论中取$m=2$,就有,存在实数$T$,使得对于任何满足$n>T$的正整数$n$都成立 50 | \[ a^x = a^{n+\alpha} = a^{\alpha}a^n \geqslant a^n > n^2 > n+1 > n+\alpha = x \] 51 | 于是命题得证. 52 | 53 | 接下来再看对数函数的结论: 54 | 因为$\ln{ax}T$的实数$x$都成立$e^{ax}>(ax)^2$,为了使其大于$ax$,只要再限制$x>\frac{1}{a}$就行,于是我们取一个新的$T'$,使其同时大于$T$和$\frac{1}{a}$就行了,于是命题得证. 55 | 56 | 现在来证明问题\ref{topic-log},只要在命题\ref{statement-log}中将$a$换成$\frac{a}{2}$便知存在实数$T$,使得不等式$\ln{x}<\frac{1}{2}ax$能在区间$(T,+\infty)$上恒成立,显然当$x>\frac{2}{a}$时有$\frac{1}{2}ax0$) 44 | \item $f(x)=\ln{x}$ 45 | \item $f(x)=\sin{x}, 0 \leqslant x \leqslant \pi$ 46 | \end{enumerate} 47 | \end{example} 48 | 49 | \begin{proof}[解] 50 | 因为对于整数$k(0 < k < n)$有$(a^n+b^n)-(a^{n-k}b^k+a^kb^{n-k})=(a^{n-k}-b^{n-k})(a^k-b^k)>0$,因此 51 | \begin{equation} 52 | \begin{split} 53 | \left( \frac{a+b}{2} \right)^n + \left( \frac{b+a}{2} \right)^n & = \frac{1}{2^n} \sum_{k=0}^nC_n^ka^{n-k}b^k + \frac{1}{2^n}\sum_{k=0}^nC_n^kb^{n-k}a^k \\ 54 | & = \frac{1}{2^n} \sum_{k=0}^n C_n^k \left( a^{n-k}b^k+a^kb^{n-k} \right) \\ 55 | & < \frac{1}{2^n} \sum_{k=0}^n C_n^k \left( a^n+b^n \right) \\ 56 | & = a^n+b^n 57 | \end{split} 58 | \end{equation} 59 | 所以$\frac{a^n+b^n}{2}>\left( \frac{a+b}{2} \right)^n$,函数$f(x)=x^n$在正实数区间上是下凸函数。 60 | 61 | 因为$\frac{a+b}{2}-\sqrt{ab}=\frac{1}{2}(\sqrt{a}-\sqrt{b})^2>0$,所以 $\ln{\frac{a+b}{2}}-\frac{\ln{a}+\ln{b}}{2}=\ln{\frac{a+b}{2}}-\ln{\sqrt{ab}}>0$,所以对数函数在正实数区间上是上凸函数。 62 | 63 | 因为$\frac{1}{2}(\sin{a}+\sin{b})=\sin{\frac{a+b}{2}}\cos{\frac{a-b}{2}} < \sin{\frac{a+b}{2}}$,所以正弦函数在区间$(0,\pi)$上是上凸函数。 64 | \end{proof} 65 | 66 | 利用数学归纳法,可以很容易的将定义中的两个数推广到任意个数的情形,这就是著名的\emph{琴生(Jensen)不等式}: 67 | \begin{theorem}[琴生(Jensen)不等式] 68 | \label{theorem:convexity-function-multile} 69 | 如果函数$f(x)$是区间$D$上的上凸函数,则对于此区间上的任意$n$个实数$x_i(i=1,2,\ldots,n)$,成立着不等式: 70 | \begin{equation} 71 | \label{eq:convexity-function-multile} 72 | f(\frac{1}{n}\sum_{i=1}^nx_i) \geqslant \frac{1}{n}\sum_{i=1}^nf(x_i) 73 | \end{equation} 74 | \end{theorem} 75 | 76 | \begin{proof}[证明] 77 | 事实上,与第一数学归纳法相比,倒推归纳法更容易证明本定理,读者不妨一试,本文仍使用第一数学归纳法。 78 | 79 | 由定义知$n=2$的情形成立。现在假定对$n$的情形成立,则对于$n+1$个数的情形,记$X_{n+1}=\frac{1}{n+1}\sum_{i=1}^{n+1}x_i$,则 80 | \begin{equation} 81 | \begin{split} 82 | f(X_{n+1}) & = f \left( \frac{x_1+x_2+\cdots+x_{n+1}}{n+1} \right) \\ 83 | & = f \left( \frac{(x_1+\cdots+x_n)+(x_{n+1}+(n-1)X_{n+1})}{2n} \right) \\ 84 | & = f \left( \frac{\frac{x_1+\cdots+x_n}{n} + \frac{x_{n+1}+(n-1)X_{n+1}}{n}}{2} \right) \\ 85 | & \geqslant \frac{f \left( \frac{x_1+\cdots+x_n}{n} \right) + f \left( \frac{x_{n+1}+(n-1)X_{n+1}}{n} \right)}{2} \\ 86 | & \geqslant \frac{\frac{f(x_1)+\cdots+f(x_n)}{n} + \frac{f(x_{n+1})+(n-1)f(X_{n+1})}{n}}{2} \\ 87 | \end{split} 88 | \end{equation} 89 | 化简即得定理结论。 90 | \end{proof} 91 | 92 | 琴生不等式是一个非常重要的不等式,它是一系列不等式的重要来源,例如把它应用到对数函数身上,就得出多元均值不等式: 93 | \begin{equation*} 94 | \frac{1}{n}\sum_{i=1}^nx_i \geqslant \sqrt[n]{\prod_{i=1}^nx_i} 95 | \end{equation*} 96 | 97 | 另一个例子,因为正弦函数在区间$(0,\pi)$上是上凸函数,所以对于一个三角形的三个内角,由琴生不等式就有: 98 | \begin{equation*} 99 | \sin{A}+\sin{B}+\sin{C} \leqslant 3\sin{\frac{A+B+C}{3}} = \frac{3\sqrt{3}}{2} 100 | \end{equation*} 101 | 102 | 最后我们来证明:圆的内接凸多边形中,以正多边形的面积为最大。只要记每一条边所对应的圆心角为$\theta_i(i=1,2,\ldots,n)$,凸多边形的面积 103 | \begin{align*} 104 | S &= \frac{1}{2}R^2 \sum_{i=1}^n \sin{\theta_i} \\ 105 | & \leqslant \frac{n}{2}R^2 \sin{\left(\frac{1}{n}\sum_{i=1}^n\theta_i\right)} \\ 106 | & = \frac{n}{2}R^2 \sin{\frac{2\pi}{n}} 107 | \end{align*} 108 | 而等号在$\theta_i=\frac{2\pi}{n}(i=1,2,\ldots,n)$时成立,即为正多边形。 109 | 110 | 从函数图象的几何意义上看,前面的定义仅仅刻画了区间中点处的函数值与区间两个端点函数值的关系,但从直觉上看,作为上凸函数,它在区间上任意一点的函数值,都大于连接函数曲线段(由区间所截得)两端点连线所代表的一次函数的函数值,换句话说,定义中的$\frac{1}{2}$应该可以推广到0与1之间的任意实数。但是下面的定理表明,仅仅由前面的定义,只能将这个$\frac{1}{2}$推广到0与1之间的有理数,而无理数的情形要依赖于函数的连续性才能得出。也正是由于这个原因,通常把下面定理中这个更强的不等式来作为上凸函数的定义。 111 | 112 | \begin{theorem} 113 | \label{theorem:convexity-function-with-weight} 114 | 如果函数$f(x)$是定义在区间$D$上的上凸函数,并且在此区间上连续,则对于区间上任意两个实数$a$、$b$,以及任意两个满足$\alpha + \beta = 1(\alpha \geqslant 0, \beta \geqslant 0)$的实数$\alpha$、$\beta$,都成立不等式\footnote{也有的书上是用这个定理来作为凸函数定义的。} 115 | \begin{equation} 116 | \label{eq:convexity-function-with-weight} 117 | f(\alpha a + \beta b) \geqslant \alpha f(a) + \beta f(b) 118 | \end{equation} 119 | \end{theorem} 120 | 121 | \begin{proof}[证明]\footnote{这个证明来自于参考文献\cite{the-secret-of-inequality}.} 122 | 先证明$\alpha$是有理数的情形($\beta$也就同时为有理数),对于满足$\alpha+\beta=1$的非负有理数$\alpha$和$\beta$,必定存在不同时为零的非负整数$m$和$n$,使得 123 | \begin{equation*} 124 | \alpha = \frac{m}{m+n}, \beta = \frac{n}{m+n} 125 | \end{equation*} 126 | 因此,在下面中将 $ma+nb$视为$m$个$a$与$n$个$b$分别相加之后求和,再利用琴生不等式,得到 127 | \begin{equation*} 128 | \begin{split} 129 | f(\alpha a + \beta b) & = f \left( \frac{ma+nb}{m+n} \right) \\ 130 | & \geqslant \frac{mf(a)+nf(b)}{m+n} \\ 131 | & = \alpha f(a) + \beta f(b) 132 | \end{split} 133 | \end{equation*} 134 | 因此有理数的情形得证。 135 | 136 | 对于$\alpha$为无理数的情形,存在有理数的序列$\alpha_n$和$\beta_n$,使得$\lim_{n\to\infty}\alpha_n=\alpha$和$\lim_{n\to\infty}\beta_n=\beta$,由 137 | \begin{equation*} 138 | f(\alpha_n a + \beta_n b) \geqslant \alpha_n f(a) + \beta_n f(b) 139 | \end{equation*} 140 | 不等式两端令$n\to\infty$,并利用函数$f$ 的连续性即得无理数时不等式仍成立。 141 | \end{proof} 142 | 143 | 现在来看一些例子,前面已经证明过对数函数在其定义域上是上凸函数,因此套用刚证明过的定理,就得到,对于任意正实数$a,b$以及满足$\alpha+\beta=1(\alpha>0,\beta>0)$的正实数$\alpha,\beta$,都成立不等式 144 | \begin{equation} 145 | \label{eq:binary-neq-for-mean-with-weight} 146 | \alpha a + \beta b \geqslant a^{\alpha}b^{\beta} 147 | \end{equation} 148 | 这称为加权均值不等式(二元),而通常情况下的均值不等式$\frac{a+b}{2}\geqslant \sqrt{ab}$,则不过是其中$\alpha=\beta=\frac{1}{2}$的特殊情况而已。 149 | 150 | 这里再为这个重要定理提供另外一个证明,它不使用琴生不等式,而是直接从定义出发,不过,篇幅稍长些。 151 | 152 | 先提出如下两个引理: 153 | \begin{lemma} 154 | \label{lemma:add-linear-fun-to-convexity-funtion} 155 | 区间上的凸函数,加上或者减去同一区间上的一次函数,不改变凸性。 156 | \end{lemma} 157 | 这个结论是明显的,因为对于一次函数,式\ref{eq:the-definition-of-convexity-function}中的等号总是成立的,因此在一个凸函数的式\ref{eq:the-definition-of-convexity-function}两端同时减去一次函数的该式两端,不等式仍然成立。 158 | 159 | \begin{lemma} 160 | \label{lemma:recombination-convexity-func-with-linear-fun} 161 | 如果函数$f(x)$是区间$I$上的上凸函数,$a$和$b$是区间$I$上两个不相等的固定实数,则函数$h(t)=f((1-t)a+tb)$是关于$t$的定义在区间$[0,1]$上的上凸函数。 162 | \end{lemma} 163 | \begin{proof}[证明] 164 | 记$g(t)=(1-t)a+tb$,则$h(t)=f(g(t))$,而$g(t)$作为一次函数,显然对于任意$t_1$和$t_2$成立着不等式: 165 | \[ g \left( \frac{t_1+t_2}{2} \right)=\frac{g(t_1)+g(t_2)}{2} \] 166 | 因此有 167 | \begin{align*} 168 | h \left( \frac{t_1+t_2}{2} \right) &= f \left( g\left( \frac{t_1+t_2}{2} \right) \right) \\ 169 | & = f \left( \frac{g(t_1)+g(t_2)}{2} \right) \\ 170 | & \geqslant \frac{f(g(t_1))+f(g(t_2))}{2} \\ 171 | & = \frac{h(t_1)+h(t_2)}{2} 172 | \end{align*} 173 | 即得证。 174 | \end{proof} 175 | 176 | 从这证明过程可以看出,实际上我们可以得到更为通用的关于复合函数凸性的结论: 177 | \begin{theorem} 178 | 若函数$g(x)$是区间$I$上的上凸函数,并且在该区间上的值域为$D$,而函数$f(t)$是区间$D$上的单调增加的上凸函数,则复合函数$h(x)=f(g(x))$是区间$I$上的上凸函数,其它条件组合也有类似的结论。 179 | \end{theorem} 180 | 它的证明仿照\autoref{lemma:recombination-convexity-func-with-linear-fun}即可,这里从略。 181 | 182 | 现在来证明\autoref{theorem:convexity-function-with-weight} 183 | \begin{proof}[证明] 184 | 将不等式左边减去右边的差记为$g(\alpha)$,则只要证明$g(\alpha) \geqslant 0$对于一切$0 \leqslant \alpha \leqslant 1$恒成立即可。 185 | 186 | 由于完整的证明需要用到高等数学中连续性的定义,所以这里仅就$\alpha$是有理数的情形进行证明(当然$\beta$也就同时为有理数,而且函数连续的条件也就用不上)。 187 | 188 | 现在我们证明:对于任意正整数$n$,不等式$g(\frac{i}{n}) \geqslant 0 (i=0,1,\ldots,n)$都成立。 189 | 190 | 首先$g(0)=g(1)=0$,并且利用上面两个引理可以得知$g(\alpha)$仍是一个关于$\alpha$的上凸函数 ,因此 191 | \begin{equation*} 192 | g(\frac{i}{n}) \geqslant \frac{1}{2} \left( g(\frac{i-1}{n}) + g(\frac{i+1}{n}) \right) 193 | \end{equation*} 194 | 也即是 195 | \begin{equation*} 196 | g(\frac{i+1}{n}) - g(\frac{i}{n}) \leqslant g(\frac{i}{n}) - g(\frac{i-1}{n}) 197 | \end{equation*} 198 | 令$\lambda_i = g(\frac{i+1}{n}) - g(\frac{i}{n})$,则有$\lambda_i \leqslant \lambda_{i-1}(i=1,2,\ldots,n-1)$,而 199 | \begin{equation*} 200 | 0 = g(1) - g(0) = \sum_{i=0}^{n-1} \left( g(\frac{i+1}{n}) - g(\frac{i}{n}) \right) 201 | \end{equation*} 202 | 即是$\sum_{i=0}^{n-1}\lambda_i=0$,因此存在正整数$k(00(i=1,2,\ldots,n),\sum_{i=1}^n\alpha_i=1$,成立着不等式: 224 | \begin{equation} 225 | \label{eq:poly-neq-for-mean-with-weight} 226 | \sum_{i=1}^n\alpha_i x_i \geqslant \prod_{i=1}^nx_i^{\alpha_i} 227 | \end{equation} 228 | 等号成立的条件是$x_i$全部都相等。它也可被视为均值不等式的推广。 229 | 230 | %%% Local Variables: 231 | %%% mode: latex 232 | %%% TeX-master: "../../elementary-math-note" 233 | %%% End: 234 | 235 | %%% Local Variables: 236 | %%% time-stamp-pattern: "4/\\footnote{created 2016-05-16, updated %:y-%02m-%02d}" 237 | %%% time-stamp-format: "%:y-%02m-%02d" 238 | %%% End: 239 | 240 | -------------------------------------------------------------------------------- /content/algebra/triangle-function.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{三角函数} 3 | \label{sec:triangle-function} 4 | 5 | \subsection{第一类切比雪夫多项式} 6 | \label{sec:first-chebyshev-polynome} 7 | 8 | 我们知道余弦的二倍角公式和三倍角公式 9 | \begin{eqnarray*} 10 | \cos{2\theta} & = & 2\cos^2{\theta}-1 \\ 11 | \cos{3\theta} & = & 4\cos^3{\theta}-3\cos{\theta} 12 | \end{eqnarray*} 13 | 于是$\cos{3\theta}$和$\cos{4\theta}$分别表成了$\cos{\theta}$的二次多项式和三次多项式,那么对于一般形式的$\cos{n\theta}$,情况又如何呢? 14 | 15 | 由和差化积公式可得 16 | \[ \cos{(n+1)\theta}+\cos{(n-1)\theta}=2\cos{n\theta}\cos{\theta} \] 17 | 所以 18 | \[ \cos{(n+1)\theta}=2\cos{n\theta}\cos{\theta}-\cos{(n-1)\theta} \] 19 | 假如$\cos{n\theta}$和$\cos{(n-1)\theta}$分别是$\cos{\theta}$的$n$次多项式和$n-1$次多项式,那么$\cos{(n+1)\theta}$显然也是$\cos{\theta}$的一个次数不超过$n+1$的多项式,而易见最高次系数$a_n$满足递归关系$a_{n+1}=2a_n$,而$a_2=2,a_3=4$,所以$a_n=2^{n-1}$,最高次项系数恒正,从而$\cos{(n+1)\theta}$表成了$\cos{\theta}$的$n+1$次多项式。这结果就是如下的定理: 20 | 21 | \begin{theorem} 22 | 对于任意正整数$n$,$\cos{n\theta}$可表为$\cos{\theta}$的$n$次多项式,这多项式的最高次项系数是$2^{n-1}$,这多项式称为\emph{第一类切比雪夫(Chebyshev)多项式}。 23 | \end{theorem} 24 | 25 | 第一类切比雪零头多项式以$T_n(x)$标记,按定义有$\cos{n\theta}=T_n(\cos{\theta})$。 26 | 27 | 容易得$T_0(x)=1,T_1(x)=x$并有如下递推式 28 | \begin{equation} 29 | \label{eq:first-chebyshev-polynome-recursion} 30 | T_{n+1}(x)=2xT_n(x)-T_{n-1}(x) 31 | \end{equation} 32 | 当然也可以用这个递归式来定义第一类切比雪夫多项式,只是少了三角函数的背景,成了为了定义而定义了。 33 | 34 | 前几个多项式是如下的表: 35 | \begin{eqnarray*} 36 | T_0(x) & = & 1 \\ 37 | T_1(x) & = & x \\ 38 | T_2(x) & = & 2x^2-1 \\ 39 | T_3(x) & = & 4x^3-3x \\ 40 | T_4(x) & = & 8x^4-4x^2+1 \\ 41 | T_5(x) & = & 16x^5-20x^3+5x \\ 42 | T_6(x) & = & 32x^6-48x^4+18x^2-1 43 | \end{eqnarray*} 44 | 45 | 在讨论这些多项式的性质之前,我们再从另外一个角度来引导出第一类切比雪夫多项式。由复数的乘幂公式,复数$z=r(\cos{\theta}+i\sin{\theta})$的乘方是 46 | \begin{equation*} 47 | z^n=[r(\cos{\theta}+i\sin{\theta})]^n = r^n(\cos{n\theta}+i\sin{n\theta}) 48 | \end{equation*} 49 | 在上式中将$\theta$换成$-\theta$得 50 | \begin{equation*} 51 | [r(\cos{\theta}-i\sin{\theta})]^n = r^n(\cos{n\theta}-i\sin{n\theta}) 52 | \end{equation*} 53 | 两式相加,并按二项式定理将左边展开,所有求和指标为奇数的项都被消去,得 54 | \begin{eqnarray*} 55 | \cos{n\theta} & = & \sum_{0 \leqslant i \leqslant n/2}C_n^{2i}(-1)^i\cos^{n-2i}{\theta}\sin^{2i}{\theta} \\ 56 | & = & \sum_{0 \leqslant i \leqslant n/2}C_n^{2i}(-1)^i\cos^{n-2i}{\theta}(1-\cos^2{\theta})^i \\ 57 | \end{eqnarray*} 58 | 上式中右边每一项都是$\cos{\theta}$的$n$次多项式,所有最高次项的系数和是$C_n^0+C_n^2+C_n^4+\cdots$,这是对上标为偶数的二次项系数求和,由组合数性质,这个和是$2^{n-1}$,于是$\cos{n\theta}$就是$\cos{\theta}$的$n$次多项式,最高次项系数是$2^{n-1}$,这样也引出了第一类的切比雪夫多项式,还得出了它的具体表达式: 59 | \begin{equation*} 60 | T_n(x) = \sum_{0 \leqslant i \leqslant n/2}C_n^{2i}(-1)^ix^{n-2i}(1-x^2)^{i} 61 | \end{equation*} 62 | 63 | 以下我们来推证这些多项式的一些性质,我们先由公式$\cos{n\theta}=T_n(\cos{\theta})$得出结论,再尝试利用递推关系来加以证明。 64 | 65 | \begin{property} 66 | 对于任意满足$|x|\leqslant 1$的实数$x$,都有$|T_n(x)| \leqslant 1$. 67 | \end{property} 68 | 69 | 70 | 71 | \subsection{第二类切比雪夫多项式} 72 | \label{sec:second-chebyshev-polynome} 73 | 74 | 第一类切比雪夫多项式刻画的是$\cos{n\theta}$展开为$\cos{\theta}$的多项式,那么正弦的情况又如何呢,还是先观察一下二倍角公式和三倍角公式 75 | \begin{eqnarray*} 76 | \sin{2\theta} & = & 2\sin{\theta}\cos{\theta} \\ 77 | \sin{3\theta} & = & 3\sin{\theta}-4\sin^3{\theta} 78 | \end{eqnarray*} 79 | 不难发现,$\sin{n\theta}$无法表示为$\sin{\theta}$的多项式,但是$\sin{n\theta}$似乎可以表达为$\sin{\theta}$与一个关于$\cos{\theta}$的多项式的乘积,也就是说,$\sin{n\theta}/\sin{\theta}$可表为$\cos{\theta}$的多项式。那么对于一般情况,仍然由和差化积 80 | \begin{equation*} 81 | \sin{(n+1)\theta}=2\sin{n\theta}\cos{\theta}-\sin{(n-1)\theta} 82 | \end{equation*} 83 | 可见,$\sin{(n+1)\theta}$也能表为$\sin{\theta}$与一个关于$\cos{\theta}$的$n$次多项式之积,于是得到 84 | \begin{theorem} 85 | 对于任意正整数$n$,$\sin{(n+1)\theta}/\sin{\theta}$可表为一个关于$\cos{\theta}$的$n$次多项式,其最高次项系数是$2^n$,这多项式称为\emph{第二类切比雪夫多项式}。 86 | \end{theorem} 87 | 88 | 仍然有递推公式$U_0(x)=1, U_1(x)=2x$和 89 | \begin{equation*} 90 | U_{n+1}(x)=2xU_n(x)-U_{n-1}(x) 91 | \end{equation*} 92 | 可以发现,两类切比雪夫多项的递推公式是相同的,不同的是两个初始值。 93 | 94 | 第二类切比雪夫多项式以$U_n(x)$标记,有 95 | \begin{equation*} 96 | \frac{\sin{(n+1)\theta}}{\sin{\theta}} = U_n(\cos{\theta}) 97 | \end{equation*} 98 | 99 | 同样利用复数的乘方公式,可以得到第二类切比雪夫多项式的具体表达: 100 | \begin{equation*} 101 | U_n(x) = \sum_{0 \leqslant 2i+1 \leqslant n+1}(-1)^iC_{n+1}^{2i+1}x^{n-2i}(1-x^2)^{i} 102 | \end{equation*} 103 | 其最高次项系数是$C_{n+1}^1+C_{n+1}^3+C_{n+1}^5+\cdots=2^n$。 104 | 105 | 前几个多项式是 106 | \begin{eqnarray*} 107 | U_0(x) & = & 1 \\ 108 | U_1(x) & = & 2x \\ 109 | U_2(x) & = & 4x^2-1 \\ 110 | U_3(x) & = & 8x^3-4x \\ 111 | U_4(x) & = & 16x^4-12x^2+1 \\ 112 | U_5(x) & = & 32x^5-32x^3+6x \\ 113 | U_6(x) & = & 64x^6-80x^4+24x^2-1 114 | \end{eqnarray*} 115 | 116 | \subsection{两类切比雪夫多项式的关系与它们的根} 117 | \label{sec:relation-between-two-chebyshev-polynome} 118 | 119 | 由三角关系,不难推得两类切比雪夫多项式的一些关系式 120 | \begin{property} 121 | 两类切比雪夫多项式间满足如下一些关系式: 122 | \begin{eqnarray*} 123 | T_n^2(x)+(1-x^2)U_{n-1}^2(x) & = & 1 \\ 124 | T_n(x)+\sqrt{x^2-1}U_{n-1}(x) & = & (x+\sqrt{x^2-1})^n 125 | \end{eqnarray*} 126 | \end{property} 127 | 128 | 两类多项式还有以下的双重递归: 129 | \begin{eqnarray*} 130 | T_{n+1}(x) & = & xT_n(x)-(1-x^2)U_{n-1}(x) \\ 131 | U_n(x) & = & xU_{n-1}(x)+T_n(x) 132 | \end{eqnarray*} 133 | 初始值$T_0(x)=1, U_{-1}(x)=1$,这由余弦和正弦的和角公式便可得出。 134 | 135 | 在高等数学中,切比雪夫多项是一类正交多项,可以利用它们来逼近函数和曲线,如同泰勒多项式中$1,x,x^2\cdots$的地位一样,不过这不在本书讨论范围。 136 | 137 | 下面来讨论切比雪夫多项式的根,对于第一类,因为$T_n(\cos{\theta})=\cos{n\theta}$,所以$T_n(x)$的全部根是 138 | \begin{equation*} 139 | x_i=\cos{\frac{2i-1}{2n}\pi}, \ i=1,2,\ldots,n 140 | \end{equation*} 141 | 同样,$U_n(x)$的全部根是 142 | \begin{equation*} 143 | x_i=\cos{\frac{i}{n+1}\pi}, \ i=1,2,\ldots,n 144 | \end{equation*} 145 | 显然这些根全部都在区间$[-1,1]$上。 146 | 147 | %%% Local Variables: 148 | %%% mode: latex 149 | %%% TeX-master: "../../elementary-math-note" 150 | %%% End: 151 | -------------------------------------------------------------------------------- /content/analytic-geometry/analytic-geometry.tex: -------------------------------------------------------------------------------- 1 | \chapter{解析几何} 2 | \label{chap:analytic-geometry} 3 | 4 | \input{content/analytic-geometry/oval-preliminary-discussion} 5 | %\input{content/analytic-geometry/oval-two-definition} 6 | %\input{content/analytic-geometry/oval-pole-line} 7 | \input{content/analytic-geometry/para-curve} 8 | 9 | 10 | %%% Local Variables: 11 | %%% mode: latex 12 | %%% TeX-master: "../../elementary-math-note" 13 | %%% End: 14 | -------------------------------------------------------------------------------- /content/analytic-geometry/oval-pole-line.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{椭圆的极点极线初探} 3 | \label{sec:oval-pole-line} 4 | 5 | 椭圆曲线将其所在平面分成了三个部分:椭圆内部、椭圆曲线上、椭圆外部,对于椭圆曲线上的点,正如大家所熟知的,它们的坐标都满足椭圆的方程: 6 | \begin{equation} 7 | \frac{x^2}{a^2}+\frac{y^2}{b^2}=1 \label{eq:ellipse} 8 | \end{equation} 9 | 而对于椭圆内部的点,它们的坐标都满足不等式: 10 | \begin{equation} 11 | \frac{x^2}{a^2}+\frac{y^2}{b^2}<1 \label{neq:innerellipse} 12 | \end{equation} 13 | 这个很好理解,对于椭圆内部任何一点,总能在椭圆上找到一个对应点,使其横坐标相同而纵坐标的绝对值大于椭圆内的点,而椭圆曲线上的这个对应点的坐标满足方程\ref{eq:ellipse},那么椭圆内的点的坐标满足不等式\ref{neq:innerellipse}就是显然的事情了。 14 | 至于椭圆外部的点,那就只有成立不等式: 15 | \begin{equation} 16 | \frac{x^2}{a^2}+\frac{y^2}{b^2}>1 \label{neq:outerellipse} 17 | \end{equation} 18 | 因为之前椭圆曲线与其方程之间以及椭圆内部的平面区域与其不等式之间都是可以互推的。 19 | 20 | 接下来讨论椭圆的切线问题,在椭圆上任取一个点 $P(x_0,y_0)$,那么该点处的切线方程将是: 21 | \begin{equation} 22 | \frac{x_0x}{a^2}+\frac{y_0y}{b^2}=1 \label{eq:tangent} 23 | \end{equation} 24 | \begin{center} 25 | %\includegraphics{fig1.png} 26 | \end{center} 27 | 这直线为何就是切线方程呢?在这直线上任取一点 $T(x_T,y_T)$,有: 28 | \begin{equation} 29 | (\frac{x_0^2}{a^2}+\frac{y_0^2}{b^2})+(\frac{x_T^2}{a^2}+\frac{y_T^2}{b^2}) \geqslant 2(\frac{x_0x_T}{a^2}+\frac{y_0y_T}{b^2})=2 30 | \end{equation} 31 | 所以得到: 32 | \begin{equation} 33 | \frac{x_T^2}{a^2}+\frac{y_T^2}{b^2} \geqslant 1 34 | \end{equation} 35 | 这表明直线\ref{eq:tangent}上除点$P$外任何一点都在椭圆外,与椭圆只有$P$一个交点,所以它理所当然就是点$P$处的切线方程。 36 | 37 | 现在在椭圆外任选一个点 $P(x_0,y_0)$,并由它向椭圆引两条切线,切点分别为 $T_1(x_1,y_1)$和$T_2(x_2,y_2)$,由于点$P$同时在两条切线上,所以同时成立着: 38 | \begin{equation} 39 | \frac{x_0 x_1}{a^2}+\frac{y_0 y_1}{b^2} = 1,\frac{x_0 x_2}{a^2}+\frac{y_0 y_2}{b^2} = 1 40 | \end{equation} 41 | 由此立刻得知切点弦 $T_1 T_2$ 的方程是: 42 | \begin{equation} 43 | \frac{x_0x}{a^2}+\frac{y_0y}{b^2}=1 \label{eq:qiedianxian} 44 | \end{equation} 45 | 这一点令人惊讶,要注意这时点$P$是在椭圆外,所以不要与刚才所证的切线方程混淆了。同样的方程,因为点$P$位置的不同,它代表的直线也不同。相信读者此时也会不失时机的提出如下问题:如果点$P$是在椭圆内部,那么方程\ref{eq:qiedianxian}又代表什么样的直线呢?此刻还不好回答,但后文自然而然的会得出结论。 46 | 47 | 接着讨论弦的中点的问题,在椭圆上任取两点 $T_1(x_1,y_1)$和$T_2(x_2,y_2)$,线段$T_1T_2$中点为$Q(x_Q,y_Q)$,那么首先成立着等式: 48 | \begin{equation} 49 | \frac{x_1^2}{a^2}+\frac{y_1^2}{b^2}=1, \frac{x_2^2}{a^2}+\frac{y_2^2}{b^2}=1 50 | \end{equation} 51 | 两式相减得到: 52 | \begin{equation} 53 | \frac{x_1^2-x_2^2}{a^2}+\frac{y_1^2-y_2^2}{b^2}=0 54 | \end{equation} 55 | 进一步变形为: 56 | \begin{equation} 57 | \frac{y_1-y_2}{x_1-x_2}\frac{\frac{y_1+y_2}{2}}{\frac{x_1+x_2}{2}}=-\frac{b^2}{a^2} 58 | \end{equation} 59 | 所以弦$T_1T_2$及中点与椭圆中心连线$OQ$两者斜率之积为定值\footnote{本文中都不考虑斜率不存在等特殊情况,只就一般性的情况进行叙述,以得出一般性的结论。}: 60 | \begin{equation} 61 | k_{T_1T_2}k_{OQ}=-\frac{b^2}{a^2} 62 | \end{equation} 63 | 据此可以知道若另作一弦使其所在直线平行于$OQ$,那么其中点与椭圆中心的连线必平行于直线$T_1T_2$,即两个方向存在着相互性,这称之为椭圆的一组“共轭方向”,而这个结论则可以视为椭圆中的垂径定理。此外还可以知道,对于椭圆内部任何一个点,在经过它的所有弦中,只有唯一一条能使它成为弦的中点,而该弦的方向,就是该点与椭圆中心连线的共轭方向。而如果在这里平行移动弦$T_1T_2$,直到它成为椭圆的切线$l$,假如切点为$P(x_0,y_0)$,那么我们应该得出: 64 | \begin{equation} 65 | k_l k_{OP}=-\frac{b^2}{a^2} 66 | \end{equation} 67 | 这与我们刚才所推导的点$P$处的切线方程正好吻合。 68 | 69 | 回到刚才过椭圆外一点$P(x_0,y_0)$引两条切线$PT_1$及$PT_2$的场景中,以$Q$标记切点弦$T_1T_2$的中点,则点$Q$的坐标必然满足切点弦$T_1T_2$的方程: 70 | \begin{equation} 71 | \frac{x_0 x_Q}{a^2}+\frac{y_0 y_Q}{b^2} = 1 \label{eq:pq} 72 | \end{equation} 73 | 这一点就很有意思了,因为这意味着点$P$位于下面的直线上: 74 | \begin{equation} 75 | \frac{x_Q x}{a^2}+\frac{y_Q y}{b^2} = 1 \label{abc} 76 | \end{equation} 77 | 这是一条什么样的直线呢?容易发现,它的方向就是$OQ$的共轭方向!现在回想一下前面所提的悬而未决的问题:对于椭圆内的一点,方程\ref{eq:qiedianxian}代表什么样的直线,现在就可以理直气壮的回答说,先找出以椭圆内的这点为中点的弦,然后过此弦两端点引椭圆切线,两切线有一个交点, 78 | 这条直线就经过了这个点,那么方向呢?将椭圆内的这点与椭圆中心相连,其共轭方向就是该直线的方向!这段长长的描述显得有些不符合数学美感,但至少我们解决了如下问题:针对椭圆上、椭圆内、椭圆外的点$P(x_0,y_0)$,方程\ref{eq:qiedianxian}各自分别代表什么样的直线,而且还可以知道,椭圆内(除去中心)与椭圆外的点之间,存在着一种对称关系,借此我们可以在这两大平面区域之间,建立一对一的映射关系。 79 | 80 | 进一步,直线$OQ$与$T_1T_2$是共轭的,而现在直线\ref{abc}的方向也与$OQ$共轭,这表明直线\ref{abc}与切点弦$T_1T_2$是平行的!比较一下方程\ref{abc}与方程 81 | \ref{eq:qiedianxian}就可以得出结论:直线$PQ$是经过椭圆中心的!进而记$R$为线段$PQ$与椭圆的交点,那么显然: 82 | \begin{equation} 83 | \frac{x_R^2}{a^2}+\frac{y_R^2}{b^2}=1 \label{eq:r} 84 | \end{equation} 85 | 比较一下方程\ref{eq:pq}与\ref{eq:r},再加之我们知道$P$、$Q$、$R$三点共线,而且还过椭圆中心,所以: 86 | \begin{equation} 87 | x_0 x_Q=x_R^2,y_0 y_Q=y_R^2 88 | \end{equation} 89 | 由此得到: 90 | \begin{equation} 91 | OP\cdot OQ = OR^2 92 | \end{equation} 93 | 一切都是如此的完美。 94 | 95 | 前面曾经考虑过,当点$P(x_0,y_0)$在椭圆内部时,方程\ref{eq:tangent}所代表的直线似乎难以描述,现在我们给它取一个好听的名字:极线。准确的说,是点$P$ 关于该椭圆的极线,而点$P$则称为直线\ref{eq:tangent}关于椭圆的极点。当点$P$在椭圆曲线上时,它关于椭圆的极线就是椭圆在该点处的切线(相切),当点$P$在椭圆外部时,它关于椭圆的极线就是对应的切点弦所在直线(相交),而当点$P$在椭圆内时,对应的极线就在椭圆外部了(相离)。而且我们看到,点$P$无论位于哪个位置(椭圆中心除外),它关于椭圆的极线的方向都是$OP$ 的共轭方向,所以如果让点$P$在一条从椭圆中心出发的射线上由椭圆内到椭圆外缓慢移动,我们将看到它关于椭圆的极线由远及近平行移动,当点$P$ 移到椭圆上的那一刻,极点刚好位于极线上,而极线也成为过极点的切线,此后,当点$P$移动到椭圆外时,极线则与椭圆椭圆相交,当点$P$向无穷远处移动时,极线则向椭圆中心无限靠近。容易看出,对于平面上任何一点(椭圆中心除外),它关于椭圆的极线都是唯一存在的,反过来,对于平面上任何一条不通过椭圆中心的直线,它关于椭圆的极点也是唯一存在的。而切点与切线,不过是极点刚好位于极线上的一种特殊情况罢了。 96 | 97 | -------------------------------------------------------------------------------- /content/analytic-geometry/oval-two-definition.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{椭圆两个定义的等价性} 3 | \label{sec:oval-two-definition} 4 | 5 | 本文从纯几何出发证明椭圆两个定义的等价性。 6 | 7 | 只要证明下面这个命题就可以了: 8 | \begin{statement} 9 | 设$a$和$c$是两个正实数,且$a>c$,$F_1$和$F_2$是平面上相距为$2c(c>0)$的两个定点,$O$为它们的中点,$L$为射线$OF_1$上满足$OL=\frac{a^2}{c}$的点(由于$\frac{a^2}{c}>c$,因此$L$比$F_1$距离$O$更远一些),直线$l$过点$L$且与直线$F_1F_2$垂直,则平面上的动点$P$到$F_1$、$F_2$的距离之和为$2a$的充分必要条件是$\frac{PF_1}{d}=\frac{c}{a}$,其中$d$是动点$P$到直线$l$的距离。 10 | \end{statement} 11 | 12 | \begin{proof}[证明] 13 | 先证必要性。设直线$PF_1$的倾斜角为$\theta$,记$PF_1=r$,则$PF_2=2a-r$,在三角形$PF_1F_2$中由余弦定理得 14 | \[ (2a-r)^2=r^2+(2c)^2-2r \cdot 2c \cdot \cos{\theta} \] 15 | 记$b^2=a^2-c^2$,则由上式解得 16 | \footnote{这就是椭圆的焦半径公式。} 17 | \begin{equation} 18 | \label{eq:focal-radius} 19 | r=\frac{b^2}{a-c\cos{\theta}} 20 | \end{equation} 21 | 22 | 另外,根据几何关系显然有 23 | \begin{equation} 24 | \label{eq:oval-two-definition-d} 25 | d=LF_1+PF_1\cos{\theta}=\frac{a^2}{c}-c+r\cos{\theta}=\frac{b^2}{c}+r\cos{\theta} 26 | \end{equation} 27 | 因此 28 | \[ \frac{d}{r}=\frac{1}{r}\frac{b^2}{c}+\cos{\theta} \] 29 | 将式\ref{eq:focal-radius}代入上式右端,立即得到$\frac{d}{r}=\frac{a}{c}$,必要性得证。 30 | 31 | 下证充分性,倾斜角及$r$的定义同前,此时式\ref{eq:oval-two-definition-d}仍然成立,因此 32 | \[ \frac{a}{c}=\frac{d}{r}=\frac{b^2}{c} \cdot \frac{1}{r}+\cos{\theta} \] 33 | 解出$r$即得到\ref{eq:focal-radius},由此之前的余弦定理式也是成立的,因此必然$PF_2=2a-r$,充分性得证。 34 | \end{proof} 35 | 36 | -------------------------------------------------------------------------------- /content/analytic-geometry/para-curve.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{抛物线} 3 | \label{sec:para-curve} 4 | 5 | \begin{property} 6 | 如\autoref{fig:parabola-focus-chord-three-line-intersection}所示,过抛物线对称轴上焦点外侧任一点$D$,分别向过焦点$F$的弦$MN$的两个端点引直线,分别与准线相交于点$P$和$Q$,准线与对称轴的交点是$R$,那么: (1)直线$DR$、$PN$、$QM$三线共点(设为点$T$),(2)对称轴上的四点$R$、$T$、$F$、$D$构成调和点列。 7 | \end{property} 8 | 9 | \begin{figure}[htbp] 10 | \centering 11 | \includegraphics{content/analytic-geometry/pic/parabola-focus-chord-three-line-intersection.pdf} 12 | \caption{抛物线焦点弦的一个性质} 13 | \label{fig:parabola-focus-chord-three-line-intersection} 14 | \end{figure} 15 | 16 | \begin{proof}[证明] 17 | (1) 由塞瓦定理,只需证 18 | \begin{equation} 19 | \label{eq:parabola-focus-chord-three-line-intersection-ceva} 20 | \frac{DN}{NQ} \cdot \frac{QR}{RP} \cdot \frac{PM}{MD} = 1 21 | \end{equation} 22 | 设点$N$在准线上的投影是$N_0$,则有$NF=NN_0$,再设点$N$在抛物线对称轴上的投影是$N_1$,则 23 | \[ \frac{DN}{NQ} = \frac{NN_1}{QN_0} = \frac{NN_1}{NF} \cdot \frac{NN_0}{QN_0} = \sin{\angle NFD} \cdot \tan{\angle DQP} \] 24 | 同理可得 25 | \[ \frac{DM}{MP} = \sin{\angle MFR} \cdot \tan{\angle DPQ} \] 26 | 而显然$\angle NFD = \angle MFR$,而且 27 | \[ \frac{QR}{RP} = \frac{\frac{DR}{RP}}{\frac{DR}{QR}} = \frac{\tan{\angle DPQ}}{\tan{\angle DQP}} \] 28 | 因此式\ref{eq:parabola-focus-chord-three-line-intersection-ceva}成立,结论得证。 29 | 30 | (2) 对 $\triangle QRD$ 和截线$PTN$ 使用梅涅劳斯定理得 31 | \[ \frac{DN}{NQ} \cdot \frac{QP}{PR} \cdot \frac{RT}{TD} = 1 \] 32 | 再对 $\triangle PRD$ 和截线 $QTM$ 使用梅涅劳斯定理得 33 | \[ \frac{DM}{MP} \cdot \frac{PQ}{QR} \cdot \frac{RT}{TD} = 1 \] 34 | 由此二式便得 35 | \[ \frac{RT}{TD} \left( \frac{DN}{NQ} + \frac{DM}{MP} \right) = 1 \] 36 | 记$\angle NFD=\theta$,$\angle DQP=\alpha$,$\angle DPQ=\beta$,则由(1)的证明过程中所得结果可得 37 | \[ \frac{DN}{NQ} + \frac{DM}{MP} = \sin{\theta} (\tan{\alpha} + \tan{\beta}) \] 38 | 记$DF=d$,有熟知的焦半径 39 | \[ NF=\frac{p}{1-\cos{\theta}}, \ MF = \frac{p}{1+\cos{\theta}} \] 40 | 由几何关系得 41 | \[ \tan{\alpha} = \tan{\angle DNN_1} = \frac{DN_1}{NN_1} = \frac{DF-NF\cos{\theta}}{NF \sin{\theta}} = \frac{d(1-\cos{\theta})-p\cos{\theta}}{p\sin{\theta}} \] 42 | 同理可得 43 | \[ \tan{\beta} = \frac{d(1+\cos{\theta})+p\cos{\theta}}{p\sin{\theta}} \] 44 | 由此二式便得 45 | \[ \sin{\theta}(\tan{\alpha} + \tan{\beta}) = \frac{2d}{p} \] 46 | 即 47 | \[ \frac{DN}{NQ} + \frac{DM}{MP} = \frac{2d}{p} \] 48 | 所以 49 | \[ \frac{RT}{TD} = \frac{p}{2d} \] 50 | 由此便知,当抛物线和点$D$的位置确定后,点$T$的位置便固定下来,与焦点弦的具体位置无关,由上式不难求得 51 | \[ RT = \frac{p(p+d)}{p+2d}, \ TF=\frac{dp}{p+2d} \] 52 | 于是 53 | \[ \frac{RT}{TF} = \frac{p+d}{d} = \frac{RD}{DF} \] 54 | 所以这四点为调和点列. 55 | \end{proof} 56 | 57 | %%% Local Variables: 58 | %%% TeX-master: "../../elementary-math-note" 59 | %%% End: 60 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/ellipse-bounded-by-circle.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(130); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | pair O = (0, 0); 11 | label("$O$", O, S); 12 | 13 | pair F1 = (-1 * c, 0); 14 | pair F2 = (c, 0); 15 | 16 | label("$F_1$", F1, S); 17 | label("$F_2$", F2, S); 18 | 19 | draw(F1 -- F2); 20 | 21 | path oval = ellipse(O, a, b); 22 | draw(oval); 23 | 24 | real theta = 2 * pi / 3; 25 | pair P = (a * cos(theta), b * sin(theta)); 26 | label("$P$", P, N); 27 | 28 | draw(O -- P); 29 | draw(P -- F1); 30 | draw(P -- F2); 31 | 32 | pair E = locate(intersectionpoint(line(locate(P), locate(F1)), parallel(locate(O), line(locate(P), locate(F2))))); 33 | label("$E$", E, NW); 34 | 35 | draw(O -- E, dashed); 36 | 37 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/ellipse-focus-triangle-incenter-orbit.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | real a = 5, b = 3, c = sqrt(a^2-b^2); 7 | 8 | pair O = (0, 0); 9 | //label("$O$", O, S); 10 | pair F1 = ((-1) * c, 0), F2= (c, 0); 11 | label("$F_1$", F1, S); 12 | label("$F_2$", F2, S); 13 | draw(F1 -- F2); 14 | 15 | path myellipse = ellipse(O, a, b); 16 | draw(myellipse); 17 | 18 | real theta = pi / 3; 19 | pair P = (a * cos(theta), b * sin(theta)); 20 | label("$P$", P, NE); 21 | draw(F1 -- P -- F2); 22 | 23 | pair I = locate(incenter(locate(F1), locate(F2), locate(P))); 24 | label("$I$", I, NW); 25 | 26 | line lpi = line(locate(P), locate(I)); 27 | line lf1i = line(locate(F1), locate(I)); 28 | line lf2i = line(locate(F2), locate(I)); 29 | 30 | line lf1f2 = line(locate(F1), locate(F2)); 31 | line lpf1 = line(locate(P), locate(F1)); 32 | line lpf2 = line(locate(P), locate(F2)); 33 | 34 | pair D = locate(intersectionpoint(lpi, lf1f2)); 35 | label("$D$", D, S); 36 | draw(P -- D); 37 | draw(F1 -- I -- F2); 38 | 39 | line lui = parallel(I, lpf1); 40 | line lvi = parallel(I, lpf2); 41 | 42 | pair U = locate(intersectionpoint(lf1f2, lui)); 43 | pair V = locate(intersectionpoint(lf1f2, lvi)); 44 | label("$U$", U, S); 45 | label("$V$", V, S); 46 | draw(U -- I -- V, dashed); 47 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/focal-radius-of-ellipse.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | 5 | size(200,200); 6 | 7 | xaxis("$x$", -8, 8, Arrow); 8 | yaxis("$x$", -4, 4, Arrow); 9 | 10 | real a = 5; 11 | real b = 3; 12 | real c = sqrt(a^2-b^2); 13 | 14 | path theellipse = ellipse((0,0), a, b); 15 | draw(theellipse); 16 | 17 | pair F1 = (-1*c, 0); 18 | pair F2 = (c, 0); 19 | label("$F_1$", F1, SE); 20 | label("$F_2$", F2, S); 21 | 22 | real theta = 2*pi/3; 23 | pair P=(a*cos(theta), b*sin(theta)); 24 | label("$P$", P, NE); 25 | 26 | draw(P -- F1); 27 | draw(P -- F2); 28 | 29 | draw((-a*a/c, 4) -- (-a*a/c, -4)); 30 | draw((a*a/c, 4) -- (a*a/c, -4)); 31 | label("$l_1$", (-a*a/c, 3), W); 32 | label("$l_2$", (a*a/c, 3), E); 33 | 34 | draw(P -- (-a*a/c,P.y)); 35 | draw(P -- (a*a/c,P.y)); 36 | 37 | draw(arc(P, F1, F2, 1)); 38 | label("$\theta$", (-3,0), NE); 39 | 40 | line lpq = line(P, true, F1, true); 41 | pair[] pq = intersectionpoints(lpq, theellipse); 42 | pair Q=pq[1]; 43 | label("$Q$", Q, W); 44 | draw(F1 -- Q); 45 | 46 | 47 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-chord-located-in-oval.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | pair O = (0, 0); 11 | pair F1 = (-1 * c, 0); 12 | pair F2 = (c, 0); 13 | label("$F_1$", F1, S); 14 | label("$F_2$", F2, S); 15 | 16 | path oval = ellipse(O, a, b); 17 | draw(oval); 18 | 19 | real theta1 = 2 * pi / 3; 20 | real theta2 = pi / 6; 21 | 22 | pair A = (a * cos(theta1), b * sin(theta1)); 23 | pair B = (a * cos(theta2), b * sin(theta2)); 24 | label("$A$", A, NW); 25 | label("$B$", B, NE); 26 | 27 | draw(line(locate(A), locate(B))); 28 | draw(A -- F1); 29 | draw(A -- F2); 30 | draw(B -- F1); 31 | draw(B -- F2); 32 | 33 | real t = 0.3; 34 | pair P = ((1-t)*A.x+t*B.x, (1-t)*A.y+t*B.y); 35 | label("$P$", P, N); 36 | draw(P -- F1); 37 | draw(P -- F2); 38 | 39 | real s = 1.3; 40 | pair Q = ((1-s)*A.x+s*B.x, (1-s)*A.y+s*B.y); 41 | label("$Q$", Q, N); 42 | draw(Q -- F1); 43 | draw(Q -- F2); 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-focus-triangle-external-bisector.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | //xaxis("$x$", -6,6, Arrow); 9 | //yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair B = (-1*c, 0); 16 | label("$B$", B, S); 17 | pair C = (c, 0); 18 | label("$C$", C, S); 19 | 20 | pair O = (0,0); 21 | //label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | //draw(myellipse); 24 | 25 | real theta = pi / 3; 26 | pair A = (a*cos(theta), b*sin(theta)); 27 | label("$A$", A, N); 28 | 29 | real tangentline(pair t) { 30 | real x = t.x; 31 | real y = t.y; 32 | return A.x*x/(a*a)+A.y*y/(b*b)-1; 33 | } 34 | 35 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 36 | //draw(g1); 37 | 38 | draw(B -- A -- C -- cycle); 39 | 40 | real tangentline2(real x) { 41 | return A.y-(b*b*A.x)/(a*a*A.y)*(x-A.x); 42 | } 43 | 44 | real tmin = A.x - 1; 45 | real tmax = A.x + 3; 46 | 47 | pair TL = (tmin, tangentline2(tmin)); 48 | pair TR = (tmax, tangentline2(tmax)); 49 | draw(TL -- TR); 50 | 51 | pair C1 = reflect(TL, TR) * C; 52 | label("$C'$", C1, N); 53 | draw(C -- C1, dashed); 54 | draw(A -- C1, dashed); 55 | 56 | pair P = (A.x + 1, tangentline2(A.x+1)); 57 | label("$P$", P, E); 58 | draw(B -- P -- C); 59 | draw(P -- C1, dashed); 60 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-focus-triangle-non-external-bisector.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | //xaxis("$x$", -6,6, Arrow); 9 | //yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair B = (-1*c, 0); 16 | label("$B$", B, S); 17 | pair C = (c, 0); 18 | label("$C$", C, S); 19 | 20 | pair O = (0,0); 21 | //label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | //draw(myellipse); 24 | 25 | real theta = pi / 3; 26 | pair A = (a*cos(theta), b*sin(theta)); 27 | label("$A$", A, N); 28 | 29 | real tangentline(pair t) { 30 | real x = t.x; 31 | real y = t.y; 32 | return A.x*x/(a*a)+A.y*y/(b*b)-1; 33 | } 34 | 35 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 36 | //draw(g1); 37 | 38 | draw(B -- A -- C -- cycle); 39 | 40 | real nontangentline(real x) { 41 | return A.y-(2*b*b*A.x)/(a*a*A.y)*(x-A.x); 42 | } 43 | 44 | real tmin = A.x - 1; 45 | real tmax = A.x + 3; 46 | 47 | pair TL = (tmin, nontangentline(tmin)); 48 | pair TR = (tmax, nontangentline(tmax)); 49 | draw(TL -- TR); 50 | 51 | pair C1 = reflect(TL, TR) * C; 52 | label("$C'$", C1, N); 53 | draw(C -- C1, dashed); 54 | draw(A -- C1, dashed); 55 | 56 | pair K = intersectionpoint(B -- C1, TL -- TR); 57 | label("$K$", K, E); 58 | draw(B -- K -- C); 59 | draw(K -- C1, dashed); 60 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-optical-property.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | xaxis("$x$", -6,6, Arrow); 9 | yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair F1 = (-1*c, 0); 16 | label("$F_1$", F1, S); 17 | pair F2 = (c, 0); 18 | label("$F_2$", F2, S); 19 | 20 | pair O = (0,0); 21 | label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | draw(myellipse); 24 | 25 | real theta = pi / 4; 26 | pair P = (a*cos(theta), b*sin(theta)); 27 | label("$P$", P, E); 28 | 29 | real tangentline(pair t) { 30 | real x = t.x; 31 | real y = t.y; 32 | return P.x*x/(a*a)+P.y*y/(b*b)-1; 33 | } 34 | 35 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 36 | draw(g1); 37 | 38 | draw(F1 -- P -- F2, red, Arrow); 39 | 40 | real normalline(pair t) { 41 | return a*a*P.y*(t.x-P.x)-b*b*P.x*(t.y-P.y); 42 | } 43 | 44 | guide[][] g2 = contour(normalline, (-1, -1), (4, 4), new real[]{0}, 100); 45 | draw(g2); 46 | 47 | pair T = (c*c*P.x/(a*a), 0); 48 | label("$T$", T, SE); 49 | 50 | 51 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-pole-and-polor-line.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | xaxis("$x$", -6,8, Arrow); 9 | yaxis("$y$", -4,6, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair F1 = (-1*c, 0); 16 | label("$F_1$", F1, S); 17 | pair F2 = (c, 0); 18 | label("$F_2$", F2, S); 19 | 20 | pair O = (0,0); 21 | label("$O$", O, SW); 22 | path myellipse = ellipse(O, a, b); 23 | draw(myellipse); 24 | 25 | real theta1 = 1.8 * pi / 3; 26 | pair T1 = (a*cos(theta1), b*sin(theta1)); 27 | label("$T_1$", T1, N); 28 | 29 | real theta2 = - pi / 12; 30 | pair T2 = (a*cos(theta2), b*sin(theta2)); 31 | label("$T_2$", T2, SE); 32 | 33 | draw(T1 -- T2); 34 | 35 | real tangentline(real x, pair T) { 36 | return T.y-(b*b*T.x)/(a*a*T.y)*(x-T.x); 37 | } 38 | 39 | real delta1 = 4; 40 | real delta2 = 1; 41 | pair T11 = (T1.x+delta1, tangentline(T1.x+delta1, T1)); 42 | pair T21 = (T2.x+delta2, tangentline(T2.x+delta2, T2)); 43 | 44 | //pair P = intersectionpoint(T1 -- T11, T2 -- T21); 45 | point PT = intersectionpoint(line(T1, T11), line(T2, T21)); 46 | pair P = locate(PT); 47 | label("$P$", P, NE); 48 | draw(O -- P); 49 | draw(P -- T1); 50 | draw(P -- T2); 51 | 52 | pair Q = intersectionpoint(O -- P, T1 -- T2); 53 | label("$Q$", Q, N); 54 | pair R = intersectionpoint(O -- P, myellipse); 55 | label("$R$", R, E); 56 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-ray-from-center-split.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | pair O = (0, 0); 11 | label("$O$", O, S); 12 | 13 | pair F1 = (-1 * c, 0); 14 | pair F2 = (c, 0); 15 | 16 | label("$F_1$", F1, S); 17 | label("$F_2$", F2, S); 18 | 19 | draw(F1 -- F2); 20 | 21 | path oval = ellipse(O, a, b); 22 | draw(oval); 23 | 24 | real theta = 5 * pi / 12; 25 | 26 | pair P = (a * cos(theta), b * sin(theta)); 27 | label("$P$", P, ENE); 28 | 29 | draw(P -- F1); 30 | draw(P -- F2); 31 | 32 | pair M = locate(relpoint(line(locate(O), locate(P)), 0.6)); 33 | pair N = locate(relpoint(line(locate(O), locate(P)), 1.6)); 34 | 35 | label("$M$", M, SSE); 36 | label("$N$", N, NW); 37 | 38 | draw(M -- F1); 39 | draw(M -- F2); 40 | draw(N -- F1); 41 | draw(N -- F2); 42 | 43 | pair K = locate(relpoint(line(locate(O), locate(P)), 2)); 44 | draw(O -- K); 45 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-tangent-line.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | xaxis("$x$", -6,6, Arrow); 9 | yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair F1 = (-1*c, 0); 16 | label("$F_1$", F1, S); 17 | pair F2 = (c, 0); 18 | label("$F_2$", F2, S); 19 | 20 | pair O = (0,0); 21 | label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | draw(myellipse); 24 | 25 | real theta = pi / 4; 26 | pair P = (a*cos(theta), b*sin(theta)); 27 | label("$P$", P, NE); 28 | draw(O -- P); 29 | 30 | real tangentline(pair t) { 31 | real x = t.x; 32 | real y = t.y; 33 | return P.x*x/(a*a)+P.y*y/(b*b)-1; 34 | } 35 | 36 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 37 | draw(g1, red); 38 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-tangent-two-perpendicular-line.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | 5 | size(150); 6 | 7 | real a = 5, b = 3, c = 4; 8 | 9 | pair O = (0, 0); 10 | label("$O$", O, S); 11 | 12 | pair F1 = ((-1)* c, 0), F2 = (c, 0); 13 | label("$F_1$", F1, S); 14 | label("$F_2$", F2, S); 15 | draw(F1 -- F2); 16 | 17 | real theta = pi / 3; 18 | pair P = (a * cos(theta), b * sin(theta)); 19 | label("$P$", P, N); 20 | 21 | ellipse ee = ellipse(F1, F2, P); 22 | draw(ee); 23 | 24 | line mn = line(P.x/(a^2), P.y/(b^2), -1); 25 | 26 | line f1m = perpendicular(F1, mn); 27 | line f2n = perpendicular(F2, mn); 28 | 29 | pair M = locate(intersectionpoint(mn, f1m)); 30 | pair N = locate(intersectionpoint(mn, f2n)); 31 | label("$M$", M, (0,1)); 32 | label("$N$", N, NE); 33 | //draw(M -- N); 34 | 35 | real fmn(real x) { 36 | return b^2 * (1- (P.x * x)/(a^2)) / P.y; 37 | } 38 | 39 | path pmn = graph(fmn, -5, 6); 40 | 41 | draw(pmn); 42 | 43 | draw(F1 -- M); 44 | draw(F2 -- N); 45 | 46 | pair K = reflect(M, N) * F2; 47 | label("$K$", K, NE); 48 | 49 | draw(F1 -- K); 50 | draw(K -- N); 51 | 52 | draw(P -- F2); 53 | 54 | draw(O -- M, dashed); 55 | draw(O -- N, dashed); 56 | draw(O -- K, dashed); 57 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/oval-two-focus-radius-intersectionpoint.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | 5 | size(200,200); 6 | 7 | //xaxis("$x$", -8, 8, Arrow); 8 | //yaxis("$x$", -4, 4, Arrow); 9 | 10 | real a = 5; 11 | real b = 3; 12 | real c = sqrt(a^2-b^2); 13 | 14 | path theellipse = ellipse((0,0), a, b); 15 | draw(theellipse); 16 | 17 | pair F1 = (-1*c, 0); 18 | pair F2 = (c, 0); 19 | label("$F_1$", F1, S); 20 | label("$F_2$", F2, S); 21 | 22 | real theta = 2*pi/3; 23 | pair A=(a*cos(theta), b*sin(theta)); 24 | label("$A$", A, NW); 25 | 26 | draw(A -- F1); 27 | draw(A -- F2); 28 | 29 | pair F1A = (A.x - F1.x, A.y - F1.y); 30 | line F2Bline = parallel(F2, F1A); 31 | 32 | point[] BB = intersectionpoints(F2Bline, theellipse); 33 | point B = BB[0]; 34 | draw(B -- F2); 35 | label("$B$", B, NE); 36 | 37 | draw(B -- F1); 38 | 39 | pair P = intersectionpoint(A -- F2, B -- F1); 40 | label("$P$", P, S); 41 | 42 | ellipse re = ellipse(F1, F2, P); 43 | draw(re, dashed+red); 44 | 45 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/parabola-focus-chord-three-line-intersection.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | import graph; 4 | 5 | size(150); 6 | 7 | real p = 1/2; 8 | real r = 3; 9 | pair O = (0, 0); 10 | pair F = (p/2, 0); 11 | label("$F$", F, SSE); 12 | pair D = (r*p, 0); 13 | label("$D$", D, S); 14 | pair R = (-p/2,0); 15 | label("$R$", R, NW); 16 | 17 | 18 | xaxis("$x$", Arrow); 19 | yaxis("$y$", Arrow); 20 | 21 | line dl = line(2, 0, p); 22 | draw(dl); 23 | 24 | parabola pb = parabola(locate(F), dl); 25 | 26 | pair foo(real t) { 27 | real x = t^2; 28 | real y=t; 29 | return (x,y); 30 | } 31 | 32 | draw(graph(foo, -1.4, 1.4)); 33 | 34 | line lmn = line(locate(F), 75); 35 | 36 | pair M = intersectionpoints(lmn, pb)[0]; 37 | pair N = intersectionpoints(lmn, pb)[1]; 38 | label("$M$", M, (0,-1)); 39 | label("$N$", N, (0,1)); 40 | 41 | draw(M -- N); 42 | 43 | line lmm0 = perpendicular(locate(M), dl); 44 | line lnn0 = perpendicular(locate(N), dl); 45 | 46 | //pair M0 = intersectionpoint(dl, lmm0); 47 | pair N0 = intersectionpoint(dl, lnn0); 48 | //label("$M_0$", M0, NW); 49 | label("$N_0$", N0, W); 50 | //draw(M -- M0, dashed); 51 | draw(N -- N0, dashed); 52 | 53 | line ldm = line(locate(D), locate(M)); 54 | line ldn = line(locate(D), locate(N)); 55 | 56 | pair P = intersectionpoint(dl, ldm); 57 | pair Q = intersectionpoint(dl, ldn); 58 | label("$P$", P, (-1,0)); 59 | label("$Q$", Q, (-1,0)); 60 | 61 | draw(D -- P); 62 | draw(D -- Q); 63 | 64 | draw(P -- N); 65 | draw(Q -- M); 66 | 67 | pair T = intersectionpoint(P -- N, Q -- M); 68 | 69 | pair N1 = (N.x, 0); 70 | label("$N_1$", N1, NE); 71 | draw(N -- N1, dashed); 72 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/pt-inside-triangle-distance-sum.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(120); 5 | 6 | pair A = (2, 6); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, SW); 12 | label("$C$", C, SE); 13 | 14 | draw(A -- B -- C -- cycle); 15 | 16 | real t = 0.6; 17 | 18 | pair D = locate(relpoint(line(locate(B), locate(C)), t)); 19 | label("$D$", D, S); 20 | 21 | draw(A -- D, dashed); 22 | 23 | real s = 0.6; 24 | pair P = locate(relpoint(line(locate(D), locate(A)), s)); 25 | label("$P$", P, E); 26 | 27 | draw(P -- B); 28 | draw(P -- C); 29 | 30 | pair E = locate(intersectionpoint(line(locate(A), locate(B)), line(locate(C), locate(P)))); 31 | label("$E$", E, W); 32 | 33 | draw(P -- E, dashed); 34 | 35 | -------------------------------------------------------------------------------- /content/analytic-geometry/pic/two-definition-of-ellipse.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(200,200); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | path theellipse = ellipse((0,0), a, b); 11 | draw(theellipse); 12 | 13 | pair O = (0, 0); 14 | label("$O$", O, S); 15 | 16 | pair F1 = (-1*c, 0); 17 | pair F2 = (c, 0); 18 | label("$F_1$", F1, SE); 19 | label("$F_2$", F2, S); 20 | draw(F1 -- F2); 21 | 22 | real theta = 2*pi/3; 23 | pair P=(a*cos(theta), b*sin(theta)); 24 | label("$P$", P, NE); 25 | 26 | draw("$r$", P -- F1); 27 | draw(P -- F2); 28 | 29 | pair L = (-a*a/c, 0); 30 | label("$L$", L, W); 31 | draw(L -- F1); 32 | draw((-a*a/c, 4) -- (-a*a/c, -4)); 33 | //draw((a*a/c, 4) -- (a*a/c, -4)); 34 | label("$l_1$", (-a*a/c, 3), W); 35 | //label("$l_2$", (a*a/c, 3), E); 36 | 37 | draw("$d$", P -- (-a*a/c,P.y)); 38 | //draw(P -- (a*a/c,P.y)); 39 | 40 | draw(arc(P, F1, F2, 1)); 41 | label("$\theta$", (-3,0), NE); 42 | -------------------------------------------------------------------------------- /content/combination/combination.tex: -------------------------------------------------------------------------------- 1 | 2 | \chapter{组合} 3 | \label{chap:combination} 4 | 方程$\sum_{i=1}^nx_i=m$的正整数解与非负整数解的个数 5 | 错位排列问题的数列解法 6 | 7 | \input{content/combination/solve-number-of-equation} 8 | \input{content/combination/derangement-problem} 9 | \input{content/combination/exercises} 10 | 11 | 12 | %%% Local Variables: 13 | %%% mode: latex 14 | %%% TeX-master: "../../elementary-math-note" 15 | %%% End: 16 | -------------------------------------------------------------------------------- /content/combination/derangement-problem.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{用数列方法解决错位排列问题} 3 | \label{sec:derangement-problem} 4 | 5 | 此文要解决的问题是:有编号为$1,2,\ldots,n$的$n$个人和同样编号的$n$个座位,如果每个人都不允许坐与自身编号相同的座位,有多少种坐法?此即所谓的错位排列问题。 6 | 7 | 这个用容斥原理是可以瞬间解决的,高中时期年少轻狂,愣是用定义数列求通项的方法给求出来了,此文即是重新写的,原稿已经遗失。 8 | 9 | 考虑编号为1的人,假如他坐在编号为$r_1$的座位上,又看编号为$r_1$的人,他可以坐在1号座位上,也可以坐在$r_2$号座位上,如果是坐在1号座位上,那么1号和$r_1$号这两个人由于交叉坐,与其他人无涉,如果是坐在$r_2$号座位上,则再继续看$r_2$号人,依此顺着链条$1\rightarrow r_1 \rightarrow r_2 \rightarrow \cdots$,这样下去的结果是,从1号人开始,能够找到一个环,使得该环内的人和座位与环外的人和座位无涉,可以独立开来,如果找不到这样的环,那无非是所有人一起构成了一个整体环,即是无法分割。这样的环可能不止一个,但我们仅考虑包含1号人的那个环。 10 | 11 | 假定$n$个人的错位排列数为$a_n$,设包含1号人的环共含有$m(2\leqslant m \leqslant n-2)$个人,那么只要从除1号之外的人中选出$m-1$个人排在这个座位链上,因此座法是$(m-1)!C_{n-1}^{m-1}=\frac{(n-1)!}{(n-m)!}$,而剩下的$n-m$个人又组成了一个较小的错位排列,因此其坐法数是$a_{n-m}$,此外,当$m=n$时,所有人构成一个环,只要把他们按照座位链排成一排即可,所以此时的坐法是$(n-1)!$,于是总共的坐法是: 12 | \begin{equation*} 13 | a_n=\sum_{m=2}^{n-2}\frac{(n-1)!}{(n-m)!}a_{n-m}+(n-1)!=(n-1)!(\sum_{m=2}^{n-2}\frac{a_{n-m}}{(n-m)!}+1) 14 | \end{equation*} 15 | 将式中的求和顺序倒过来,就有 16 | \begin{equation} 17 | \label{eq:requsive-equation-derangement} 18 | a_n=(n-1)!(\sum_{m=2}^{n-2}\frac{a_{m}}{m!}+1) 19 | \end{equation} 20 | 此即其作为数列的递推公式,自然的,$a_1=0,a_2=1$。 21 | 22 | 下面来求它的通项公式,上式可以变形为: 23 | \begin{equation} 24 | \label{recursive-equation-derangement-2} 25 | \frac{a_n}{n!}=\frac{1}{n}(1+\sum_{m=2}^{n-2}\frac{a_m}{m!}) 26 | \end{equation} 27 | 只要记$b_n=\frac{a_n}{n!}$,则有$b_1=0$和 28 | \begin{equation} 29 | \label{eq:recursive-equation-derangement-simple} 30 | b_n=\frac{1}{n}(1+\sum_{m=2}^{n-2}b_m) 31 | \end{equation} 32 | 于是有 33 | \begin{equation} 34 | \label{eq:recursive-equation-derangement-simple-diff} 35 | nb_n-(n-1)b_{n-1}=b_{n-2} 36 | \end{equation} 37 | 也就是 38 | \begin{equation} 39 | \label{eq:recursive-equation-derangement-simple-diff2} 40 | b_n-b_{n-1}=-\frac{1}{n}(b_{n-1}-b_{n-2}) 41 | \end{equation} 42 | 而$b_2-b_1=\frac{1}{2}$,所以 43 | \begin{equation} 44 | \label{eq:recursive-equation-derangement-bn} 45 | b_n-b_{n-1}=(-1)^{n-2}\frac{1}{n!}=(-1)^n\frac{1}{n!} 46 | \end{equation} 47 | 于是 48 | \begin{equation} 49 | \label{eq:derangement-bn} 50 | b_n=b_1+\sum_{m=2}^{n}(b_m-b_{m-1})=\sum_{m=2}^n(-1)^m\frac{1}{m!} 51 | \end{equation} 52 | 所以最终 53 | \begin{equation} 54 | \label{eq:derangement-an} 55 | a_n=n!b_n=n!\sum_{m=2}^n(-1)^m\frac{1}{m!} 56 | \end{equation} 57 | 在$0!=1$的规定下,也可以把求和指标从零开始 58 | \begin{equation} 59 | \label{eq:derangement-an2} 60 | a_n=n!\sum_{m=0}^n(-1)^m\frac{1}{m!} 61 | \end{equation} 62 | 这就是最终的结果。 63 | 64 | %%% Local Variables: 65 | %%% mode: latex 66 | %%% TeX-master: "../../elementary-math-note" 67 | %%% End: 68 | -------------------------------------------------------------------------------- /content/combination/exercises.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{题选} 3 | \label{sec:combination-exercises} 4 | 5 | \begin{exercise} 6 | 四个人玩传球游戏,每个人接到球后将球传给别人,首先由甲发球,在经过 $n$ 次传球后球又回到甲手中,求这样的传球方法数。 7 | \end{exercise} 8 | 9 | 由于结果与自然数 $n$ 有关,将这结果作为一个数列是合理的。 10 | 11 | 记结果数为 $a_n$,那么在 $n$ 次传球过程中,传球方法总数是 $3^n$。考虑数列的递推情况,对于 $n+1$次传球而言,只要前$n$次传球后球不在甲手中,则最后一次传球只有一种固定的方式,所以有 $a_{n+1}=3^n-a_n$,而$a_1=0$。 12 | 13 | 有了递推公式,现在来求通项,在递推式两边同时乘以 $(-1)^n$得 14 | \begin{displaymath} 15 | (-1)^na_n-(-1)^{n+1}a_{n+1}=(-3)^n 16 | \end{displaymath} 17 | 于是令$b_n=(-1)^na_n$则有$b_n-b_{n+1}=(-3)^n$,所以 18 | \begin{displaymath} 19 | b_n=b_1-\sum_{k=1}^{n-1}(b_k-b_{k+1}=-\sum_{k=1}^{n-1}(-3)^k=\frac{3}{4}(1-(-3)^{n-1}) 20 | \end{displaymath} 21 | 所以$a_n=\frac{(3^n+3(-1)^n)}{4}$. 22 | 23 | 24 | %%% Local Variables: 25 | %%% mode: latex 26 | %%% TeX-master: "../../elementary-math-note" 27 | %%% End: 28 | -------------------------------------------------------------------------------- /content/combination/solve-number-of-equation.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{方程$\sum_{i=1}^nx_i=m$的解的个数} 3 | \label{sec:solve-number-of-equation} 4 | 5 | 排列组合中有很多问题都可以归结为以下问题:方程$\sum_{i=1}^nx_i=m$的正 6 | 整数解的个数和非负整数解的个数,这里$n$和$m$都是正整数。 7 | 8 | 先看正整数解,只要想象一下,把$m$个圆圈画在一横排,中间就会形成$m-1$个空 9 | 隙,只要在这些空隙中选取$n-1$个插入分隔符号,则这些圆圈被划分成了$n$个 10 | 组,每一组中的圆圈个数就能对应是$x_i$的值,因此整数解的个数是 11 | $C_{m-1}^{n-1}$。 12 | 13 | 而对于非负整数解,只要令$y_i=x_i+1$,则问题转化为求方程 14 | $\sum_{i=1}^ny_i=m+n$的正整数解的个数,借用前述结论,这个结果应是$C_{n+m-1}^{n-1}$。 -------------------------------------------------------------------------------- /content/number-theory/congruences.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{同余} 3 | \label{sec:congruences} 4 | 5 | \begin{definition} 6 | 给定一个正整数$m$,称为\emph{模},$a$和$b$是两个正整数,如果用$m$去除$a$、$b$所得余数相同,则称$a$、$b$模$m$\emph{同余},记作$a \equiv b \pmod{m}$,如果余数不同,则称$a$、$b$模$m$不同余,记作$a \not \equiv b \pmod{m}$. 7 | \end{definition} 8 | 9 | 容易验证,同余满足以下三条性质: 10 | \begin{enumerate} 11 | \item $a \equiv a \pmod{m}$. 12 | \item 若 $a \equiv b \pmod{m}$,则也有 $b \equiv a \pmod{m}$. 13 | \item 若$a \equiv b \pmod{m}$且$b \equiv c \pmod{m}$,则$a \equiv c \pmod{m}$. 14 | \end{enumerate} 15 | 这表明,同余是一种等价关系。 16 | 17 | \begin{theorem} 18 | 整数$a$、$b$对模$m$同余的充分必要条件是$m \mid (a-b)$. 19 | \end{theorem} 20 | 21 | \begin{proof}[证明] 22 | 如果$a \equiv b \pmod{m}$,则存在两个整数$k_1$和$k_2$和整数$r(0 \leqslant r < m)$,使得$a=k_1m+r$,$b=k_2m+r$,于是$m \mid (a-b)$,反之,若$m \mid (a-b)$,设$a-b=mk$,则显然有$a \equiv b \pmod{m}$. 23 | \end{proof} 24 | 25 | 这定理的意义在于,我们可以把同余问题转化为整除问题来解决。 26 | 27 | \begin{theorem} 28 | 根据整除理论,同余还有以下性质: 29 | \begin{enumerate} 30 | \item 若$a_1 \equiv b_1 \pmod{m}$, $a_2 \equiv b_2 \pmod{m}$,则$(a_1\pm a_2) \equiv (b_1 \pm b_2) \pmod{m}$. 31 | \item 若$(a+b) \equiv c \pmod{m}$,则$a \equiv (c-b) \pmod{m}$. 32 | \item 若$a_1 \equiv b_1 \pmod{m}$, $a_2 \equiv b_2 \pmod{m}$,则$a_1a_2 \equiv b_1b_2 \pmod{m}$. 特殊情况是,若$a \equiv b \pmod{m}$,$k$是一个整数,则$ak \equiv bk \pmod{m}$. 33 | \end{enumerate} 34 | \end{theorem} 35 | 36 | 上述定理容易验证,此外还有更一般的结论: 37 | \begin{theorem} 38 | 若$A_{s_1,s_2,\ldots,s_n} \equiv B_{s_1,s_2,\ldots,s_n} \pmod{m}$,且$x_i \equiv y_i \pmod{m}$,$i=1,2,\ldots,n$,则 39 | \[ \sum_{s_1,s_2,\ldots,s_n} A_{s_1,s_2,\ldots,s_n} x_1^{s_1}x_2^{s_2} \cdots x_n^{s_n} \equiv = \sum_{s_1,s_2,\ldots,s_n} B_{s_1,s_2,\ldots,s_n} y_1^{s_1}y_2^{s_2} \cdots y_n^{s_n} \pmod{m} \] 40 | \end{theorem} 41 | 42 | 特殊情况是,若$a_i \equiv b_i \pmod{m}$,则 43 | \[ a_nx^n+a_{n-1}x^{n-1}+\cdots a_1x+a_0 \equiv b_nx^n+b_{n-1}x^{n-1}+\cdots b_1x+b_0 \pmod{m} \] 44 | 45 | 以上性质和定理都不难证明。 46 | 47 | \begin{theorem} 48 | 同余还具有以下一些性质: 49 | \begin{enumerate} 50 | \item 若$a \equiv b \pmod{m}$,且$a=a_1d$,$b=b_1d$,$(d,m)=1$,则$a_1 \equiv b_1 \pmod{m}$. 51 | \item 若$a \equiv b \pmod{m}$,$k$是一个正整数,则$ak \equiv bk \pmod{mk}$. 52 | \item 若$a \equiv b \pmod{m}$,$d$是$a$、$b$及$m$的任一正的公因数,则$\frac{a}{d} \equiv \frac{b}{d} \pmod{\frac{m}{d}}$. 53 | \item 若$a \equiv b (\mod m_i),i=1,2,\ldots,n$,则$a \equiv b \pmod{[m_1,m_2,\ldots,m_n]}$. 54 | \item 若$a \equiv b \pmod{m}$,$d$是$m$的一个正的因数,则$a \equiv b \pmod{d}$. 55 | \item 若$a \equiv b \pmod{m}$,则$(a,m)=(b,m)$,进而有,若$d$能整除$m$及$a$、$b$其中之一,则也一定能整除另一个。 56 | \end{enumerate} 57 | \end{theorem} 58 | 59 | \begin{proof}[证明] 60 | 1. 由$a \equiv b \pmod{m}$得$m \mid (a-b)$,即$m \mid d(a_1-b_1)$,而$(m,d)=1$,所以$m \mid (a_1-b_1)$,即$a_1 \equiv b_1 \pmod{m}$. 61 | 62 | 2.3.4.5. 这四条都是显然的. 63 | 64 | 6. 由$a-b=km$知$a$与$m$的公因数集合,跟$b$与$m$的公因数集合相同,因此结论成立。 65 | \end{proof} 66 | 67 | 同余可以用来简单的判别一个(较大的)整数是否可被另一整数整除。 68 | \begin{theorem} 69 | 十进制整数$a=a_n10^n+a_{n-1}10^{n-1}+\cdots+10a_1+a_0(0 \leqslant a_i \leqslant 9, a_n \neq 0)$能被$3$整除的充分必要条件是$3 \mid \sum_{i=0}^na_i$. 70 | \end{theorem} 71 | 72 | \begin{theorem} 73 | 十进制整数$a=a_n10^n+a_{n-1}10^{n-1}+\cdots+10a_1+a_0(0 \leqslant a_i \leqslant 9, a_n \neq 0)$能被$7$(或$11$,或$13$)整除的充分必要条件是$7$(或$11$,或$13$)能够整除$\sum_{i=0}^n(-1)^ia_i$. 74 | \end{theorem} 75 | 76 | 此外,还有所谓的弃九法,这是用来检查乘法运算的结果是否正确的一种简便方法,但它不能保证完全正确,既是说,通过检查的不一定是正确的,但是通不过检查的一定是错误的。假定有如下的十进制表示 77 | \[ a = a_n10^n+a_{n-1}10^{n-1}+\cdots+a_0 \] 78 | 以及 79 | \[ b = b_m10^m+b_{m-1}10^{m-1}+\cdots+b_0 \] 80 | 假定我们计算得出的乘积结果是(待检查的结果) 81 | \[ P = c_l10^l+c_{l-1}10^{l-1}+\cdots+c_0 \] 82 | 那么如果 83 | \[ \left( \sum_{i=0}^n a_i \right) \left( \sum_{i=0}^m b_i \right) \not \equiv \sum_{i=0}^l c_i (\mod 9) \] 84 | 那么我们求得的结果$P$一定是错误的,但是如果上式的同余式成立了也不一定是正确的,只是这个机会比较小,假定错误结果对9的余数是均匀随机,那么这种情况发生的概率是1/10,所以方法还是比较有效的. 85 | 86 | 87 | \subsection{同余及其性质} 88 | \label{sec:congruences-and-its-properties} 89 | 90 | \subsection{剩余类与完全剩余系} 91 | \label{sec:residue-and-complete-set-of-residues} 92 | 93 | \subsection{欧拉函数、欧拉定理与费马小定理} 94 | \label{sec:euler-function-and-euler-theorem-and-fermat-small-theorem} 95 | 96 | \subsection{RSA加密与解密} 97 | \label{sec:rsa-encrypt-decrypt} 98 | 99 | \subsection{一次同余式与中国剩余定理} 100 | \label{sec:congruence-of-first-degree-and-chinese-remainder-theorem} 101 | 102 | 103 | %%% Local Variables: 104 | %%% mode: latex 105 | %%% TeX-master: "../../elementary-math-note" 106 | %%% End: 107 | -------------------------------------------------------------------------------- /content/number-theory/indefinite-equation.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{不定方程} 3 | \label{sec:indefinite-equation} 4 | 5 | \subsection{二元一次不定方程} 6 | \label{sec:indefinite-binary-equation-of-the-first-degree} 7 | 8 | \begin{theorem} 9 | 二元一次不定方程$ax+by=c$有整数解的充分必要条件是$a$和$b$的最大公因数$d$能够整除$c$. 10 | \end{theorem} 11 | 12 | \begin{proof}[证明] 13 | 先证必要证,如果这方程有解,比如说$x=x_0,y=y_0$是它的一个解,则$ax_0+by_0=c$,显然$a$和$b$的最大公因数$d$能够整除左边,自然也就能整除$c$,必要性成立。 14 | 15 | 再证充分性,如果$d=(a,b) \mid c$,记$c=c_1d$,由最大公因数性质,存在整数$s$和$t$使得$sa+tb=d$,于是$(c_1s)a+(c_1t)b=c$,从而$x=c_1s,y=c_1t$是方程的一个解,充分性成立。 16 | \end{proof} 17 | 18 | \begin{theorem} 19 | 如果二元一次不定方程$ax+by=c$有一个解$x=x_0,y=y_0$,则它的全部解是 20 | \[ x=x_0+b_1t, \ y=y_0-a_1t \ (t=0, \pm 1, \pm 2, \ldots ) \] 21 | 其中$a_1$和$b_1$分别是从$a$和$b$中约去它们的最大公因数后剩下的因子。 22 | \end{theorem} 23 | 24 | \begin{proof}[证明] 25 | 显然$x=x_0+b_1t,y=y_0-a_1t,(t=0, \pm 1, \pm 2, \ldots)$都是这方程的解,只要证明它给出了方程的全部解即可,设$x=x_1,y=y_1$是方程的任意一个解,即$ax_1+by_1=c$,则 26 | \[ a(x_1-x_0)+b(y_1-y_0)=0 \] 27 | 两边约去$a$和$b$的最大公因数$d$后得 28 | \[ a_1(x_1-x_0)+b_1(y_1-y_0)=0 \] 29 | 这表明$a_1 \mid b_1(y_1-y_0)$且$b_1 \mid a_1(x_1-x_0)$,但$(a_1,b_1)=1$,所以必有$a_1 \mid (y_1-y_0)$, $b_1 \mid (x_1-x_0)$,记$y_1-y_0=a_1t_1$,$x_1-x_0=b_1t_2$,则由上式得$t_1+t_2=0$,所以记$t=t_2$,则$x_1=x_0+b_1t,y_1=y_0-a_1t$,这就表明定理中的解给出了方程的全部解。 30 | \end{proof} 31 | 32 | 于是二元一次不定方程的求解问题,就归结于求出一个特解的问题了,从上面的证明过程可以看出,只要求下面这个特殊的二元一次不定方程的特解就可以了: 33 | \[ ax+by=1, \ (a,b)=1 \] 34 | 这个也不难,因为我们早就做过这个事情了,就是在证明对任意整数$a$和$b$,都存在一对整数$s$和$t$,使得$sa+tb=(a,b)$的时候,我们就利用辗转相除法给出了一个寻找$s$和$t$的方法的,所以二元一次不定方程的求解问题就算是彻底解决了。 35 | 36 | \subsection{多元一次不定方程} 37 | \label{sec:indefinite-equation-with-many-variable-one-degree} 38 | 39 | 对于多元一次不定方程 40 | \[ a_1x_1+a_2x_2+\cdots+a_nx_n=b, \ n \geqslant 2 \] 41 | 有类似的结论: 42 | \begin{theorem} 43 | 多元一次不定方程有解的充分必要条件是$(a_1,a_2,\ldots,a_n) \mid b$. 44 | \end{theorem} 45 | 46 | \begin{proof}[证明] 47 | 必要性是显然的,只证明充分性,因为存在一组整数$s_1,s_2,\ldots,s_n$,使得 48 | \[ d = (a_1,a_2,\ldots,a_n) = s_1a_1+s_2a_2+\cdots+s_na_n \] 49 | 再两边同乘以$\dfrac{b}{d}$,便知$x_i=\dfrac{b}{d}s_i$是方程的一组解。 50 | \end{proof} 51 | 52 | \subsection{勾股方程与费马问题} 53 | \label{sec:pythagorean-equation-and-fermat-problem} 54 | 55 | 56 | %%% Local Variables: 57 | %%% mode: latex 58 | %%% TeX-master: "../../elementary-math-note" 59 | %%% End: 60 | -------------------------------------------------------------------------------- /content/number-theory/number-theory.tex: -------------------------------------------------------------------------------- 1 | 2 | \chapter{初等数论} 3 | \label{chap:number-theory} 4 | 5 | 本章是参考文献\cite{elementary-number-theory}一书的学习笔记。 6 | 7 | \input{content/number-theory/integer-division} 8 | \input{content/number-theory/indefinite-equation} 9 | \input{content/number-theory/congruences} 10 | 11 | 12 | %%% Local Variables: 13 | %%% mode: latex 14 | %%% TeX-master: "../../elementary-math-note" 15 | %%% End: 16 | -------------------------------------------------------------------------------- /content/plane-geometry/circle.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{圆} 3 | \label{sec:circle} 4 | 5 | \subsection{圆幂} 6 | \label{sec:power-of-circle} 7 | 8 | 早在中学数学中,我们就已经知道切割线定理和相交弦定理,而今我们将以统一的观点来看待这两个定理,这两个定理的共同点是,从一个定点作两条直线与定圆相交(相切可以视为极端情形),在其中每一条直线上,从定点出发到两个交点的两条线段的长度之积,都是相同的,也就是说这个乘积与具体的直线无关,仅与这个点与圆有关,于是我们便用如下的圆幂定理来取代切割线定理和相交弦定理: 9 | 10 | \begin{theorem}[圆幂定理] 11 | 过平面上一个定点引直线与一个定圆相交得到两个交点(相切时两个交点重合),则从该定点出发分别到达两个交点的两条线段长度之积是与直线位置无关的定值。 12 | \end{theorem} 13 | 14 | 那么接下来就要问,这个定值是多少?对于切割线定理而来,显然这个定点就是该点到圆的切线长的平方,而相交弦定理来说,让通过此点的弦以该点为中点,则显见这个定值是半径的平方与弦心距的平方之差,于是我们引入如下定义: 15 | 16 | \begin{definition} 17 | 对于平面上的一个定点和一个定圆,称定点到圆心距离的平方减去半径的平方所得的差为该点对该圆的 \emph{幂}。 18 | \end{definition} 19 | 20 | 由定义,圆外的点对圆的幂为正,圆内的点对圆的幂为负,圆上的点对此圆的幂为零,于是圆幂定理中的定值,便是定点对定圆的幂的绝对值。 21 | 22 | \subsection{反演变换} 23 | \label{sec:transformation-of-inversion} 24 | 25 | 26 | 27 | \subsection{极点与极线} 28 | \label{sec:pole-and-polar} 29 | 30 | 31 | \subsection{根轴与根心} 32 | \label{sec:radical-axis-and-center} 33 | 34 | 35 | 36 | 37 | 38 | %%% Local Variables: 39 | %%% mode: latex 40 | %%% TeX-master: "../../elementary-math-note" 41 | %%% End: 42 | -------------------------------------------------------------------------------- /content/plane-geometry/conic-section.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{圆锥曲线} 3 | \label{sec:conic-section} 4 | 5 | \subsection{椭圆的方程} 6 | \label{sec:ellipse-equation} 7 | 8 | 椭圆是生活中常见的图形,它是由圆拉伸而来,中心在原点的单位圆的参数方程是 9 | \[ 10 | \begin{cases} 11 | x = \cos{\theta} \\ 12 | y = \sin{\theta} 13 | \end{cases} 14 | \] 15 | 于是在伸缩变换$L(a,b)(a>0,b>0)$下,这方程就成为 16 | \[ 17 | \begin{cases} 18 | x = a \cos{\theta} \\ 19 | y = b \sin{\theta} 20 | \end{cases} 21 | \] 22 | 这就是椭圆的参数方程,消去参数即得椭圆的普通方程 23 | \[ \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 \] 24 | 从方程来看,显然椭圆具有轴对称和中心对称性,而原点是它的对称中心,称为\emph{椭圆的中心}.两个坐标轴是这椭圆的对称轴。 25 | 26 | \begin{example} 27 | 我们来证明,平面上,到两个定点的距离之和为恒定值(大于两定点之间的距离)的动点轨迹是一个椭圆。 28 | 29 | 设两个定点为$F_1(-c,0)$和$F_2(c,0)$,动点$P(x,y)$满足$|PF_1|+|PF_2|=2a(a>c)$,那么有 30 | \[ \sqrt{(x+c)^2+y^2} + \sqrt{(x-c)^2+y^2} = 2a \] 31 | 令 32 | \[ \sqrt{(x+c)^2+y^2} = a + t, \ \sqrt{(x-c)^2+y^2} = a - t \] 33 | 这里$t$是与动点$P$有关的量,上两式平方之后相减得 34 | \[ t = \frac{c}{a}x \] 35 | 将它代入以上两式中任意一式得 36 | \[ \frac{x^2}{a^2} + \frac{y^2}{a^2-c^2} = 1 \] 37 | 因为$a>c>0$,所以可令$b^2=a^2-c^2(b>0)$(接下来会看到,$b$是有几何意义的),就得 38 | \[ \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 \] 39 | 这就是一个椭圆. 40 | \end{example} 41 | 42 | 显然,任意一个椭圆,也有唯一确定的两个定点$F_1$和$F_2$和距离和$2a$,使得椭圆上任一点到这两个定点的距离和恒为$2a$,称这两个定点为椭圆的\emph{焦点},两个焦点之间的距离$2c$称为\emph{焦距}. 43 | 44 | 在上面已经得出了动点$P$到两个焦点的距离(称为\emph{焦半径})的表达式 45 | \[ 46 | \begin{cases} 47 | |PF_1| = a + \frac{c}{a} x \\ 48 | |PF_2| = a - \frac{c}{a} x \\ 49 | \end{cases} 50 | \] 51 | 52 | 显然,椭圆的形状由伸缩变换$L(a,b)$确定,实际上由比例$\frac{b}{a}$所唯一确定,定义椭圆的\emph{离心率}为 53 | \[ e = \frac{c}{a} \] 54 | 它与伸缩比例的关系是 55 | \[ e = \sqrt{1-\left( \frac{b}{a} \right)^2} \] 56 | 显然,椭圆离心率满足$0b$,而竖着的椭圆的方程则写为 70 | \[ \frac{x^2}{b^2} + \frac{y^2}{a^2} = 1 \] 71 | 所以从椭圆上来看,哪一项的分母大,哪一项对应的坐标轴就是长轴,而另一项对应的坐标轴就是短轴. 72 | 73 | \begin{example} 74 | 作为焦半径公式的一个应用,我们来考虑如下问题:椭圆上的点对两个焦点的最大张角问题。 75 | 76 | 由余弦定理可得 77 | \begin{align*} 78 | \cos{\angle{F_1PF_2}} & = \frac{|PF_1|^2+|PF_2|^2-|F_1F_2|^2}{2|PF_1| \cdot |PF_2|} \\ 79 | & = \frac{(a+t)^2+(a-t)^2-4c^2}{2(a+t)(a-t)} \\ 80 | & = \frac{a^2+t^2-2c^2}{a^2-t^2} \\ 81 | & = \frac{2b^2}{a^2-t^2} - 1 82 | \end{align*} 83 | 因为$t=ex$,由$|x| \leqslant a$ 得$|t| \leqslant c$,所以得 84 | \[ 1-2e^2 \leqslant \cos{\angle{F_1PF_2}} \leqslant 1 \] 85 | 并且左边的最小值在$t=0$时取到,这时点$P$正是短轴的端点,所以结论就是,椭圆上的动点在短轴端点位置时,它对两个焦点的张角最大。 86 | \end{example} 87 | 88 | 89 | 因为这个椭圆是由单位圆通过伸缩变换$L(a,b)$而来,所以它的面积是 90 | \[ S = \pi a b \] 91 | 92 | \subsection{切线与光学性质} 93 | \label{sec:tangent-line-and-light-perproties} 94 | 95 | 96 | 97 | \begin{theorem} 98 | 椭圆$\dfrac{x^2}{a^2}+\dfrac{y^2}{b^2}=1(a>0,b>0)$上任一点$P(x_0,y_0)$处的切线方程是$\dfrac{x_0x}{a^2}+\dfrac{y_0y}{b^2}=1$. 99 | \end{theorem} 100 | 101 | \begin{proof}[证明] 102 | 在这直线上任取一点 $T(x_T,y_T)$,有: 103 | \begin{equation} 104 | \left(\frac{x_0^2}{a^2}+\frac{y_0^2}{b^2}\right)+\left(\frac{x_T^2}{a^2}+\frac{y_T^2}{b^2}\right) \geqslant 2\left(\frac{x_0x_T}{a^2}+\frac{y_0y_T}{b^2}\right)=2 105 | \end{equation} 106 | 所以得到: 107 | \begin{equation} 108 | \frac{x_T^2}{a^2}+\frac{y_T^2}{b^2} \geqslant 1 109 | \end{equation} 110 | 这表明直线\ref{eq:tangent}上除点$P$外任何一点都在椭圆外,与椭圆只有$P$一个交点,所以它理所当然就是点$P$处的切线方程。 111 | \end{proof} 112 | 113 | \begin{proof}[证明二] 114 | 设$P(x_0,y_0)$处对应椭圆离心角$\theta_0$,将椭圆参数方程 115 | \[ 116 | \begin{cases} 117 | x & = a \cos{\theta} \\ 118 | y & = b \sin{\theta} 119 | \end{cases} 120 | \] 121 | 代入直线方程 122 | \[ \frac{x_0x}{a^2} + \frac{y_0y}{b^2} = 1 \] 123 | 同时用$x_0=a\cos{\theta_0},y_0=b\sin{\theta_0}$替换掉$x_0$和$y_0$得 124 | \[ \cos{\theta_0}\cos{\theta}+\sin{\theta_0}\sin{\theta}=1 \] 125 | 即 126 | \[ \cos{(\theta-\theta_0)} = 1 \] 127 | 显然,只有$\theta$与$\theta_0$相差$\pi$的偶数倍,才能成为椭圆与直线的交点,而这些交点实际上都与$P(x_0,y_0)$是同一点,于是即证。 128 | \end{proof} 129 | 130 | \begin{theorem} 131 | 双曲线$\dfrac{x^2}{a^2}-\dfrac{y^2}{b^2}=1(a>0,b>0)$上任一点$P(x_0,y_0)$处的切线方程是$\dfrac{x_0x}{a^2}-\dfrac{y_0y}{b^2}=1$. 132 | \end{theorem} 133 | 134 | \begin{proof}[证明] 135 | 在直线$\dfrac{x_0x}{a^2}-\dfrac{y_0y}{b^2}=1$上任取一点$Q(x_T,y_T)$,有 136 | \begin{equation} 137 | \label{eq:4hdks85hdks018} 138 | \frac{x_0^2}{a^2}-\frac{y_0^2}{b^2}=1, \ \frac{x_0x_T}{a^2}-\frac{y_0y_T}{b^2}=1 139 | \end{equation} 140 | 我们将证明 141 | \begin{equation} 142 | \label{eq:hss8wsk13hcfsud0wurg} 143 | \frac{x_T^2}{a^2}-\frac{y_T^2}{b^2} \leqslant 1 144 | \end{equation} 145 | 且等号仅在$y_T=y_0$时成立,这样一来,点$P(x_0,y_0)$就是直线与双曲线的唯一公共点,即为切线。 146 | 147 | 记 148 | \[ r=\frac{x_0}{a}+\frac{y_0}{b}, \ s=\frac{x_0}{a}-\frac{y_0}{b} \] 149 | 以及 150 | \[ u=\frac{x_T}{a}+\frac{y_T}{b}, \ v=\frac{x_T}{a}-\frac{y_T}{b} \] 151 | 那么\autoref{eq:4hdks85hdks018}即为$rs=1$以及$\dfrac{rv+su}{2}=1$,而要证明的\autoref{eq:hss8wsk13hcfsud0wurg}即是$uv\leqslant 1$. 152 | 153 | 由$4=(rv+su)^2=r^2v^2+s^2u^2+2rsuv \geqslant 4rsuv= 4uv$即证得$uv \leqslant 1$,定理得证。 154 | \end{proof} 155 | 156 | 网友kuing提出,椭圆和双曲线有统一的类似的漂亮写法,因为 157 | \begin{align*} 158 | (a^2+b^2)(u^2+v^2) & = (au+bv)^2+(av-bu)^2 \geqslant (au+bv)^2 \\ 159 | (a^2-b^2)(u^2-v^2) & = (au-bv)^2-(av-bu)^2 \leqslant (au-bv)^2 160 | \end{align*} 161 | 所以 162 | \begin{align*} 163 | \left( \frac{x_0^2}{a^2}+\frac{y_0^2}{b^2} \right) \left( \frac{x_T^2}{a^2}+\frac{y_T^2}{b^2} \right) & \geqslant \left( \frac{x_0x_T}{a^2}+\frac{y_0y_T}{b^2} \right)^2 \\ 164 | \left( \frac{x_0^2}{a^2}-\frac{y_0^2}{b^2} \right) \left( \frac{x_T^2}{a^2}-\frac{y_T^2}{b^2} \right) & \leqslant \left( \frac{x_0x_T}{a^2}-\frac{y_0y_T}{b^2} \right)^2 165 | \end{align*} 166 | 如此证法将更为漂亮。 167 | 168 | \begin{theorem} 169 | 抛物线$y^2=2px(p>0)$上任一点$P(x_0,y_0)$处的切线方程是$y_0y=p(x+x_0)$. 170 | \end{theorem} 171 | 172 | \begin{proof}[证明] 173 | 在直线$y_0y=p(x+x_0)$上任取一点$Q(x_T,y_T)$,则 174 | \[ y_T^2+y_0^2 \geqslant 2y_Ty_0=2p(x_T+x_0) \] 175 | 而$y_0^2=2px_0$,所以得$y_T^2 \geqslant 2px_T$,且等号仅在$y_T=y_0$时成立,这表明点$P$是该直线与抛物线的唯一公共点,即为切线。 176 | \end{proof} 177 | 178 | %%% Local Variables: 179 | %%% mode: latex 180 | %%% TeX-master: "../../elementary-math-note" 181 | %%% End: 182 | -------------------------------------------------------------------------------- /content/plane-geometry/curve-and-equation.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{曲线、曲面与方程} 3 | \label{sec:curve-and-equation} 4 | 5 | 在笛卡尔坐标几何创立之前,几何学与代数学是两个研究对象和研究方法都各自独立的学科,彼此之间并无多少实质性的联系,几何学历来以难著称,层出不穷的几何证明技巧,惊为神来之笔的各种几何辅助线给人以深刻的印象,但是一直以来,缺乏一种通用的或者说万能的方法来处理几何问题。 6 | 7 | 古希腊数学家阿波罗尼奥斯的名著《圆锥曲线论》将古典几何推向了一个巅峰,该书利用几何方法将圆锥曲线的性质几乎一网打尽,以致于后人在长达两千余年间没能在这个领域有多少重大发现。但笛卡尔的坐标几何改变了这一点。在笛卡尔的坐标思想中,利用坐标来刻画点的位置,于是位置、距离、角度等几何量统统被坐标量化,于是产生了一种新的研究几何学的方法,就是利用纯粹的代数运算来证明几何性质,这就是 \emph{解析几何},利用这种新的方法,人们又发现了圆锥曲线的一些新的性质,对圆锥曲线的研究才又有了新的突破性发展。 8 | 9 | \subsection{曲线与曲面的方程、方程的曲线或曲面} 10 | \label{sec:equation-of-curve-and-curve-of-equation} 11 | 12 | 今后所称曲线,是通指线型的几何图形,包括直线,只是按一般情形进行通称,并不意味曲线是弯曲的。 13 | 14 | \begin{definition} 15 | 在建立了直角坐标系的平面中,对于曲线$C$和方程$f(x,y)=0$,如果 16 | \begin{enumerate} 17 | \item 曲线上任一点$P(x_P,y_P)$,其坐标都满足方程$f(x,y)=0$,即$f(x_P,y_P)=0$. 18 | \item 任一个坐标满足方程$f(x,y)=0$的点$P(x_p,y_p)$都在曲线$C$上. 19 | \end{enumerate} 20 | 则称方程$f(x,y)=0$是曲线$C$的方程,而曲线$C$是方程$f(x,y)=0$的曲线。 21 | \end{definition} 22 | 23 | 类似的有空间曲面的方程,与方程的曲面的概念,这里的曲面同样也包括平面. 24 | 25 | \begin{definition} 26 | 在空间直角坐标系中,对于曲面$C$和方程$f(x,y,z)=0$,如果 27 | \begin{enumerate} 28 | \item 曲面上任一点$P(x_P,y_P,z_P)$,其坐标都满足方程$f(x,y,z)=0$,即$f(x_P,y_P,z_p)=0$. 29 | \item 任一个坐标满足方程$f(x,y,z)=0$的点$P(x_p,y_p,z_p)$都在曲面$C$上. 30 | \end{enumerate} 31 | 则称方程$f(x,y,z)=0$是曲面$C$的方程,而曲面$C$是方程$f(x,y,z)=0$的曲面。 32 | \end{definition} 33 | 34 | 方程$f(x,y)=0$或者$f(x,y,z)=0$称为曲线或曲面的 \emph{普通方程},实际上很多曲线难以用普通方程表达出来,而更常用的是 \emph{参数方程}. 35 | 36 | \begin{definition} 37 | 如果曲线$C$上任一点的坐标,都是某个数$t$的函数,即 38 | \[ \left\{ 39 | \begin{array}{lll} 40 | x & = & x(t) \\ 41 | y & = & y(t) \\ 42 | z & = & z(t) 43 | \end{array} 44 | \right. \] 45 | 则称该方程(组)是曲线$C$的\emph{参数方程},类似的,如果曲面上任一点的坐标,都是两个参数$t$和$s$的二元函数,即 46 | \[ \left\{ 47 | \begin{array}{lll} 48 | x & = & x(t, s) \\ 49 | y & = & y(t, s) \\ 50 | z & = & z(t, s) 51 | \end{array} 52 | \right. \] 53 | 则称该方程(组)是曲面的 \emph{参数方程}. 54 | \end{definition} 55 | 56 | \subsection{直线和平面的方程} 57 | \label{sec:equation-of-line-and-plane} 58 | 59 | 先来考虑平面上直线的方程,为此先给出直线的方向向量和法向量的定义. 60 | 61 | \begin{definition} 62 | 能够与直线上两点所确定的向量共线的非零向量,称为该直线的 \emph{方向向量},而能与直线的方向向量垂直的向量,称为该直线的 \emph{法向量}。 63 | \end{definition} 64 | 65 | \begin{definition} 66 | 对于空间中的一张平面,凡能与平面内两点所确定的向量共线的非零向量称为该平面的\emph{方向向量},即由方向向量决定的直线族与平面只能是平行或包含的关系。 67 | \end{definition} 68 | 69 | \begin{definition} 70 | 空间中,如果直线与平面垂直,则直线称为平面的\emph{法线},而平面称为直线的\emph{法平面},与平面的法线共线的向量称为平面的\emph{法向量}。 71 | \end{definition} 72 | 73 | 方向向量和法向量均唯一的确定了直线的走向。 74 | 75 | 为了确定直线,除了直线的走向,还需要确定直线的位置,于是再给出直线上的一个点就行了,所以先来考虑,给定直线$l$的方向向量$\bm{v}=(a,b)$及直线上一点$P(x_0,y_0)$的情形下,直线的方程。 76 | 77 | 设直线上任一点的坐标是$Q(x,y)$,于是有$\vv{PQ}$与方向向量$\bm{v}$共线,于是按照\autoref{theorem:collinear-vector-codrnation}在平面上的结论,就有 78 | \[ \frac{x-x_0}{a} = \frac{y-y_0}{b} \] 79 | 显然,凡满足此方程的任一对坐标所对应的点,其与点$P$所构成的向量也与方向向量$\bm{v}$共线,从而也必然在直线$l$上,因此这个方程就是所要求的,它称为直线的 \emph{点向式方程},在分母为零时约定分子也为零。 80 | 81 | 同理,对于空间中由方向向量$\bm{v}=(a,b,c)$及直线上一点$P(x_0,y_0,z_0)$所确定的直线的方程是 82 | \[ \frac{x-x_0}{a} = \frac{y-y_0}{b} = \frac{z-z_0}{c} \] 83 | 显然这并不是一个方程,而是一个方程组,这就是说,空间中的直线,需要两个三元一次方程来确定。 84 | 85 | 因为直线只需要两个点就可以唯一确定,所以考虑在平面上由两个点$A(x_1,y_1)$和$B(x_2,y_2)$所确定的直线的方程,因为这时方向向量是$\vv{AB}=(x_1-x_2,y_1-y_2)$,所以应用刚才得出的点向式方程(同时还过点$A$),得出直线方程是 86 | \[ \frac{x-x_1}{x_1-x_2} = \frac{y-y_1}{y_1-y_2} \] 87 | 这便是直线的\emph{两点式方程},一个特殊情况是,经过$A(a,0)$和$B(0,b)$两点的直线方程是 88 | \[ \frac{x}{a}+\frac{y}{b}=1 \] 89 | 这里的$A$和$B$两点分别是直线与两个坐标轴的交点,而数$a$和$b$分别称为直线在两个坐标轴上的\emph{截距}(即截点到原点的代数距离),所以这方程称为直线的\emph{截距式方程}. 90 | 91 | 同理可得空间中,经过两点$A(x_1,y_1,z_1)$和$B(x_2,y_2,z_2)$的直线方程是 92 | \[ \frac{x-x_1}{x_1-x_2} = \frac{y-y_1}{y_1-y_2} = \frac{z-z_1}{z_1-z_2} \] 93 | 94 | 接着再来考虑由直线上一点$P(x_0,y_0)$及它的法向量$\bm{n}=(a,b)$所确定的直线的方程,设直线上任一点$Q(x,y)$,则有$\bm{n} \perp \vv{PQ}$,所以$\bm{n} \cdot \vv{PQ} = 0$,即 95 | \[ a(x-x_0)+b(y-y_0)=0 \] 96 | 这就是所要求的,它称为直线的 \emph{点法式方程}. 97 | 98 | 对于空间中的直线,显然一条法向量并不足以确定它的走向,需要两个不共线的法向量(均与法平面垂直,法平面是指与直线垂直的平面),设两个法向量分别是$\bm{n_1}=(a_1,b_1,c_1)$和$\bm{n_2}=(a_2,b_2,c_2)$,同样求内积为零可得出 99 | \[ \left\{ 100 | \begin{array}{lll} 101 | a_1(x-x_0) + b_1(y-y_0) + c_1(z-z_0) & = & 0 \\ 102 | a_2(x-x_0) + b_2(y-y_0) + c_2(z-z_0) & = & 0 103 | \end{array} 104 | \right. \] 105 | 这再一次验证了空间直线需要两个三元一次方程才能确定,实际上接下来会看到,一个三元一次方程代表空间中的一张平面,而直线则是两个平面的交线。 106 | 107 | 还是回头考虑由直线上一点$P(x_0,y_0)$和直线的方向向量$\bm{v}=(a,b)$所确定的直线,对于直线上任一点$Q(x,y)$,由$\bm{v}$与$\vv{PQ}$共线,存在唯一实数$t$,使得$\vv{PQ}=t\bm{v}$,展开坐标就是 108 | \[ \left\{ 109 | \begin{array}{lll} 110 | x & = & x_0 + at \\ 111 | y & = & y_0 + bt 112 | \end{array} 113 | \right. \] 114 | 可见,直线上任一点均由参量$t$的不同取值决定,$t$的取值与直线上的点构成一一对应的关系,所以这个方程组就是直线的 \emph{参数方程}. 115 | 116 | 同样,对于空间直线上任一点$P(x_0,y_0,z_0)$及其方向向量$\bm{v}=(a,b,c)$所确定的直线的参数方程是 117 | \[ \left\{ 118 | \begin{array}{lll} 119 | x & = & x_0 + at \\ 120 | y & = & y_0 + bt \\ 121 | z & = & z_0 + ct 122 | \end{array} 123 | \right. \] 124 | 125 | 接着讨论空间平面的方程,类似于平面上的直线,平面由其法向量$\bm{n}=(a,b,c)$及平面上一点$P(x_0,y_0,z_0)$所唯一确定,设$Q(x,y)$是该平面上任一点,则$\bm{n} \perp \vv{PQ}$,于是$\bm{n} \cdot \vv{PQ}=0$,所以 126 | \[ a(x-x_0)+b(y-y_0)+c(z-z_0)=0 \] 127 | 这称为平面的 \emph{点法式方程}。 128 | 129 | 如果要用方向向量而不是法向量,则平面需要两个不共线的方向向量才能唯一确定平面的倾斜方向,设两个方向向量是$\bm{v_1}=(a_1,b_1,c_1)$和$\bm{v_2}=(a_2,b_2,c_2)$,则对于平面上任一点$Q(x,y,z)$,有$\vv{PQ}$与$\bm{v_1}$及$\bm{v_2}$共面,由\autoref{theorem:coplanear-vector-cordination}可得 130 | \[ 131 | \begin{vmatrix} 132 | x-x_0 & y-y_0 & z-z_0 \\ 133 | a_1 & b_1 & c_1 \\ 134 | a_2 & b_2 & c_2 135 | \end{vmatrix} 136 | =0 137 | \] 138 | 或者展开成为 139 | \[ 140 | \begin{vmatrix} 141 | b_1 & c_1 \\ 142 | b_2 & c_2 143 | \end{vmatrix} 144 | (x-x_0) - 145 | \begin{vmatrix} 146 | a_1 & c_1 \\ 147 | a_2 & c_2 148 | \end{vmatrix} 149 | (y-y_0) + 150 | \begin{vmatrix} 151 | a_1 & b_1 \\ 152 | a_2 & b_2 153 | \end{vmatrix} 154 | (z-z_0) = 0 155 | \] 156 | 这两个方程就是平面的 \emph{点向式方程}. 157 | 158 | 而由$\vv{PQ}$与$\bm{v_1}$及$\bm{v_2}$共面,存在唯一一对实数$u$和$v$,使得$\vv{PQ}=u \bm{v_1} + v \bm{v_2}$,写成坐标形式就是 159 | \[ 160 | \left\{ 161 | \begin{array}{lll} 162 | x & = & x_0 + u a_1 + v a_2 \\ 163 | y & = & y_0 + u b_1 + v b_2 \\ 164 | z & = & z_0 + u c_1 + v c_2 165 | \end{array} 166 | \right. 167 | \] 168 | 这就是平面的 \emph{参数方程}. 169 | 170 | 在上面看到,平面上的直线方程都是二元一次方程,空间中的平面方程也都是三元一次方程,那反过来,是否每一个二元一次方程和每一个三元一次方程都分别代表二维平面上的一条直线和空间中的一张平面呢? 171 | 172 | 二元一次方程的一般形式是$Ax+By+C=0$,其中$A$、$B$不同时为零,假定$A \neq 0$,则点$P(-\dfrac{C}{A},0)$在这方程所表示的图形上,于是方程可改写为 173 | \[ A(x+\frac{C}{A})+B(y-0)=0 \] 174 | 显然这表示通过点$P$并以$\bm{n}=(A,B)$为法向量的直线,所以它必然表示一条直线,方程$Ax+By+C=0$便称为平面上直线的 \emph{一般方程}。 175 | 176 | 同样,在空间中,三元一次方程$Ax+By+Cz+D=0$中,$A$、$B$、$C$不同时为零,假定$A \neq 0$,于是它便是通过点$P(-\dfrac{D}{A},0,0)$并以$\bm{n}=(A,B,C)$为法向量的平面,它便称为空间平面的 \emph{一般方程}. 177 | 178 | \subsection{圆和球面的方程} 179 | \label{sec:equation-of-circle-and-ball} 180 | 181 | 在平面直角坐标系中,设某圆的圆心坐标坐标是$C(a,b)$,半径为$r$,则对于圆上任一点$P(x,y)$,有$|PC|=r$,即$\sqrt{(x-a)^2+(y-b)^2}=r$,这等价于 182 | \[ (x-a)^2+(y-b)^2=r^2 \] 183 | 反过来,如果某个点$Q$的坐标满足上述方程,则两边开方就得出$|QC|=r$,即点$Q$必在此圆上,所以这个方程就是以点$(a,b)$为圆心,$r$为半径的圆的方程,它称为圆的 \emph{标准方程}. 184 | 185 | 将圆的标准方程展开,得到一个关于$x$和$y$的二元二次方程 186 | \[ x^2+y^2-2ax-2ay+a^2+b^2-r^2=0 \] 187 | 这方程具有几个特点:(I)$x^2$与$y^2$项系数相同,(II)不含$xy$项. 对于满足这两个条件的一般的二元二次方程(将$x^2$和$y^2$系数化为1) 188 | \[ x^2+y^2+Dx+Ey+F=0 \] 189 | 它可以配方成为 190 | \[ \left( x+\frac{D}{2} \right)^2 + \left( y+\frac{E}{2} \right)^2 = \frac{1}{4}(D^2+E^2-4F) \] 191 | 显然在$D^2+E^2-4F>0$时它表示以$\left( -\dfrac{D}{2}, -\dfrac{E}{2} \right)$为圆心,以$\sqrt{D^2+E^2-4F}$为半径的圆,于是一般的二元二次方程需要满足三个条件才能成为圆的方程,上面特殊形式的二元二次方程称为圆的 \emph{一般方程}。 192 | 193 | 类似的可以得到,空间中以点$C(a,b,c)$为球心,$r$为半径的球面方程是 194 | \[ (x-a)^2+(y-b)^2+(z-c)^2=r^2 \] 195 | 196 | 对于以$C(a,b)$为圆心,$r$为半径的圆,由圆心沿$x$轴正方向所确定的点是$A(a+r,b)$,对圆心上其它任意一点$Q(x,y)$,可以视为由点$A$绕圆心旋转一定的角度$\theta$而得到,于是按三角函数的定义有$\cos{\theta}=\dfrac{x-a}{r},\sin{\theta}=\dfrac{y-b}{r}$,于是得到 197 | \[ \left\{ 198 | \begin{array}{lll} 199 | x & = & a + r \cos{\theta} \\ 200 | y & = & b + r \sin{\theta} 201 | \end{array} 202 | \right. \] 203 | 这就是圆的 \emph{参数方程}. 204 | 205 | 再来考虑球面的参数方程,设球心是$C(a,b,c)$,半径为$r$,过球心作$xOy$平面的平行平面$\alpha$,点$A(a+r,b,c)$是该平面与球面交线上的一个点,设$Q(x,y,z)$是球面上任一点,设射线$OQ$与平面$\alpha$的夹角是$\theta$,过点$Q$再作平面$xOy$的平行平面$\beta$,与球面交成一个纬线圈,则点$Q$可由点$A$经过两次旋转而得到,第一次旋转由点$A$出发沿着经线圈旋转一个角度到达点$Q$所在的纬线圈上的点$M$,显然旋转角度就是$\theta$,再由$M$出发沿着该纬线圈旋转一个角度$\varphi$到达点$Q$,于是点$Q$所决定的纬线圈的圆心坐标是$K(a,b,c+r\sin{\theta})$,半径是$r\cos{\theta}$,于是由圆的参数方程有 206 | \[ \left\{ 207 | \begin{array}{lll} 208 | x_Q & = & x_k + r \cos{\theta}\cos{\varphi} \\ 209 | y_Q & = & y_k + r \cos{\theta}\sin{\varphi} \\ 210 | z_Q & = & z_k 211 | \end{array} 212 | \right. \] 213 | 于是得出球面的参数方程是 214 | \[ \left\{ 215 | \begin{array}{lll} 216 | x_Q & = & a + r \cos{\theta}\cos{\varphi} \\ 217 | y_Q & = & b + r \cos{\theta}\sin{\varphi} \\ 218 | z_Q & = & c+r\sin{\theta} 219 | \end{array} 220 | \right. \] 221 | 222 | 223 | 224 | %%% Local Variables: 225 | %%% mode: latex 226 | %%% TeX-master: "../../elementary-math-note" 227 | %%% End: 228 | -------------------------------------------------------------------------------- /content/plane-geometry/exercises.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{题集} 3 | 4 | \begin{exercise} 5 | \label{exercise:2016-06-24-1} 6 | 如图,在三角形$ABC$中,$AO$是$BC$边上的高,$D$是$AO$的中点,点$E$是其内切圆$\odot I$与$BC$边的切点,连接$ED$并延长与内切圆相交于另一点$F$,过点$C$并与$BC$垂直的直线与$BI$的延长线相交于$G$,求证:(1) $EF \perp FG$,(2)$EF$平分角$BFC$。 7 | \end{exercise} 8 | 9 | \begin{figure}[htbp] 10 | \centering 11 | \includegraphics{content/plane-geometry/pic/2016-06-24-1.pdf} 12 | \caption{} 13 | \label{fig:2016-06-24-1} 14 | \end{figure} 15 | 16 | \begin{exercise} 17 | (姚佳斌供题)如\autoref{fig:exercise-ahk-coline},在$\triangle ABC$中,点$H$是垂心,$AD$是$BC$边上的中线,过$H$作$AD$的垂线,分别与$AC$、$AB$边相交于$E$、$F$,连结$BE$、$CF$相交于点$K$,求证 $A$、$H$、$K$三点共线。 18 | \end{exercise} 19 | 20 | \begin{figure}[htbp] 21 | \centering 22 | \includegraphics{content/plane-geometry/pic/exercise-ahk-coline.pdf} 23 | \caption{} 24 | \label{fig:exercise-ahk-coline} 25 | \end{figure} 26 | 27 | \begin{proof}[证明] 28 | 只要证明$BE$、$CF$、$AH$三线共点就可以了,设$BC$边上的高线垂足是$M$,由塞瓦定理,只需证 29 | \[ \frac{AF}{FB} \cdot \frac{BM}{MC} \cdot \frac{CE}{EA} = 1 \] 30 | 延长$FE$与$BC$边延长线相交于点$P$,再设$EF$与$AD$交点为$L$,则对$\triangle ABC$和截线$FEP$应用梅涅劳斯定理得 31 | \[ \frac{AF}{FB} \cdot \frac{BP}{PC} \cdot \frac{CE}{EA} = 1 \] 32 | 所以只需要证明下式就可以了: 33 | \[ \frac{BM}{MC} = \frac{BP}{PC} \] 34 | 现在就来证明这一点,易知$L$、$D$、$M$、$H$四点共圆,所以 35 | \[ AL \cdot AD = AH \cdot AM \] 36 | 又易知$A$、$L$、$M$、$P$四点共圆,所以 37 | \[ DL \cdot DA = DM \cdot DP \] 38 | 这两式相加得 39 | \[ AD^2 = AH \cdot AM + DM \cdot DP \] 40 | 以下就来从这式中求出$DP$,易知 41 | \begin{eqnarray*} 42 | AD^2 & = & \frac{1}{2}(b^2+c^2)-\frac{1}{4}c^2 \\ 43 | AH & = & \frac{\cos{A}}{\sin{B}}b \\ 44 | AM & = & c \sin{B} \\ 45 | DM & = & \frac{1}{2}a-b \cos{C} 46 | \end{eqnarray*} 47 | 全部代入前式中即得 48 | \[ DP = \frac{a^2}{2(a-2b\cos{C})} \] 49 | 进而(结合余弦定理) 50 | \begin{eqnarray*} 51 | BP & = & DP+\frac{a}{2} = \frac{a^2+c^2-b^2}{2(a-2b\cos{C})} \\ 52 | PC & = & DP-\frac{a}{2} = \frac{a^2+b^2-c^2}{2(a-2b\cos{C})} 53 | \end{eqnarray*} 54 | 于是 55 | \[ \frac{BP}{PC} = \frac{a^2+c^2-b^2}{a^2+b^2-c^2} = \frac{2ac\cos{B}}{2ab\cos{C}} = \frac{c\cos{B}}{b\cos{C}} = \frac{BM}{MC} \] 56 | 得证。 57 | \end{proof} 58 | 59 | 60 | \begin{exercise} 61 | \label{ec:2017-02-09-01} 62 | 如图\ref{fig:2017-02-09-01-01},分别以三角形$ABC$的边$AB$和$AC$向形外作正方形,两个正方形的中心分别记为$O_{1}$和$O_{2}$,$X$是$BC$边中点,其余各点的意义如图所示,求证: 63 | \begin{enumerate} 64 | \item 三角形$O_{1}XO_{2}$是等腰直角三角形. 65 | \item $ST \parallel PQ$. 66 | \end{enumerate} 67 | \end{exercise} 68 | 69 | \begin{figure}[htbp] 70 | \centering 71 | \includegraphics{content/plane-geometry/pic/ec-2017-02-09-01.pdf} 72 | \caption{} 73 | \label{fig:2017-02-09-01-01} 74 | \end{figure} 75 | 76 | \begin{proof}[证明] 77 | 易见$\triangle ACE \cong \triangle AGB$,而$O_{1}X \parallel EC$并且$|O_{1}X|=\frac{1}{2}|EC|$,同样$O_2X \parallel BG$并且$|O_2X|=\frac{1}{2}|BG|$,但是$EC=BG$,并且$EC \perp BG$,所以$O_1X=O_2X$并且$O_1X \perp O_2X$,所以$\triangle O_{1}XO_{2}$是等腰直角三角形. 78 | 79 | 第二问的最简单证法是设$DE$延长线与$CA$延长线交于$U$,$FG$延长线与$BA$延长线交于$V$,则有 $\triangle AEU \sim \triangle AGV$,于是 80 | \begin{equation*} 81 | \frac{AS}{SP}=\frac{UE}{ED}=\frac{UE}{EA}=\frac{VG}{GA}=\frac{VG}{GF}=\frac{AT}{TQ} 82 | \end{equation*} 83 | 所以$ST \parallel PQ$. 84 | 85 | \begin{figure}[htbp] 86 | \centering 87 | \includegraphics{content/plane-geometry/pic/2017-02-09-01-02.pdf} 88 | \caption{} 89 | \label{fig:2017-02-09-01-02} 90 | \end{figure} 91 | 92 | 如果注意到图中包含着两个同样的基本图形,则可以有如下的证明,先提一个引理:如图\ref{fig:2017-02-09-01-02},设点$P$为正方形$ABCD$的边$AB$外侧一点,$PC$与$PD$分别与边$AB$相交于$S$和$T$,记$\angle PAB=\alpha, \angle PBA=\beta$,则有 93 | \begin{equation*} 94 | AT : TS : SB = \cos{\alpha}\sin{\beta} : \sin{\alpha}\sin{\beta} : \sin{\alpha}\cos{\beta} 95 | \end{equation*} 96 | 利用此引理知,$AT:TS$仅与角$\alpha$有关,因此在原题中立刻便有$\frac{AS}{SP}=\frac{AT}{TQ}$,因此两线平行,而这个引理的证明也很简单,记点$P$在边$AB$上的投影为$R$,并假定正方形边长为1,并记$PB=a, PA=b$,根据正弦定理可得 97 | \begin{equation*} 98 | \frac{a}{\sin{\alpha}}=\frac{1}{\sin{(\alpha+\beta)}}=\frac{b}{\sin{\beta}} 99 | \end{equation*} 100 | 于是 101 | \begin{equation*} 102 | a=\frac{\sin{\alpha}}{\sin{(\alpha+\beta)}}, b=\frac{\sin{\beta}}{\sin{(\alpha+\beta)}} 103 | \end{equation*} 104 | 根据几何关系有 105 | \begin{equation*} 106 | AR=b\cos{\alpha}=\frac{\cos{\alpha}\sin{\beta}}{\sin{(\alpha+\beta)}}, PR=b\sin{\alpha}=\frac{\sin{\beta}}{\sin{(\alpha+\beta)}} 107 | \end{equation*} 108 | 而由$\frac{TR}{AT}=\frac{PR}{AD}$得 109 | \begin{eqnarray*} 110 | AT &=& \frac{AT}{AT+TR}AR=\frac{1}{1+\frac{TR}{AT}}AR 111 | = \frac{1}{1+\frac{\sin{\alpha}\sin{\beta}}{\sin{(\alpha+\beta)}}} \cdot \frac{\cos{\alpha}\sin{\beta}}{\sin{(\alpha+\beta)}} \\ 112 | &=& \frac{\cos{\alpha}\sin{\beta}}{\sin{\alpha}\sin{\beta}+\sin{(\alpha+\beta)}} 113 | \end{eqnarray*} 114 | 根据对称性,互换$\alpha$和$\beta$可得 115 | \begin{equation*} 116 | BS = \frac{\sin{\alpha}\cos{\beta}}{\sin{\alpha}\sin{\beta}+\sin{(\alpha+\beta)}} 117 | \end{equation*} 118 | 于是 119 | \begin{equation*} 120 | TS = \frac{\sin{\alpha}\sin{\beta}}{\sin{\alpha}\sin{\beta}+\sin{(\alpha+\beta)}} 121 | \end{equation*} 122 | 于是引理得证。 123 | \end{proof} 124 | 125 | \begin{exercise}\footnote{2017年北京大学中学生数学奖个人能力挑战赛试题.} 126 | 如\autoref{fig:exercise-pi-perp-mn},三角形$ABC$的内切圆$\odot I$与三边分别相切于$D$、$E$、$F$,线段$BE$与线段$CF$相交于点$P$,直线$DE$与直线$BA$相交于点$M$,直线$DF$与直线$CA$相交于点$N$,求证: $PI \perp MN$. 127 | 128 | \begin{figure}[htbp] 129 | \centering 130 | \includegraphics{content/plane-geometry/pic/exercise-pi-perp-mn.pdf} 131 | \caption{} 132 | \label{fig:exercise-pi-perp-mn} 133 | \end{figure} 134 | 135 | \end{exercise} 136 | 137 | \begin{exercise} 138 | 若$\triangle ABC$中成立$b+c=2a$,求证$OI \perp AI$,其中$O$和$I$分别表外心和内心。 139 | \end{exercise} 140 | 141 | \exerciseFrom[\url{http://kuing.orzweb.net/viewthread.php?tid=4728}] 142 | 143 | \exerciseSolvedDate[2017-06-29] 144 | 145 | \begin{proof}[证明一] 146 | 只需证明$AO^2=OI^2+AI^2$,记外接圆半径和内切圆半径分别为$R$和$r$,由几何关系及欧拉公式有 147 | \[ AO=R, \ OI^2=R^2-2Rr, \ AI=\frac{r}{\sin{\frac{A}{2}}} \] 148 | 以上三式代入勾股式后知只需证 149 | \[ \frac{r}{R}=2\sin^2{\frac{A}{2}} \] 150 | 而 151 | \[ R=\frac{a}{2\sin{A}} \] 152 | 和 153 | \[ r=\frac{1}{2}(b+c-a)\tan{\frac{A}{2}}=\frac{1}{2}a\tan{\frac{A}{2}} \] 154 | 由此二式便知要证的等式成立。 155 | \end{proof} 156 | 157 | \begin{proof}[证明二](魏子豪) 158 | 159 | 设角平分线$AI$交$BC$边于$E$,交外接圆于另一点$D$,则易证$AI=2IE$,又$DC:DE=BA:BE=2:1$以及$DC=DI$知$IE=ED$,于是$I$为$AD$中点,于是由垂径定理,$AI \perp AD$. 160 | \end{proof} 161 | 162 | %%% Local Variables: 163 | %%% mode: latex 164 | %%% TeX-master: "../../elementary-math-note" 165 | %%% End: 166 | -------------------------------------------------------------------------------- /content/plane-geometry/para-curve.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{抛物线} 3 | \label{sec:para-curve} 4 | 5 | \begin{property} 6 | 如\autoref{fig:parabola-focus-chord-three-line-intersection}所示,过抛物线对称轴上焦点外侧任一点$D$,分别向过焦点$F$的弦$MN$的两个端点引直线,分别与准线相交于点$P$和$Q$,准线与对称轴的交点是$R$,那么: (1)直线$DR$、$PN$、$QM$三线共点(设为点$T$),(2)对称轴上的四点$R$、$T$、$F$、$D$构成调和点列。 7 | \end{property} 8 | 9 | \begin{figure}[htbp] 10 | \centering 11 | \includegraphics{content/plane-geometry/pic/parabola-focus-chord-three-line-intersection.pdf} 12 | \caption{抛物线焦点弦的一个性质} 13 | \label{fig:parabola-focus-chord-three-line-intersection} 14 | \end{figure} 15 | 16 | \begin{proof}[证明] 17 | (1) 由塞瓦定理,只需证 18 | \begin{equation} 19 | \label{eq:parabola-focus-chord-three-line-intersection-ceva} 20 | \frac{DN}{NQ} \cdot \frac{QR}{RP} \cdot \frac{PM}{MD} = 1 21 | \end{equation} 22 | 设点$N$在准线上的投影是$N_0$,则有$NF=NN_0$,再设点$N$在抛物线对称轴上的投影是$N_1$,则 23 | \[ \frac{DN}{NQ} = \frac{NN_1}{QN_0} = \frac{NN_1}{NF} \cdot \frac{NN_0}{QN_0} = \sin{\angle NFD} \cdot \tan{\angle DQP} \] 24 | 同理可得 25 | \[ \frac{DM}{MP} = \sin{\angle MFR} \cdot \tan{\angle DPQ} \] 26 | 而显然$\angle NFD = \angle MFR$,而且 27 | \[ \frac{QR}{RP} = \frac{\frac{DR}{RP}}{\frac{DR}{QR}} = \frac{\tan{\angle DPQ}}{\tan{\angle DQP}} \] 28 | 因此式\ref{eq:parabola-focus-chord-three-line-intersection-ceva}成立,结论得证。 29 | 30 | (2) 对 $\triangle QRD$ 和截线$PTN$ 使用梅涅劳斯定理得 31 | \[ \frac{DN}{NQ} \cdot \frac{QP}{PR} \cdot \frac{RT}{TD} = 1 \] 32 | 再对 $\triangle PRD$ 和截线 $QTM$ 使用梅涅劳斯定理得 33 | \[ \frac{DM}{MP} \cdot \frac{PQ}{QR} \cdot \frac{RT}{TD} = 1 \] 34 | 由此二式便得 35 | \[ \frac{RT}{TD} \left( \frac{DN}{NQ} + \frac{DM}{MP} \right) = 1 \] 36 | 记$\angle NFD=\theta$,$\angle DQP=\alpha$,$\angle DPQ=\beta$,则由(1)的证明过程中所得结果可得 37 | \[ \frac{DN}{NQ} + \frac{DM}{MP} = \sin{\theta} (\tan{\alpha} + \tan{\beta}) \] 38 | 记$DF=d$,有熟知的焦半径 39 | \[ NF=\frac{p}{1-\cos{\theta}}, \ MF = \frac{p}{1+\cos{\theta}} \] 40 | 由几何关系得 41 | \[ \tan{\alpha} = \tan{\angle DNN_1} = \frac{DN_1}{NN_1} = \frac{DF-NF\cos{\theta}}{NF \sin{\theta}} = \frac{d(1-\cos{\theta})-p\cos{\theta}}{p\sin{\theta}} \] 42 | 同理可得 43 | \[ \tan{\beta} = \frac{d(1+\cos{\theta})+p\cos{\theta}}{p\sin{\theta}} \] 44 | 由此二式便得 45 | \[ \sin{\theta}(\tan{\alpha} + \tan{\beta}) = \frac{2d}{p} \] 46 | 即 47 | \[ \frac{DN}{NQ} + \frac{DM}{MP} = \frac{2d}{p} \] 48 | 所以 49 | \[ \frac{RT}{TD} = \frac{p}{2d} \] 50 | 由此便知,当抛物线和点$D$的位置确定后,点$T$的位置便固定下来,与焦点弦的具体位置无关,由上式不难求得 51 | \[ RT = \frac{p(p+d)}{p+2d}, \ TF=\frac{dp}{p+2d} \] 52 | 于是 53 | \[ \frac{RT}{TF} = \frac{p+d}{d} = \frac{RD}{DF} \] 54 | 所以这四点为调和点列. 55 | \end{proof} 56 | 57 | %%% Local Variables: 58 | %%% TeX-master: "../../elementary-math-note" 59 | %%% End: 60 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/2016-06-24-1.asy: -------------------------------------------------------------------------------- 1 | 2 | import math; 3 | import geometry; 4 | import graph; 5 | 6 | size(200,200); 7 | 8 | // defaultpen(linewidth(0.7)); 9 | 10 | pair o=(0,0); 11 | pair a=(0,2); 12 | pair b=(-1,0); 13 | pair c=(2,0); 14 | pair d=(0,1); 15 | 16 | label("$A$",a,N); 17 | label("$B$",b,W); 18 | label("$C$",c,E); 19 | label("$O$",o,S); 20 | label("$D$",d,W); 21 | 22 | draw(a--b--c--cycle,black); 23 | draw(a--o); 24 | 25 | circle c1=incircle(a,b,c); 26 | draw(c1,green); 27 | 28 | pair e=intersectionpoint(c1,b--c); 29 | label("$E$",e,S); 30 | 31 | line l1=line(e,d); 32 | pair[] ff=intersectionpoints(c1,l1); 33 | pair f=ff[1]; 34 | 35 | label("$F$",f,SW); 36 | draw(e--f); 37 | draw(b--f, dashed); 38 | draw(c--f, dashed); 39 | 40 | pair i=incenter(a,b,c); 41 | label("$I$",i,SE); 42 | 43 | line l2=line(b,i); 44 | 45 | pair pp=(2,2); 46 | line l3=line(c,pp); 47 | 48 | pair g=intersectionpoint(l2,l3); 49 | label("$G$",g,NE); 50 | draw(b--g); 51 | draw(c--g); 52 | draw(f--g); 53 | 54 | line ei=line(e,i); 55 | pair[] ffs=intersectionpoints(c1,ei); 56 | pair k=ffs[1]; 57 | label("$K$",k,N); 58 | draw(e--k, red+dashed); 59 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/2017-02-09-01-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhcosin/elementary-math/80347192870406565c51b5be51afe19d9d8f69eb/content/plane-geometry/pic/2017-02-09-01-01.png -------------------------------------------------------------------------------- /content/plane-geometry/pic/2017-02-09-01-02.asy: -------------------------------------------------------------------------------- 1 | import math; 2 | import geometry; 3 | import graph; 4 | 5 | size(180,180); 6 | 7 | pair p=(0.3,1.5); 8 | pair a=(0,1); 9 | pair b=(1,1); 10 | pair c=(1,0); 11 | pair d=(0,0); 12 | 13 | draw(a--b--c--d--cycle,black); 14 | draw("$b$",p--a); 15 | draw("$a$",p--b); 16 | draw(p--c); 17 | draw(p--d); 18 | 19 | label("$P$",p,N); 20 | label("$A$",a,W); 21 | label("$B$",b,E); 22 | label("$C$",c,E); 23 | label("$D$",d,W); 24 | 25 | 26 | pair t=intersectionpoint(p--d,a--b); 27 | label("$T$",t,SW); 28 | 29 | pair s=intersectionpoint(p--c,a--b); 30 | label("$S$",s,SE); 31 | 32 | pair r=(0.3,1); 33 | label("$R$",r,S); 34 | draw(p--r,dashed); 35 | 36 | label("$\alpha$",(0.1,1),N); 37 | label("$\beta$",(0.8,1),N); 38 | 39 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/apollonius-circle.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair P = (6, 8); 7 | pair A = (-5, 0); 8 | pair B = (5, 0); 9 | 10 | label("$P$", P, N); 11 | label("$A$", A, S); 12 | label("$B$", B, S); 13 | 14 | draw(A -- B); 15 | 16 | draw(P -- A); 17 | draw(P -- B); 18 | 19 | line pe = bisector(locate(P), locate(A), locate(P), locate(B)); 20 | pair E = intersectionpoint(pe, line(locate(A), locate(B))); 21 | label("$E$", E, SW); 22 | draw(P -- E, dashed); 23 | 24 | line pf = bisector(locate(P), locate(A), locate(P), locate(B), 90); 25 | pair F = intersectionpoint(pf, line(locate(A), locate(B))); 26 | label("$F$", F, SE); 27 | 28 | draw(B -- F); 29 | draw(P -- F, dashed); 30 | 31 | circle apollonius = circle(locate(E), locate(F)); 32 | draw(apollonius, red); 33 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/barycentric-of-triangle-vector.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(130); 5 | 6 | pair A = (-2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | pair D = midpoint(B -- C); 16 | label("$D$", D, S); 17 | pair E = midpoint(A -- B); 18 | label("$E$", E, NW); 19 | pair F = midpoint(A -- C); 20 | label("$F$", F, NE); 21 | 22 | draw(A -- D); 23 | draw(B -- F); 24 | draw(C -- E); 25 | 26 | pair G = interp(A, D, 2/3); 27 | label("$G$", G, SSW); 28 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/bezier-curve-contaied-by-median-trapezoid.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | 4 | size(150); 5 | 6 | pair A = (1, 3), B = (0, 0), C = (4, 0); 7 | label("$A$", A, N); 8 | label("$B$", B, SW); 9 | label("$C$", C, SE); 10 | draw(A -- B -- C -- cycle); 11 | 12 | pair E = midpoint(A -- B); 13 | pair F = midpoint(A -- C); 14 | label("$E$", E, NW); 15 | label("$F$", F, NE); 16 | draw(E -- F); 17 | 18 | pair f(real t) { 19 | return (1-t)^2*B + 2*t*(1-t)*A+t^2*C; 20 | } 21 | 22 | draw(graph(f, 0, 1), red); 23 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/bezier-curve-two-control-pt.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | 4 | size(180); 5 | 6 | pair Z0 = (0, 0), Z1 = (3, 0); 7 | pair C1 = (1, 1), C2 = (2, 1); 8 | label("$Z_0$", Z0, SW); 9 | label("$Z_1$", Z1, SE); 10 | label("$C_1$", C1, N); 11 | label("$C_2$", C2, N); 12 | 13 | draw(Z0 -- C1 -- C2 -- Z1); 14 | 15 | real t = 1/3; 16 | pair A1 = interp(Z0, C1, t); 17 | pair A2 = interp(C1, C2, t); 18 | pair A3 = interp(C2, Z1, t); 19 | label("$A_1$", A1, NW); 20 | label("$A_2$", A2, N); 21 | label("$A_3$", A3, NE); 22 | draw(A1 -- A2 -- A3); 23 | 24 | pair B1 = interp(A1, A2, t); 25 | pair B2 = interp(A2, A3, t); 26 | label("$B_1$", B1, NW); 27 | label("$B_2$", B2, NE); 28 | draw(B1 -- B2); 29 | 30 | pair Z = interp(B1, B2, t); 31 | label("$Z$", Z, S); 32 | 33 | 34 | pair f(real t) { 35 | return (1-t)^3*Z0 + 3*(1-t)^2*t*C1 + 3*(1-t)*t^2*C2 + t^3*Z1; 36 | } 37 | 38 | draw(graph(f, 0, 1), red); 39 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/bezier-curve.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | 4 | size(150); 5 | 6 | pair Z0 = (0, 0), Z1 = (4, 0), C = (1, 3); 7 | 8 | real t = 1/3; 9 | pair A = interp(Z0, C, t); 10 | pair B = interp(C, Z1, t); 11 | pair Z = interp(A, B, t); 12 | draw(Z0 -- C -- Z1); 13 | draw(A -- B); 14 | pair f(real t) { 15 | return (1-t)^2*Z0 + 2*t*(1-t)*C+t^2*Z1; 16 | } 17 | 18 | draw(graph(f, 0, 1), red); 19 | label("$A$", A, W); 20 | label("$B$", B, NE); 21 | label("$C$", C, N); 22 | label("$Z_0$", Z0, S+S); 23 | label("$Z_1$", Z1, SE); 24 | label("$Z$", Z, N); 25 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/centroid-of-triangle.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(130); 5 | 6 | pair A = (-2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | pair D = midpoint(B -- C); 16 | label("$D$", D, S); 17 | pair E = midpoint(A -- B); 18 | label("$E$", E, NW); 19 | pair F = midpoint(A -- C); 20 | label("$F$", F, NE); 21 | 22 | draw(A -- D); 23 | draw(B -- F); 24 | draw(C -- E); 25 | draw(E -- F, dashed); 26 | 27 | pair G = interp(A, D, 2/3); 28 | label("$G$", G, SSW); 29 | 30 | pair P = intersectionpoint(A -- D, E -- F); 31 | label("$P$", P, NE); 32 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/ceva-circle.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair O = (0, 0); 7 | real r = 5; 8 | circle co = circle(locate(O), r); 9 | draw(co); 10 | 11 | real theta1 = pi / 3, theta2 = (-1) * pi / 6, theta3 = (-1) * pi / 2; 12 | 13 | pair P = (-1, 0); 14 | 15 | point PT = locate(P); 16 | 17 | line ad = line(PT, 80); 18 | line be = line(PT, 30); 19 | line cf = line(PT, -30); 20 | 21 | point A = locate(intersectionpoints(ad, co)[0]); 22 | point D = locate(intersectionpoints(ad, co)[1]); 23 | label("$A$", A, SW); 24 | label("$D$", D, NE); 25 | draw(A -- D); 26 | 27 | point B = locate(intersectionpoints(be, co)[0]); 28 | point E = locate(intersectionpoints(be, co)[1]); 29 | label("$B$", B, SW); 30 | label("$E$", E, NE); 31 | draw(B -- E); 32 | 33 | point F = locate(intersectionpoints(cf, co)[0]); 34 | point C = locate(intersectionpoints(cf, co)[1]); 35 | label("$C$", C, W); 36 | label("$F$", F, SE); 37 | draw(C -- F); 38 | 39 | draw(A -- B -- C -- D -- E -- F -- cycle); 40 | 41 | draw(A -- C -- E -- cycle, dashed); 42 | 43 | pair X = intersectionpoint(A -- C, B -- E); 44 | label("$X$", X, NNE); 45 | pair Y = intersectionpoint(C -- E, D -- A); 46 | label("$Y$", Y, SE); 47 | pair Z = intersectionpoint(E -- A, F -- C); 48 | label("$Z$", Z, W); 49 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/ceva-theorem-extends.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, SE); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | pair D = interp(B, C, 0.7); 16 | label("$D$", D, S); 17 | draw(A -- D); 18 | 19 | pair E = interp(C, A, 0.6); 20 | label("$E$", E, NE); 21 | draw(B -- E); 22 | 23 | pair F = interp(A, B, 0.7); 24 | label("$F$", F, NW); 25 | draw(C -- F); 26 | 27 | pair X = intersectionpoint(B -- E, C -- F); 28 | label("$X$", X, S); 29 | 30 | pair Y = intersectionpoint(C -- F, A -- D); 31 | label("$Y$", Y, NE); 32 | 33 | pair Z = intersectionpoint(A -- D, B -- E); 34 | label("$Z$", Z, NW); 35 | 36 | fill(X -- Y -- Z -- cycle, gray); 37 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/cevian-theorem.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (-2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | real tb = 0.6; 16 | real tc = 0.4; 17 | 18 | pair Z = ((1-tb)*C.x+tb*A.x, (1-tb)*C.y+tb*A.y); 19 | label("$Z$", Z, NE); 20 | pair X = ((1-tc)*A.x+tc*B.x, (1-tc)*A.y+tc*B.y); 21 | label("$X$", X, NW); 22 | 23 | draw(B -- Z); 24 | draw(C -- X); 25 | 26 | pair P = intersectionpoint(B -- Z, C -- X); 27 | label("$P$", P, SSW); 28 | 29 | line ay = line(locate(A), locate(P)); 30 | 31 | pair Y = locate(intersectionpoint(ay, line(locate(B), locate(C)))); 32 | label("$Y$", Y, S); 33 | 34 | draw(A -- Y); 35 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/cevian-theorem2.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 5); 7 | label("$A$", A, NW); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (0, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | real tx = -0.4; 16 | real ty = 2; 17 | 18 | pair X = ((1-tx)*A.x+tx*B.x, (1-tx)*A.y+tx*B.y); 19 | label("$X$", X, E); 20 | pair Y = ((1-ty)*B.x+ty*C.x, (1-ty)*B.y+ty*C.y); 21 | label("$Y$", Y, SE); 22 | 23 | draw(A -- X); 24 | draw(C -- Y); 25 | 26 | draw(A -- Y); 27 | draw(C -- X); 28 | 29 | pair P = intersectionpoint(A -- Y, C -- X); 30 | label("$P$", P, E); 31 | draw(B -- P); 32 | 33 | pair Z = intersectionpoint(B -- P, A -- C); 34 | label("$Z$", Z, S); 35 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/cevian-theorem3.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 5); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | pair Y = interp(B, C, 0.6); 16 | label("$Y$", Y, S); 17 | draw(A -- Y); 18 | 19 | line cx = parallel(locate(C), line(locate(A), locate(Y))); 20 | pair X = locate(intersectionpoint(cx, line(locate(A), locate(B)))); 21 | label("$X$", X, NE); 22 | draw(A -- X); 23 | draw(C -- X); 24 | 25 | line az = parallel(locate(B), line(locate(A), locate(Y))); 26 | pair Z = locate(intersectionpoint(az, line(locate(A), locate(C)))); 27 | label("$Z$", Z, NW); 28 | draw(A -- Z); 29 | draw(B -- Z); 30 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/cosin-of-three-side-angle.asy: -------------------------------------------------------------------------------- 1 | 2 | settings.prc = false; 3 | import three; 4 | 5 | size(10cm, 0); 6 | 7 | real a = 1, b = 3, c = 2, d = 1; 8 | real u = 0.3, v = 0.6; 9 | 10 | // 绘制二面角 11 | // 三条平行线 12 | draw((-a, c, 0) -- (0, c, 0) -- (b, c, 0)); 13 | draw((-a, 0, 0) -- O -- (b, 0, 0)); 14 | draw((-a, -u * c, v * c) -- (0, -u * c, v * c) -- (b, -u * c, v * c)); 15 | // 连接边缘 16 | draw((-a, c, 0) -- (-a, 0, 0) -- (-a, -u * c, v * c)); 17 | draw((b, c, 0) -- (b, 0, 0) -- (b, -u * c, v * c)); 18 | 19 | label("$O$", O, N); 20 | label("$A$", 0.8 * (0.8 * b, 0.5 * c, 0), SE); 21 | label("$H$", (0.8 * 0.8 * b, 0, 0), S); 22 | label("$B$", 0.8 * 0.8 * (b, (-u) * c, v * c), NE); 23 | 24 | // 绘制两条射线 25 | draw(O -- (0.8 * b, 0.5 * c, 0)); 26 | draw(O -- 0.8 * (b, (-u) * c, v * c)); 27 | 28 | // 绘制二面角的平面角 29 | draw(0.8 * (0.8 * b, 0.5 * c, 0) -- (0.8 * 0.8 * b, 0, 0) -- 0.8 * 0.8 * (b, (-u) * c, v * c), blue); 30 | draw(0.8 * (0.8 * b, 0.5 * c, 0) -- 0.8 * 0.8 * (b, (-u) * c, v * c), blue); -------------------------------------------------------------------------------- /content/plane-geometry/pic/definite-proportion-inequality.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, SW); 12 | label("$C$", C, SE); 13 | 14 | draw(A -- B -- C -- cycle); 15 | 16 | real t = 0.4; 17 | pair D = ((1-t)*B.x+t*C.x, (1-t)*B.y+t*C.y); 18 | label("$D$", D, S); 19 | 20 | draw(A -- D); 21 | 22 | line de = parallel(locate(D), line(locate(A), locate(C))); 23 | line df = parallel(locate(D), line(locate(A), locate(B))); 24 | 25 | pair E = intersectionpoint(de, line(locate(A), locate(B))); 26 | pair F = intersectionpoint(df, line(locate(A), locate(C))); 27 | 28 | label("$E$", E, NW); 29 | label("$F$", F, NE); 30 | 31 | draw(D -- E, dashed); 32 | draw(D -- F, dashed); 33 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/distance-on-ball-accord-longitude-latitude.asy: -------------------------------------------------------------------------------- 1 | settings.render=1; 2 | 3 | import three; 4 | 5 | size(5cm,0); 6 | 7 | real r = 1; 8 | dot(O); 9 | label("$O$", O, S); 10 | 11 | real longitude1 = 0; 12 | real longitude2 = pi/4; 13 | real latitude1=pi/3; 14 | real latitude2=pi/8; 15 | 16 | triple normal1 = (cos(longitude1+pi/2),sin(longitude1+pi/2),0); 17 | triple normal2 = (cos(longitude2+pi/2),sin(longitude2+pi/2),0); 18 | 19 | triple N = (0, 0, r); 20 | dot(N); 21 | label("$N$", N, N); 22 | 23 | draw(O -- N, dashed); 24 | 25 | triple P = (r*cos(longitude1), r*sin(longitude1), 0); 26 | triple Q = (r*cos(longitude2), r*sin(longitude2), 0); 27 | 28 | draw(arc(O, N, P, normal1), black); 29 | draw(arc(O, N, Q, normal2), black); 30 | 31 | draw(O -- P, dashed); 32 | draw(O -- Q, dashed); 33 | draw(arc(O, P, Q, Z)); 34 | 35 | triple A = (r*cos(latitude1)*cos(longitude1), r*cos(latitude1)*sin(longitude1), r*sin(latitude1)); 36 | dot(A); 37 | label("$A$", A, N); 38 | triple B = (r*cos(latitude2)*cos(longitude2), r*cos(latitude2)*sin(longitude2), r*sin(latitude2)); 39 | dot(B); 40 | label("$B$", B, E); 41 | triple C = (r*cos(latitude2)*cos(longitude1), r*cos(latitude2)*sin(longitude1), r*sin(latitude2)); 42 | 43 | triple M = (0, 0, sin(latitude2)); 44 | draw(arc(M, C, B, Z)); 45 | 46 | draw(O -- A, dashed); 47 | draw(O -- B, dashed); -------------------------------------------------------------------------------- /content/plane-geometry/pic/ec-2017-02-09-01.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(250, 250); 5 | 6 | pair A = (0, 2); 7 | label("$A$", A, N); 8 | pair B = (-2, 0); 9 | label("$B$", B, S); 10 | pair C = (1, 0); 11 | label("$C$", C, S); 12 | draw(A -- B -- C -- cycle); 13 | 14 | pair D = rotate(90, B) * A; 15 | label("$D$", D, SW); 16 | pair E = rotate(-90, A) * B; 17 | label("$E$", E, NW); 18 | draw(A -- E -- D -- B); 19 | 20 | pair F = rotate(-90, C) * A; 21 | label("$F$", F, SE); 22 | pair G = rotate(90, A) * C; 23 | label("$G$", G, NE); 24 | draw(A -- G -- F --C); 25 | 26 | draw(C -- D); 27 | draw(C -- E); 28 | 29 | draw(B -- F); 30 | draw(B -- G); 31 | 32 | pair S = intersectionpoint(C -- E, A -- B); 33 | label("$S$", S, W); 34 | pair P = intersectionpoint(C -- D, A -- B); 35 | label("$P$", P, N); 36 | 37 | pair T = intersectionpoint(B -- G, A -- C); 38 | label("$T$", T, (1,-0.5)); 39 | pair Q = intersectionpoint(B -- F, A -- C); 40 | label("$Q$", Q, (0.5,1)); 41 | 42 | draw(S -- T); 43 | draw(P -- Q); -------------------------------------------------------------------------------- /content/plane-geometry/pic/ellipse-bounded-by-circle.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(130); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | pair O = (0, 0); 11 | label("$O$", O, S); 12 | 13 | pair F1 = (-1 * c, 0); 14 | pair F2 = (c, 0); 15 | 16 | label("$F_1$", F1, S); 17 | label("$F_2$", F2, S); 18 | 19 | draw(F1 -- F2); 20 | 21 | path oval = ellipse(O, a, b); 22 | draw(oval); 23 | 24 | real theta = 2 * pi / 3; 25 | pair P = (a * cos(theta), b * sin(theta)); 26 | label("$P$", P, N); 27 | 28 | draw(O -- P); 29 | draw(P -- F1); 30 | draw(P -- F2); 31 | 32 | pair E = locate(intersectionpoint(line(locate(P), locate(F1)), parallel(locate(O), line(locate(P), locate(F2))))); 33 | label("$E$", E, NW); 34 | 35 | draw(O -- E, dashed); 36 | 37 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/ellipse-focus-triangle-incenter-orbit.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | real a = 5, b = 3, c = sqrt(a^2-b^2); 7 | 8 | pair O = (0, 0); 9 | //label("$O$", O, S); 10 | pair F1 = ((-1) * c, 0), F2= (c, 0); 11 | label("$F_1$", F1, S); 12 | label("$F_2$", F2, S); 13 | draw(F1 -- F2); 14 | 15 | path myellipse = ellipse(O, a, b); 16 | draw(myellipse); 17 | 18 | real theta = pi / 3; 19 | pair P = (a * cos(theta), b * sin(theta)); 20 | label("$P$", P, NE); 21 | draw(F1 -- P -- F2); 22 | 23 | pair I = locate(incenter(locate(F1), locate(F2), locate(P))); 24 | label("$I$", I, NW); 25 | 26 | line lpi = line(locate(P), locate(I)); 27 | line lf1i = line(locate(F1), locate(I)); 28 | line lf2i = line(locate(F2), locate(I)); 29 | 30 | line lf1f2 = line(locate(F1), locate(F2)); 31 | line lpf1 = line(locate(P), locate(F1)); 32 | line lpf2 = line(locate(P), locate(F2)); 33 | 34 | pair D = locate(intersectionpoint(lpi, lf1f2)); 35 | label("$D$", D, S); 36 | draw(P -- D); 37 | draw(F1 -- I -- F2); 38 | 39 | line lui = parallel(I, lpf1); 40 | line lvi = parallel(I, lpf2); 41 | 42 | pair U = locate(intersectionpoint(lf1f2, lui)); 43 | pair V = locate(intersectionpoint(lf1f2, lvi)); 44 | label("$U$", U, S); 45 | label("$V$", V, S); 46 | draw(U -- I -- V, dashed); 47 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/euler-circumcenter-orthocenter-barycenter-line.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, SW); 12 | label("$C$", C, SE); 13 | 14 | triangle abc = triangle(locate(A), locate(B), locate(C)); 15 | 16 | // draw(A -- B -- C -- cycle); 17 | draw(abc); 18 | 19 | circle co = circumcircle(locate(A), locate(B), locate(C)); 20 | pair O = locate(co.C); 21 | label("$O$", O, NW); 22 | 23 | pair D = midpoint(B -- C); 24 | label("$D$", D, S); 25 | draw(O -- D); 26 | draw(A -- D); 27 | 28 | pair H = locate(orthocentercenter(locate(A), locate(B), locate(C))); 29 | label("$H$", H, SE); 30 | draw(A -- H); 31 | draw(O -- H); 32 | 33 | pair G = locate(centroid(abc)); 34 | label("$G$", G, SE); 35 | 36 | 37 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/example-for-cevian-ade-equal-adf.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(170); 5 | 6 | pair A = (2, 8); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, SE); 12 | draw(A -- B -- C -- cycle); 13 | 14 | line ad = perpendicular(locate(A), line(locate(B), locate(C))); 15 | pair D = locate(intersectionpoint(ad, line(locate(B), locate(C)))); 16 | label("$D$", D, S); 17 | draw(A -- D); 18 | 19 | real t = 0.6; 20 | pair P = ((1-t)*A.x+t*D.x, (1-t)*A.y+t*D.y); 21 | label("$P$", P, NE); 22 | 23 | pair E = locate(intersectionpoint(line(locate(C), locate(P)), line(locate(A), locate(B)))); 24 | label("$E$", E, W); 25 | 26 | pair F = locate(intersectionpoint(line(locate(B), locate(P)), line(locate(A), locate(C)))); 27 | label("$F$", F, E); 28 | 29 | draw(B -- F); 30 | draw(C -- E); 31 | 32 | draw(D -- E); 33 | draw(D -- F); 34 | 35 | line ats = parallel(locate(A), line(locate(B), locate(C))); 36 | pair T = locate(intersectionpoint(ats, line(locate(D), locate(E)))); 37 | pair S = locate(intersectionpoint(ats, line(locate(D), locate(F)))); 38 | 39 | label("$T$", T, NW); 40 | label("$S$", S, NE); 41 | 42 | draw(T -- S, dashed); 43 | draw(E -- T, dashed); 44 | draw(F -- S, dashed); 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/example-for-cevian-ap-perp-bc.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(200); 5 | 6 | pair A = (3, 5); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, SE); 12 | draw(A -- B -- C -- cycle); 13 | 14 | line ad = bisector(locate(A), locate(B), locate(A), locate(C)); 15 | pair D = locate(intersectionpoint(ad, line(locate(B), locate(C)))); 16 | label("$D$", D, S); 17 | draw(A -- D); 18 | 19 | line de = perpendicular(locate(D), line(locate(A), locate(B))); 20 | pair E = locate(intersectionpoint(de, line(locate(A), locate(B)))); 21 | label("$E$", E, NW); 22 | draw(D -- E); 23 | 24 | line df = perpendicular(locate(D), line(locate(A), locate(C))); 25 | pair F = locate(intersectionpoint(df, line(locate(A), locate(C)))); 26 | label("$F$", F, NE); 27 | draw(D -- F); 28 | 29 | draw(B -- F); 30 | draw(C -- E); 31 | 32 | pair P = intersectionpoint(B -- F, C -- E); 33 | label("$P$", P, NE); 34 | draw(A -- P); 35 | 36 | pair Q = locate(intersectionpoint(line(locate(B), locate(C)), line(locate(A), locate(P)))); 37 | label("$Q$", Q, S); 38 | draw(P -- Q, dashed); 39 | 40 | perpendicular(E, SE, E -- D); 41 | perpendicular(F, NE, F -- D); 42 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/exercise-ahk-coline.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(200); 5 | 6 | pair A = (2, 8); 7 | point at = locate(A); 8 | label("$A$", A, NE); 9 | pair B = (-5, 0); 10 | point bt = locate(B); 11 | label("$B$", B, SW); 12 | pair C = (5, 0); 13 | point ct = locate(C); 14 | label("$C$", C, SE); 15 | 16 | line ab = line(at, bt); 17 | line bc = line(bt, ct); 18 | line ca = line(ct, at); 19 | 20 | draw(A -- B -- C -- cycle); 21 | 22 | pair H = locate(orthocentercenter(locate(A), locate(B), locate(C))); 23 | label("$H$", H, NE); 24 | 25 | pair D = interp(B, C, 0.5); 26 | label("$D$", D, S); 27 | draw(A -- D); 28 | 29 | line ad = line(locate(A), locate(D)); 30 | line hl = perpendicular(locate(H), ad); 31 | pair L = locate(intersectionpoint(hl, ad)); 32 | label("$L$", L, NW); 33 | 34 | pair E = locate(intersectionpoint(hl, ca)); 35 | label("$E$", E, NE); 36 | pair F = locate(intersectionpoint(hl, ab)); 37 | label("$F$", F, NW); 38 | 39 | line ef = line(locate(E), locate(F)); 40 | 41 | draw(E -- F); 42 | draw(B -- E); 43 | draw(C -- F); 44 | 45 | pair K = intersectionpoint(B -- E, C -- F); 46 | label("$K$", K, (1,0)); 47 | draw(A -- K); 48 | 49 | line am = perpendicular(at, bc); 50 | pair M = locate(intersectionpoint(am, bc)); 51 | label("$M$", M, S); 52 | draw(K -- M, dashed); 53 | 54 | pair P = locate(intersectionpoint(bc, ef)); 55 | label("$P$", P, S); 56 | 57 | draw(E -- P, dashed); 58 | draw(C -- P, dashed); 59 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/exercise-pi-perp-mn.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(200); 5 | 6 | pair O = (0, 0); 7 | pair A = (-2, 4); 8 | pair B = (-5, 0); 9 | pair C= (5, 0); 10 | 11 | label("$A$", A, (0,1)); 12 | label("$B$", B, SW); 13 | label("$C$", C, SE); 14 | 15 | draw(A -- B -- C -- cycle); 16 | 17 | circle theincircle = incircle(locate(A), locate(B), locate(C)); 18 | draw(theincircle); 19 | pair I = locate(theincircle.C); 20 | label("$I$", I, S); 21 | 22 | real distant(pair P, pair Q) { 23 | return sqrt((P.x-Q.x)^2+(P.y-Q.y)^2); 24 | } 25 | 26 | real dAB = distant(A, B); 27 | real dBC = distant(B, C); 28 | real dCA = distant(C, A); 29 | 30 | pair D = interp(B, C, (dAB+dBC-dCA)/(2*dBC)); 31 | pair E = interp(C, A, (dBC+dCA-dAB)/(2*dCA)); 32 | pair F = interp(A, B, (dAB+dCA-dBC)/(2*dAB)); 33 | 34 | //pair D = locate(intersectionpoints(B -- C, theincircle)[0]); 35 | //pair E = locate(intersectionpoints(C -- A, theincircle)[0]); 36 | //pair F = locate(intersectionpoints(A -- B, theincircle)[0]); 37 | 38 | label("$D$", D, S); 39 | label("$E$", E, NE); 40 | label("$F$", F, W); 41 | 42 | draw(B -- E); 43 | draw(C -- F); 44 | 45 | pair P = intersectionpoint(B -- E, C -- F); 46 | label("$P$", P, (0,1)); 47 | 48 | draw(P -- I); 49 | 50 | line lineAB = line(locate(A), locate(B)); 51 | line lineAC = line(locate(A), locate(C)); 52 | 53 | line lineDE = line(locate(D), locate(E)); 54 | line lineDF = line(locate(D), locate(F)); 55 | 56 | pair M = locate(intersectionpoint(lineAB, lineDE)); 57 | pair N = locate(intersectionpoint(lineAC, lineDF)); 58 | 59 | label("$M$", M, NE); 60 | label("$N$", N, NW); 61 | 62 | draw(M -- A -- N); 63 | draw(M -- N); 64 | 65 | draw(D -- M); 66 | draw(D -- N); 67 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/external-common-tangent-for-3-circle.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(180); 5 | 6 | pair A = (0, 5); 7 | label("$A$", A, W); 8 | pair B = (-5,0); 9 | label("$B$", B, S); 10 | pair C = (3, 0); 11 | label("$C$", C, S); 12 | 13 | circle ca = circle(locate(A), 1); 14 | circle cb = circle(locate(B), 2); 15 | circle cc = circle(locate(C), 3); 16 | 17 | draw(ca); 18 | draw(cb); 19 | draw(cc); 20 | 21 | point commontangentsintersectionpoint(circle c1, circle c2) { 22 | if (c1.r == c2.r) 23 | return null; 24 | 25 | real t = -1 * c1.r / c2.r; 26 | pair P = (c1.C.x/(1+t) + t * c2.C.x/(1+t), c1.C.y/(1+t) + t * c2.C.y/(1+t)); 27 | point pt = locate(P); 28 | return pt; 29 | } 30 | 31 | line[] commontangents(circle c1, circle c2) { 32 | point P = commontangentsintersectionpoint(c1, c2); 33 | if (alias(P, null)) 34 | return null; 35 | 36 | return tangents(c1, P); 37 | } 38 | 39 | point pab = commontangentsintersectionpoint(ca, cb); 40 | line[] lab = commontangents(ca, cb); 41 | line perpb1 = perpendicular(cb.C, lab[0]); 42 | line perpb2 = perpendicular(cb.C, lab[1]); 43 | point pt1 = intersectionpoint(lab[0], perpb1); 44 | point pt2 = intersectionpoint(lab[1], perpb2); 45 | draw(locate(pab) -- locate(pt1)); 46 | draw(locate(pab) -- locate(pt2)); 47 | 48 | point pac = commontangentsintersectionpoint(ca, cc); 49 | line[] lac = commontangents(ca, cc); 50 | line perpac1 = perpendicular(cc.C, lac[0]); 51 | line perpac2 = perpendicular(cc.C, lac[1]); 52 | point ptac1 = intersectionpoint(lac[0], perpac1); 53 | point ptac2 = intersectionpoint(lac[1], perpac2); 54 | draw(locate(pac) -- locate(ptac1)); 55 | draw(locate(pac) -- locate(ptac2)); 56 | 57 | point pbc = commontangentsintersectionpoint(cc, cb); 58 | line[] lbc = commontangents(cc, cb); 59 | line perpbc1 = perpendicular(cc.C, lbc[0]); 60 | line perpbc2 = perpendicular(cc.C, lbc[1]); 61 | point ptbc1 = intersectionpoint(lbc[0], perpbc1); 62 | point ptbc2 = intersectionpoint(lbc[1], perpbc2); 63 | draw(locate(pbc) -- locate(ptbc1)); 64 | draw(locate(pbc) -- locate(ptbc2)); 65 | 66 | label("$P$", pab, E); 67 | label("$Q$", pac, W); 68 | label("$R$", pbc, W); 69 | 70 | draw(pab -- A -- B, dashed); 71 | draw(pbc -- B -- C, dashed); 72 | draw(pac -- A -- C, dashed); 73 | draw(pab -- pbc -- pac, dashed+red); 74 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/focal-radius-of-ellipse.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | 5 | size(200,200); 6 | 7 | xaxis("$x$", -8, 8, Arrow); 8 | yaxis("$x$", -4, 4, Arrow); 9 | 10 | real a = 5; 11 | real b = 3; 12 | real c = sqrt(a^2-b^2); 13 | 14 | path theellipse = ellipse((0,0), a, b); 15 | draw(theellipse); 16 | 17 | pair F1 = (-1*c, 0); 18 | pair F2 = (c, 0); 19 | label("$F_1$", F1, SE); 20 | label("$F_2$", F2, S); 21 | 22 | real theta = 2*pi/3; 23 | pair P=(a*cos(theta), b*sin(theta)); 24 | label("$P$", P, NE); 25 | 26 | draw(P -- F1); 27 | draw(P -- F2); 28 | 29 | draw((-a*a/c, 4) -- (-a*a/c, -4)); 30 | draw((a*a/c, 4) -- (a*a/c, -4)); 31 | label("$l_1$", (-a*a/c, 3), W); 32 | label("$l_2$", (a*a/c, 3), E); 33 | 34 | draw(P -- (-a*a/c,P.y)); 35 | draw(P -- (a*a/c,P.y)); 36 | 37 | draw(arc(P, F1, F2, 1)); 38 | label("$\theta$", (-3,0), NE); 39 | 40 | line lpq = line(P, true, F1, true); 41 | pair[] pq = intersectionpoints(lpq, theellipse); 42 | pair Q=pq[1]; 43 | label("$Q$", Q, W); 44 | draw(F1 -- Q); 45 | 46 | 47 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/internal-common-tangent-for-3-circle.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(180); 5 | 6 | pair A = (0, 5); 7 | label("$A$", A, W); 8 | pair B = (-5,0); 9 | label("$B$", B, S); 10 | pair C = (3, 0); 11 | label("$C$", C, S); 12 | 13 | circle ca = circle(locate(A), 1); 14 | circle cb = circle(locate(B), 2); 15 | circle cc = circle(locate(C), 3); 16 | 17 | draw(ca); 18 | draw(cb); 19 | draw(cc); 20 | 21 | point internal_common_tangents_interscpt(circle c1, circle c2) { 22 | if (c1.r == c2.r) 23 | return null; 24 | 25 | real t = 1 * c1.r / c2.r; 26 | pair P = (c1.C.x/(1+t) + t * c2.C.x/(1+t), c1.C.y/(1+t) + t * c2.C.y/(1+t)); 27 | point pt = locate(P); 28 | return pt; 29 | } 30 | 31 | line[] commontangents(circle c1, circle c2) { 32 | point P = internal_common_tangents_interscpt(c1, c2); 33 | if (alias(P, null)) 34 | return null; 35 | 36 | return tangents(c1, P); 37 | } 38 | 39 | point pab = internal_common_tangents_interscpt(ca, cb); 40 | line[] lab = tangents(ca, pab); 41 | point pab0a = intersectionpoints(lab[0], ca)[0]; 42 | point pab0b = intersectionpoints(lab[0], cb)[0]; 43 | draw(pab0a -- pab0b); 44 | point pab1a = intersectionpoints(lab[1], ca)[0]; 45 | point pab1b = intersectionpoints(lab[1], cb)[0]; 46 | draw(pab1a -- pab1b); 47 | 48 | 49 | point pac = internal_common_tangents_interscpt(ca, cc); 50 | line[] lac = tangents(ca, pac); 51 | point pac0a = intersectionpoints(lac[0], ca)[0]; 52 | point pac0c = intersectionpoints(lac[0], cc)[0]; 53 | draw(pac0a -- pac0c); 54 | point pac1a = intersectionpoints(lac[1], ca)[0]; 55 | point pac1c = intersectionpoints(lac[1], cc)[0]; 56 | draw(pac1a -- pac1c); 57 | 58 | point pbc = internal_common_tangents_interscpt(cc, cb); 59 | line[] lbc = tangents(cc, pbc); 60 | point pbc0b = intersectionpoints(lbc[0], cb)[0]; 61 | point pbc0c = intersectionpoints(lbc[0], cc)[0]; 62 | draw(pbc0b -- pbc0c); 63 | point pbc1b = intersectionpoints(lbc[1], cb)[0]; 64 | point pbc1c = intersectionpoints(lbc[1], cc)[0]; 65 | draw(pbc1b -- pbc1c); 66 | 67 | label("$P$", pab, NW); 68 | label("$Q$", pac, E); 69 | label("$R$", pbc, S); 70 | 71 | draw(A -- B -- C -- cycle, dashed); 72 | 73 | draw(A -- pbc, red+dashed); 74 | draw(B -- pac, red+dashed); 75 | draw(C -- pab, red+dashed); 76 | 77 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/menelaus-theorem-extends.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 5); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, SE); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | pair D = interp(B, C, 0.4); 16 | label("$D$", D, S); 17 | //draw(A -- D); 18 | 19 | pair E = interp(C, A, 0.6); 20 | label("$E$", E, NE); 21 | //draw(B -- E); 22 | 23 | pair F = interp(A, B, 0.7); 24 | label("$F$", F, NW); 25 | //draw(C -- F); 26 | 27 | draw(D -- E -- F -- cycle); 28 | fill(D -- E -- F -- cycle, gray); 29 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/menelaus-theorem-proof.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | real ta = 1.6; 16 | real tc = 0.4; 17 | 18 | pair Y = ((1-ta)*B.x+ta*C.x, (1-ta)*B.y+ta*C.y); 19 | label("$Y$", Y, SE); 20 | pair X = ((1-tc)*A.x+tc*B.x, (1-tc)*A.y+tc*B.y); 21 | label("$X$", X, NW); 22 | pair Z = intersectionpoint(X -- Y, A -- C); 23 | label("$Z$", Z, NE); 24 | 25 | draw(C -- Y); 26 | draw(X -- Y -- Z); 27 | 28 | line cp = parallel(locate(C), line(locate(X), locate(Z))); 29 | point Pt = intersectionpoint(cp, line(locate(A), locate(B))); 30 | pair P = locate(Pt); 31 | label("$P$", P, NW); 32 | draw(C -- P, dashed); 33 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/menelaus-theorem-proof2.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 5); 7 | label("$A$", A, NW); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (0, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | real tx = -0.2; 16 | real ty = 2; 17 | 18 | pair X = ((1-tx)*A.x+tx*B.x, (1-tx)*A.y+tx*B.y); 19 | label("$X$", X, E); 20 | pair Y = ((1-ty)*B.x+ty*C.x, (1-ty)*B.y+ty*C.y); 21 | label("$Y$", Y, SE); 22 | pair Z = locate(intersectionpoint(line(locate(X), locate(Y)), line(locate(A), locate(C)))); 23 | label("$Z$", Z, N); 24 | 25 | draw(A -- X); 26 | draw(C -- Y); 27 | draw(A -- Z); 28 | draw(X -- Y -- Z); 29 | 30 | line cp = parallel(locate(C), line(locate(X), locate(Z))); 31 | point Pt = intersectionpoint(cp, line(locate(A), locate(B))); 32 | pair P = locate(Pt); 33 | label("$P$", P, NW); 34 | draw(C -- P, dashed); 35 | 36 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/menelaus-theorem.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | real ta = 1.6; 16 | real tc = 0.4; 17 | 18 | pair Y = ((1-ta)*B.x+ta*C.x, (1-ta)*B.y+ta*C.y); 19 | label("$Y$", Y, SE); 20 | pair X = ((1-tc)*A.x+tc*B.x, (1-tc)*A.y+tc*B.y); 21 | label("$X$", X, NW); 22 | pair Z = intersectionpoint(X -- Y, A -- C); 23 | label("$Z$", Z, NE); 24 | 25 | draw(C -- Y); 26 | draw(X -- Y -- Z, red); 27 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/menelaus-theorem2.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 5); 7 | label("$A$", A, NW); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (0, 0); 11 | label("$C$", C, S); 12 | 13 | draw(A -- B -- C -- cycle); 14 | 15 | real tx = -0.2; 16 | real ty = 2; 17 | 18 | pair X = ((1-tx)*A.x+tx*B.x, (1-tx)*A.y+tx*B.y); 19 | label("$X$", X, E); 20 | pair Y = ((1-ty)*B.x+ty*C.x, (1-ty)*B.y+ty*C.y); 21 | label("$Y$", Y, SE); 22 | pair Z = locate(intersectionpoint(line(locate(X), locate(Y)), line(locate(A), locate(C)))); 23 | label("$Z$", Z, N); 24 | 25 | draw(A -- X); 26 | draw(C -- Y); 27 | draw(A -- Z); 28 | draw(X -- Y -- Z, red); 29 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-chord-located-in-oval.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | pair O = (0, 0); 11 | pair F1 = (-1 * c, 0); 12 | pair F2 = (c, 0); 13 | label("$F_1$", F1, S); 14 | label("$F_2$", F2, S); 15 | 16 | path oval = ellipse(O, a, b); 17 | draw(oval); 18 | 19 | real theta1 = 2 * pi / 3; 20 | real theta2 = pi / 6; 21 | 22 | pair A = (a * cos(theta1), b * sin(theta1)); 23 | pair B = (a * cos(theta2), b * sin(theta2)); 24 | label("$A$", A, NW); 25 | label("$B$", B, NE); 26 | 27 | draw(line(locate(A), locate(B))); 28 | draw(A -- F1); 29 | draw(A -- F2); 30 | draw(B -- F1); 31 | draw(B -- F2); 32 | 33 | real t = 0.3; 34 | pair P = ((1-t)*A.x+t*B.x, (1-t)*A.y+t*B.y); 35 | label("$P$", P, N); 36 | draw(P -- F1); 37 | draw(P -- F2); 38 | 39 | real s = 1.3; 40 | pair Q = ((1-s)*A.x+s*B.x, (1-s)*A.y+s*B.y); 41 | label("$Q$", Q, N); 42 | draw(Q -- F1); 43 | draw(Q -- F2); 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-focus-triangle-external-bisector.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | //xaxis("$x$", -6,6, Arrow); 9 | //yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair B = (-1*c, 0); 16 | label("$B$", B, S); 17 | pair C = (c, 0); 18 | label("$C$", C, S); 19 | 20 | pair O = (0,0); 21 | //label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | //draw(myellipse); 24 | 25 | real theta = pi / 3; 26 | pair A = (a*cos(theta), b*sin(theta)); 27 | label("$A$", A, N); 28 | 29 | real tangentline(pair t) { 30 | real x = t.x; 31 | real y = t.y; 32 | return A.x*x/(a*a)+A.y*y/(b*b)-1; 33 | } 34 | 35 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 36 | //draw(g1); 37 | 38 | draw(B -- A -- C -- cycle); 39 | 40 | real tangentline2(real x) { 41 | return A.y-(b*b*A.x)/(a*a*A.y)*(x-A.x); 42 | } 43 | 44 | real tmin = A.x - 1; 45 | real tmax = A.x + 3; 46 | 47 | pair TL = (tmin, tangentline2(tmin)); 48 | pair TR = (tmax, tangentline2(tmax)); 49 | draw(TL -- TR); 50 | 51 | pair C1 = reflect(TL, TR) * C; 52 | label("$C'$", C1, N); 53 | draw(C -- C1, dashed); 54 | draw(A -- C1, dashed); 55 | 56 | pair P = (A.x + 1, tangentline2(A.x+1)); 57 | label("$P$", P, E); 58 | draw(B -- P -- C); 59 | draw(P -- C1, dashed); 60 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-focus-triangle-non-external-bisector.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | //xaxis("$x$", -6,6, Arrow); 9 | //yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair B = (-1*c, 0); 16 | label("$B$", B, S); 17 | pair C = (c, 0); 18 | label("$C$", C, S); 19 | 20 | pair O = (0,0); 21 | //label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | //draw(myellipse); 24 | 25 | real theta = pi / 3; 26 | pair A = (a*cos(theta), b*sin(theta)); 27 | label("$A$", A, N); 28 | 29 | real tangentline(pair t) { 30 | real x = t.x; 31 | real y = t.y; 32 | return A.x*x/(a*a)+A.y*y/(b*b)-1; 33 | } 34 | 35 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 36 | //draw(g1); 37 | 38 | draw(B -- A -- C -- cycle); 39 | 40 | real nontangentline(real x) { 41 | return A.y-(2*b*b*A.x)/(a*a*A.y)*(x-A.x); 42 | } 43 | 44 | real tmin = A.x - 1; 45 | real tmax = A.x + 3; 46 | 47 | pair TL = (tmin, nontangentline(tmin)); 48 | pair TR = (tmax, nontangentline(tmax)); 49 | draw(TL -- TR); 50 | 51 | pair C1 = reflect(TL, TR) * C; 52 | label("$C'$", C1, N); 53 | draw(C -- C1, dashed); 54 | draw(A -- C1, dashed); 55 | 56 | pair K = intersectionpoint(B -- C1, TL -- TR); 57 | label("$K$", K, E); 58 | draw(B -- K -- C); 59 | draw(K -- C1, dashed); 60 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-optical-property.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | xaxis("$x$", -6,6, Arrow); 9 | yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair F1 = (-1*c, 0); 16 | label("$F_1$", F1, S); 17 | pair F2 = (c, 0); 18 | label("$F_2$", F2, S); 19 | 20 | pair O = (0,0); 21 | label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | draw(myellipse); 24 | 25 | real theta = pi / 4; 26 | pair P = (a*cos(theta), b*sin(theta)); 27 | label("$P$", P, E); 28 | 29 | real tangentline(pair t) { 30 | real x = t.x; 31 | real y = t.y; 32 | return P.x*x/(a*a)+P.y*y/(b*b)-1; 33 | } 34 | 35 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 36 | draw(g1); 37 | 38 | draw(F1 -- P -- F2, red, Arrow); 39 | 40 | real normalline(pair t) { 41 | return a*a*P.y*(t.x-P.x)-b*b*P.x*(t.y-P.y); 42 | } 43 | 44 | guide[][] g2 = contour(normalline, (-1, -1), (4, 4), new real[]{0}, 100); 45 | draw(g2); 46 | 47 | pair T = (c*c*P.x/(a*a), 0); 48 | label("$T$", T, SE); 49 | 50 | 51 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-pole-and-polor-line.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | xaxis("$x$", -6,8, Arrow); 9 | yaxis("$y$", -4,6, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair F1 = (-1*c, 0); 16 | label("$F_1$", F1, S); 17 | pair F2 = (c, 0); 18 | label("$F_2$", F2, S); 19 | 20 | pair O = (0,0); 21 | label("$O$", O, SW); 22 | path myellipse = ellipse(O, a, b); 23 | draw(myellipse); 24 | 25 | real theta1 = 1.8 * pi / 3; 26 | pair T1 = (a*cos(theta1), b*sin(theta1)); 27 | label("$T_1$", T1, N); 28 | 29 | real theta2 = - pi / 12; 30 | pair T2 = (a*cos(theta2), b*sin(theta2)); 31 | label("$T_2$", T2, SE); 32 | 33 | draw(T1 -- T2); 34 | 35 | real tangentline(real x, pair T) { 36 | return T.y-(b*b*T.x)/(a*a*T.y)*(x-T.x); 37 | } 38 | 39 | real delta1 = 4; 40 | real delta2 = 1; 41 | pair T11 = (T1.x+delta1, tangentline(T1.x+delta1, T1)); 42 | pair T21 = (T2.x+delta2, tangentline(T2.x+delta2, T2)); 43 | 44 | //pair P = intersectionpoint(T1 -- T11, T2 -- T21); 45 | point PT = intersectionpoint(line(T1, T11), line(T2, T21)); 46 | pair P = locate(PT); 47 | label("$P$", P, NE); 48 | draw(O -- P); 49 | draw(P -- T1); 50 | draw(P -- T2); 51 | 52 | pair Q = intersectionpoint(O -- P, T1 -- T2); 53 | label("$Q$", Q, N); 54 | pair R = intersectionpoint(O -- P, myellipse); 55 | label("$R$", R, E); 56 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-ray-from-center-split.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | pair O = (0, 0); 11 | label("$O$", O, S); 12 | 13 | pair F1 = (-1 * c, 0); 14 | pair F2 = (c, 0); 15 | 16 | label("$F_1$", F1, S); 17 | label("$F_2$", F2, S); 18 | 19 | draw(F1 -- F2); 20 | 21 | path oval = ellipse(O, a, b); 22 | draw(oval); 23 | 24 | real theta = 5 * pi / 12; 25 | 26 | pair P = (a * cos(theta), b * sin(theta)); 27 | label("$P$", P, ENE); 28 | 29 | draw(P -- F1); 30 | draw(P -- F2); 31 | 32 | pair M = locate(relpoint(line(locate(O), locate(P)), 0.6)); 33 | pair N = locate(relpoint(line(locate(O), locate(P)), 1.6)); 34 | 35 | label("$M$", M, SSE); 36 | label("$N$", N, NW); 37 | 38 | draw(M -- F1); 39 | draw(M -- F2); 40 | draw(N -- F1); 41 | draw(N -- F2); 42 | 43 | pair K = locate(relpoint(line(locate(O), locate(P)), 2)); 44 | draw(O -- K); 45 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-tangent-line.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | import contour; 5 | 6 | size(200); 7 | 8 | xaxis("$x$", -6,6, Arrow); 9 | yaxis("$y$", -4,4, Arrow); 10 | 11 | real a = 5; 12 | real b = 3; 13 | real c = 4; 14 | 15 | pair F1 = (-1*c, 0); 16 | label("$F_1$", F1, S); 17 | pair F2 = (c, 0); 18 | label("$F_2$", F2, S); 19 | 20 | pair O = (0,0); 21 | label("$O$", O, S); 22 | path myellipse = ellipse(O, a, b); 23 | draw(myellipse); 24 | 25 | real theta = pi / 4; 26 | pair P = (a*cos(theta), b*sin(theta)); 27 | label("$P$", P, NE); 28 | draw(O -- P); 29 | 30 | real tangentline(pair t) { 31 | real x = t.x; 32 | real y = t.y; 33 | return P.x*x/(a*a)+P.y*y/(b*b)-1; 34 | } 35 | 36 | guide[][] g1 = contour(tangentline, (0, 0), (5.5, 3.5), new real[]{0}, 100); 37 | draw(g1, red); 38 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-tangent-two-perpendicular-line.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | 5 | size(150); 6 | 7 | real a = 5, b = 3, c = 4; 8 | 9 | pair O = (0, 0); 10 | label("$O$", O, S); 11 | 12 | pair F1 = ((-1)* c, 0), F2 = (c, 0); 13 | label("$F_1$", F1, S); 14 | label("$F_2$", F2, S); 15 | draw(F1 -- F2); 16 | 17 | real theta = pi / 3; 18 | pair P = (a * cos(theta), b * sin(theta)); 19 | label("$P$", P, N); 20 | 21 | ellipse ee = ellipse(F1, F2, P); 22 | draw(ee); 23 | 24 | line mn = line(P.x/(a^2), P.y/(b^2), -1); 25 | 26 | line f1m = perpendicular(F1, mn); 27 | line f2n = perpendicular(F2, mn); 28 | 29 | pair M = locate(intersectionpoint(mn, f1m)); 30 | pair N = locate(intersectionpoint(mn, f2n)); 31 | label("$M$", M, (0,1)); 32 | label("$N$", N, NE); 33 | //draw(M -- N); 34 | 35 | real fmn(real x) { 36 | return b^2 * (1- (P.x * x)/(a^2)) / P.y; 37 | } 38 | 39 | path pmn = graph(fmn, -5, 6); 40 | 41 | draw(pmn); 42 | 43 | draw(F1 -- M); 44 | draw(F2 -- N); 45 | 46 | pair K = reflect(M, N) * F2; 47 | label("$K$", K, NE); 48 | 49 | draw(F1 -- K); 50 | draw(K -- N); 51 | 52 | draw(P -- F2); 53 | 54 | draw(O -- M, dashed); 55 | draw(O -- N, dashed); 56 | draw(O -- K, dashed); 57 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/oval-two-focus-radius-intersectionpoint.asy: -------------------------------------------------------------------------------- 1 | 2 | import graph; 3 | import geometry; 4 | 5 | size(200,200); 6 | 7 | //xaxis("$x$", -8, 8, Arrow); 8 | //yaxis("$x$", -4, 4, Arrow); 9 | 10 | real a = 5; 11 | real b = 3; 12 | real c = sqrt(a^2-b^2); 13 | 14 | path theellipse = ellipse((0,0), a, b); 15 | draw(theellipse); 16 | 17 | pair F1 = (-1*c, 0); 18 | pair F2 = (c, 0); 19 | label("$F_1$", F1, S); 20 | label("$F_2$", F2, S); 21 | 22 | real theta = 2*pi/3; 23 | pair A=(a*cos(theta), b*sin(theta)); 24 | label("$A$", A, NW); 25 | 26 | draw(A -- F1); 27 | draw(A -- F2); 28 | 29 | pair F1A = (A.x - F1.x, A.y - F1.y); 30 | line F2Bline = parallel(F2, F1A); 31 | 32 | point[] BB = intersectionpoints(F2Bline, theellipse); 33 | point B = BB[0]; 34 | draw(B -- F2); 35 | label("$B$", B, NE); 36 | 37 | draw(B -- F1); 38 | 39 | pair P = intersectionpoint(A -- F2, B -- F1); 40 | label("$P$", P, S); 41 | 42 | ellipse re = ellipse(F1, F2, P); 43 | draw(re, dashed+red); 44 | 45 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/parabola-focus-chord-three-line-intersection.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | import graph; 4 | 5 | size(150); 6 | 7 | real p = 1/2; 8 | real r = 3; 9 | pair O = (0, 0); 10 | pair F = (p/2, 0); 11 | label("$F$", F, SSE); 12 | pair D = (r*p, 0); 13 | label("$D$", D, S); 14 | pair R = (-p/2,0); 15 | label("$R$", R, NW); 16 | 17 | 18 | xaxis("$x$", Arrow); 19 | yaxis("$y$", Arrow); 20 | 21 | line dl = line(2, 0, p); 22 | draw(dl); 23 | 24 | parabola pb = parabola(locate(F), dl); 25 | 26 | pair foo(real t) { 27 | real x = t^2; 28 | real y=t; 29 | return (x,y); 30 | } 31 | 32 | draw(graph(foo, -1.4, 1.4)); 33 | 34 | line lmn = line(locate(F), 75); 35 | 36 | pair M = intersectionpoints(lmn, pb)[0]; 37 | pair N = intersectionpoints(lmn, pb)[1]; 38 | label("$M$", M, (0,-1)); 39 | label("$N$", N, (0,1)); 40 | 41 | draw(M -- N); 42 | 43 | line lmm0 = perpendicular(locate(M), dl); 44 | line lnn0 = perpendicular(locate(N), dl); 45 | 46 | //pair M0 = intersectionpoint(dl, lmm0); 47 | pair N0 = intersectionpoint(dl, lnn0); 48 | //label("$M_0$", M0, NW); 49 | label("$N_0$", N0, W); 50 | //draw(M -- M0, dashed); 51 | draw(N -- N0, dashed); 52 | 53 | line ldm = line(locate(D), locate(M)); 54 | line ldn = line(locate(D), locate(N)); 55 | 56 | pair P = intersectionpoint(dl, ldm); 57 | pair Q = intersectionpoint(dl, ldn); 58 | label("$P$", P, (-1,0)); 59 | label("$Q$", Q, (-1,0)); 60 | 61 | draw(D -- P); 62 | draw(D -- Q); 63 | 64 | draw(P -- N); 65 | draw(Q -- M); 66 | 67 | pair T = intersectionpoint(P -- N, Q -- M); 68 | 69 | pair N1 = (N.x, 0); 70 | label("$N_1$", N1, NE); 71 | draw(N -- N1, dashed); 72 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/property-circumcenter-orthocenter-oh-equal-2od-proof.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, SW); 12 | label("$C$", C, SE); 13 | 14 | draw(A -- B -- C -- cycle); 15 | 16 | circle co = circumcircle(locate(A), locate(B), locate(C)); 17 | draw(co); 18 | 19 | pair O = locate(co.C); 20 | label("$O$", O, N); 21 | 22 | pair D = midpoint(B -- C); 23 | label("$D$", D, S); 24 | draw(O -- D); 25 | 26 | pair H = locate(orthocentercenter(locate(A), locate(B), locate(C))); 27 | label("$H$", H, S); 28 | draw(A -- H); 29 | 30 | draw(C -- H); 31 | 32 | line bo = line(locate(B), locate(O)); 33 | pair P = locate(intersectionpoints(bo, co)[1]); 34 | label("$P$", P, E); 35 | draw(B -- P); 36 | draw(A -- P -- C); 37 | 38 | 39 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/property-circumcenter-orthocenter-oh-equal-2od.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, SW); 12 | label("$C$", C, SE); 13 | 14 | draw(A -- B -- C -- cycle); 15 | 16 | circle co = circumcircle(locate(A), locate(B), locate(C)); 17 | pair O = locate(co.C); 18 | label("$O$", O, N); 19 | 20 | pair D = midpoint(B -- C); 21 | label("$D$", D, S); 22 | draw(O -- D); 23 | 24 | pair H = locate(orthocentercenter(locate(A), locate(B), locate(C))); 25 | label("$H$", H, S); 26 | draw(A -- H); 27 | 28 | 29 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/pt-inside-triangle-distance-sum.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(120); 5 | 6 | pair A = (2, 6); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, SW); 12 | label("$C$", C, SE); 13 | 14 | draw(A -- B -- C -- cycle); 15 | 16 | real t = 0.6; 17 | 18 | pair D = locate(relpoint(line(locate(B), locate(C)), t)); 19 | label("$D$", D, S); 20 | 21 | draw(A -- D, dashed); 22 | 23 | real s = 0.6; 24 | pair P = locate(relpoint(line(locate(D), locate(A)), s)); 25 | label("$P$", P, E); 26 | 27 | draw(P -- B); 28 | draw(P -- C); 29 | 30 | pair E = locate(intersectionpoint(line(locate(A), locate(B)), line(locate(C), locate(P)))); 31 | label("$E$", E, W); 32 | 33 | draw(P -- E, dashed); 34 | 35 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/spread-angle-theorem.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(120); 5 | 6 | pair A = (2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, SE); 12 | pair D = (-1, 0); 13 | label("$D$", D, S); 14 | 15 | draw(A -- B -- C -- cycle); 16 | draw(A -- D); 17 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/stewart-theorem.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(120); 5 | 6 | pair A = (2, 7); 7 | label("$A$", A, N); 8 | pair B = (-5, 0); 9 | label("$B$", B, SW); 10 | pair C = (5, 0); 11 | label("$C$", C, SE); 12 | pair D = (-1, 0); 13 | label("$D$", D, S); 14 | 15 | draw(A -- B -- C -- cycle); 16 | draw(A -- D); 17 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/triangle-angle-bisector-theorem-proof.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (6, 8); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, S); 12 | label("$C$", C, S); 13 | 14 | draw(A -- B -- C -- cycle); 15 | 16 | line ae = bisector(locate(A), locate(B), locate(A), locate(C)); 17 | pair E = intersectionpoint(ae, line(locate(B), locate(C))); 18 | label("$E$", E, S); 19 | draw(A -- E); 20 | 21 | line af = bisector(locate(A), locate(B), locate(A), locate(C), 90); 22 | pair F = intersectionpoint(af, line(locate(B), locate(C))); 23 | label("$F$", F, S); 24 | 25 | draw(C -- F); 26 | draw(A -- F); 27 | 28 | // 以下为辅助线 29 | 30 | line ap = parallel(locate(C), line(locate(A), locate(E))); 31 | line aq = parallel(locate(C), line(locate(A), locate(F))); 32 | 33 | pair P = locate(intersectionpoint(ap, line(locate(A), locate(B)))); 34 | pair Q = locate(intersectionpoint(aq, line(locate(A), locate(B)))); 35 | 36 | label("$P$", P, E); 37 | label("$Q$", Q, NW); 38 | 39 | draw(A -- P, dashed); 40 | draw(C -- P, dashed); 41 | draw(C -- Q, dashed); 42 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/triangle-angle-bisector-theorem.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (6, 8); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | 10 | label("$A$", A, N); 11 | label("$B$", B, S); 12 | label("$C$", C, S); 13 | 14 | draw(A -- B -- C -- cycle); 15 | 16 | line ae = bisector(locate(A), locate(B), locate(A), locate(C)); 17 | pair E = intersectionpoint(ae, line(locate(B), locate(C))); 18 | label("$E$", E, S); 19 | draw(A -- E, red); 20 | 21 | line af = bisector(locate(A), locate(B), locate(A), locate(C), 90); 22 | pair F = intersectionpoint(af, line(locate(B), locate(C))); 23 | label("$F$", F, S); 24 | 25 | draw(C -- F, dashed); 26 | draw(A -- F, red); 27 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/triangle-distance-of-incenter-circumcenter.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (3, 7); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | label("$A$", A, N); 10 | label("$B$", B, SW); 11 | label("$C$", C, SE); 12 | 13 | triangle triangleABC = triangle(locate(A), locate(B), locate(C)); 14 | draw(triangleABC); 15 | 16 | circle circleABC = circumcircle(triangleABC); 17 | draw(circleABC); 18 | 19 | pair O = locate(circleABC.C); 20 | label("$O$", O, NW); 21 | 22 | pair I = incenter(triangleABC); 23 | label("$I$", I, NE); 24 | 25 | pair K = locate(intersectionpoints(circleABC, line(locate(A), locate(I)))[0]); 26 | label("$K$", K, S); 27 | draw(A -- K); 28 | 29 | point[] uv = intersectionpoints(line(locate(O), locate(I)), circleABC); 30 | pair U = locate(uv[0]); 31 | pair V = locate(uv[1]); 32 | label("$U$", U, W); 33 | label("$V$", V, E); 34 | draw(U -- V); 35 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/triangle-incenter-ki-kb-kc-equal.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair A = (2, 7); 7 | pair B = (-5, 0); 8 | pair C = (5, 0); 9 | label("$A$", A, N); 10 | label("$B$", B, SW); 11 | label("$C$", C, SE); 12 | 13 | triangle triangleABC = triangle(locate(A), locate(B), locate(C)); 14 | draw(triangleABC); 15 | 16 | circle circleABC = circumcircle(triangleABC); 17 | draw(circleABC); 18 | 19 | pair I = incenter(triangleABC); 20 | label("$I$", I, NE); 21 | 22 | pair K = locate(intersectionpoints(circleABC, line(locate(A), locate(I)))[0]); 23 | label("$K$", K, S); 24 | draw(A -- K); 25 | 26 | draw(B -- I -- C); 27 | draw(B -- K -- C, dashed); 28 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/two-definition-of-ellipse.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(200,200); 5 | 6 | real a = 5; 7 | real b = 3; 8 | real c = sqrt(a^2-b^2); 9 | 10 | path theellipse = ellipse((0,0), a, b); 11 | draw(theellipse); 12 | 13 | pair O = (0, 0); 14 | label("$O$", O, S); 15 | 16 | pair F1 = (-1*c, 0); 17 | pair F2 = (c, 0); 18 | label("$F_1$", F1, SE); 19 | label("$F_2$", F2, S); 20 | draw(F1 -- F2); 21 | 22 | real theta = 2*pi/3; 23 | pair P=(a*cos(theta), b*sin(theta)); 24 | label("$P$", P, NE); 25 | 26 | draw("$r$", P -- F1); 27 | draw(P -- F2); 28 | 29 | pair L = (-a*a/c, 0); 30 | label("$L$", L, W); 31 | draw(L -- F1); 32 | draw((-a*a/c, 4) -- (-a*a/c, -4)); 33 | //draw((a*a/c, 4) -- (a*a/c, -4)); 34 | label("$l_1$", (-a*a/c, 3), W); 35 | //label("$l_2$", (a*a/c, 3), E); 36 | 37 | draw("$d$", P -- (-a*a/c,P.y)); 38 | //draw(P -- (a*a/c,P.y)); 39 | 40 | draw(arc(P, F1, F2, 1)); 41 | label("$\theta$", (-3,0), NE); 42 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/vector-definition-proportion.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(120); 5 | 6 | pair O = (2, 7); 7 | label("$O$", O, N); 8 | pair A = (-5, 0); 9 | label("$A$", A, SW); 10 | pair B = (5, 0); 11 | label("$B$", B, SE); 12 | pair P = (-1, 0); 13 | label("$P$", P, S); 14 | 15 | 16 | draw(line(locate(A), locate(P))); 17 | 18 | draw(O -- A, Arrow); 19 | draw(O -- B, Arrow); 20 | draw(O -- P, Arrow); 21 | -------------------------------------------------------------------------------- /content/plane-geometry/pic/vector-inner-product-distribution-law.asy: -------------------------------------------------------------------------------- 1 | 2 | import geometry; 3 | 4 | size(150); 5 | 6 | pair O = (0, 0); 7 | label("$O$", O, SW); 8 | 9 | pair A = (3, 1); 10 | label("$A$", A, E); 11 | 12 | pair B = (1,2); 13 | label("$B$", B, N); 14 | 15 | pair D = (4, 3); 16 | label("$D$", D, E); 17 | 18 | pair A1 = (3, 0); 19 | label("$A_1$", A1, S); 20 | 21 | pair B1 = (1, 0); 22 | label("$B_1$", B1, S); 23 | 24 | pair D1 = (4, 0); 25 | label("$D_1$", D1, S); 26 | 27 | pair C = (5, 0); 28 | label("$C$", C, E); 29 | 30 | draw(O -- A, Arrow); 31 | draw(O -- B, Arrow); 32 | draw(O -- C, Arrow); 33 | draw(O -- D, Arrow); 34 | draw(A -- D); 35 | draw(B -- D); 36 | 37 | draw(A -- A1, dashed); 38 | draw(B -- B1, dashed); 39 | draw(D -- D1, dashed); 40 | -------------------------------------------------------------------------------- /content/plane-geometry/plane-geometry.tex: -------------------------------------------------------------------------------- 1 | 2 | \chapter{初等几何} 3 | 4 | \input{content/plane-geometry/vector} 5 | \input{content/plane-geometry/curve-and-equation} 6 | \input{content/plane-geometry/some-important-theorem} 7 | \input{content/plane-geometry/triangle-base-discussion} 8 | \input{content/plane-geometry/circle} 9 | \input{content/plane-geometry/conic-section} 10 | \input{content/plane-geometry/oval-preliminary-discussion} 11 | \input{content/plane-geometry/para-curve} 12 | 13 | \input{content/plane-geometry/trihedral-angle.tex} 14 | 15 | \input{content/plane-geometry/exercises} 16 | 17 | %%% Local Variables: 18 | %%% mode: latex 19 | %%% TeX-master: "../../elementary-math-note" 20 | %%% End: 21 | -------------------------------------------------------------------------------- /content/plane-geometry/trihedral-angle.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{三面角与四面体} 3 | \label{sec:trihedral-angle} 4 | 5 | 在空间中,从一点引出三条射线组成了一个有趣的模型,它包含了三个角,以及三个扇形平面区域,还有三个二面角,这个图形我们称为 \emph{三面角}. 三面角的三条射线两两所成角称为它的 \emph{面角}. 容易知道,它的三个面角之间存在着类似于三角形三边的和差关系:任意两个面角之和不小于第三角,任意两个面角之差不大于第三个面角. 6 | 7 | 8 | \subsection{三面角的余弦公式} 9 | \label{sec:cosin-of-three-side-angle} 10 | 11 | 12 | 现在我们感兴趣的是,这三条射线的两两夹角,与三个面形成的三个二面角之间的关系。 13 | 14 | 为研究这个关系,我们提炼出下面这样的一个简化模型: 15 | 16 | 17 | \begin{figure}[htbp] 18 | \centering 19 | \includegraphics{content/plane-geometry/pic/cosin-of-three-side-angle.pdf} 20 | \caption{三面角余弦定理} 21 | \label{fig:cosin-of-three-side-angle} 22 | \end{figure} 23 | 24 | 如 \autoref{fig:cosin-of-three-side-angle} 所示, 从一个二面角的棱上某点 $O$ 分别向两个半平面内各引一条射线,如果我们固定住这两条射线与棱之间的夹角,而让二面角的大小可以自由变化,那么显然这两条射线的夹角就只跟这个二面角的大小有关了。 25 | 26 | 在棱上取异于 $O$ 的一点 $H$,过点$H$分别在两个半平面内作棱的垂线,分别与两条射线相交于 $A$ 和 $B$,记 $\angle AOH = \alpha$, $\angle BOH=\beta$,二面角 $AHB=\theta$,我们来求 两条射线的夹角 $\gamma = \angle AOB$. 27 | 28 | 约定 $OH = 1$,有 29 | \[ AO = \frac{1}{\cos{\alpha}}, BO = \frac{1}{\cos{\beta}}, AH = \tan{\alpha}, BH = \tan{\beta} \] 30 | 由余弦定理可得 $AB$长度为 31 | \[ AB^{2} = AH^2+BH^2-2 \cdot AH \cdot BH \cdot \cos{\theta} \] 32 | 代入各式可得 33 | \[ AB^2 = \tan^2{\alpha} + \tan^2{\beta} - 2 \tan{\alpha} \tan{\beta} \cos{\theta} \] 34 | 再由余弦定理可得 35 | \[ \cos{\gamma} = \frac{AO^2+BO^2-AB^2}{2 \cdot AO \cdot BO} \] 36 | 代入各式最终得 37 | \[ \cos{\gamma} = \cos{\alpha}\cos{\beta}+\sin{\alpha}\sin{\beta}\cos{\theta} \] 38 | 这便是最终结果,或者写成由三条射线夹角表达二面角的形式: 39 | \[ \cos{\theta} = \frac{\cos{\gamma}-\cos{\alpha}\cos{\beta}}{\sin{\alpha}\sin{\beta}} \] 40 | 41 | 在这结果中分别取 $\theta = \pi$ 和 $\theta = 0$,我们就分别得到余弦的和角公式和差公式: 42 | \begin{eqnarray*} 43 | \cos{(\alpha+\beta)} & = & \cos{\alpha}\cos{\beta} - \sin{\alpha}\sin{\beta} \\ 44 | \cos{(\alpha-\beta)} & = & \cos{\alpha}\cos{\beta} + \sin{\alpha}\sin{\beta} 45 | \end{eqnarray*} 46 | 另外一个特殊的情况是,当二面角为直二面角时,有 47 | \[ \cos{\gamma} = \cos{\alpha}\cos{\beta} \] 48 | 49 | 有了这个结果,对于前述空间中一点引出三条射线的模型,三条射线的夹角,与三个二面角之间的关系就清楚了。 50 | 51 | 这里再给出一个这公式的一个向量证明: 52 | \begin{proof}[证明] 53 | 取射线$OA$、$OB$、$OC$三个方向上的单位向量$\bm a$、$\bm b$、$\bm c$,则有 54 | \[ \bm a\cdot \bm b=\cos{\gamma}, \bm b \cdot \bm c = \cos{\alpha}, \bm c \cdot \bm a = \cos{\beta} \] 55 | 以及 56 | \[ (\bm b\times \bm c)(\bm c \times \bm a) = \sin{\alpha}\sin{\beta}\cos{\theta} \] 57 | 而根据向量混合积与外积的运算性质,有 58 | \begin{eqnarray*} 59 | && (\bm b\times \bm c)(\bm c \times \bm a) \\ 60 | & = & (\bm c \times (\bm c \times \bm a)) \cdot \bm b \\ 61 | & = & ((\bm c \cdot \bm a) \bm c - ( \bm c \cdot \bm c) \bm a) \cdot \bm b \\ 62 | & = & (\cos{\beta} \bm c - \bm a) \cdot \bm b \\ 63 | & = & \cos{\alpha}\cos{\beta}-\cos{\gamma} 64 | \end{eqnarray*} 65 | 于是便得 66 | \[ \cos{\alpha}\cos{\beta}-\cos{\gamma} = \sin{\alpha}\sin{\beta}\cos{\theta} \] 67 | \end{proof} 68 | 69 | \begin{example} 70 | 根据所证余弦公式,可以知道三面角的三个面角$\alpha$、$\beta$、$\gamma$满足下式 71 | \[ \left| \frac{\cos{\gamma}-\cos{\alpha}\cos{\beta}}{\sin{\alpha}\sin{\beta}} \right| \leqslant 1 \] 72 | 如何不通过二面角余弦值范围来得到这个结论? 73 | 74 | 在本节开始时我们便叙述了三面角的三个面角有两两之和大于第三者的结论,但是考虑一下,如果其中两个面角$\alpha$、$\beta$之和超过了$\pi$,那么考虑第三个面角$\gamma$的最大能达到多少,容易知道,它的最大值不是$\alpha+\beta$,而是$2\pi-(\alpha+\beta)$,也就是 75 | \[ |\alpha-\beta| \leqslant \gamma \leqslant \min\{\alpha+\beta,2\pi-(\alpha+\beta)\} \] 76 | 此不等式的两端都受限于$[0,\pi]$,所以 77 | \[ \cos{(\alpha-\beta)} \geqslant \cos{\gamma} \geqslant \cos{(\alpha+\beta)} \] 78 | 即 79 | \[ |\cos{\gamma}-\cos{\alpha}\cos{\beta}| \leqslant |\sin{\alpha}\sin{\beta}| \] 80 | 于是结论成立. 81 | \end{example} 82 | 83 | \begin{example}[根据经纬度计算地球上两点间的(球面)距离] 84 | 在这个例子中,我们要研究的是,已知地球上两点的经纬度坐标,如果计算出这两点间的球面距离。 85 | 86 | \begin{figure}[htbp] 87 | \centering 88 | \includegraphics{content/plane-geometry/pic/distance-on-ball-accord-longitude-latitude.pdf} 89 | \caption{地球上两点间的球面距离} 90 | \label{fig:distance-on-ball-accord-longitude-latitude} 91 | \end{figure} 92 | 93 | 如 \autoref{fig:distance-on-ball-accord-longitude-latitude},球面上有两点 $A(u_1, v_1)$ 和 $B(u_2,v_2)$,$u$和$v$分别表示经度和纬度,现在想知道如何根据这两点的经纬度以及地球半径$R$计算两点间的球面距离. 94 | 95 | 根据弧长公式,这只需要计算出这两点对地心的张角便可。作出通过$A$和$B$两点的经线和通过$B$的纬线,再取北极点$N$,那么由射线$OA$、$OB$、$ON$便构成一个三面角,$A$、$B$两点对地心的张角$\angle AOB$正是这三面角的面角之一,而面角$\angle AON$和$\angle BON$正好是$A$、$B$两点纬度角的余角,即 96 | \[ \angle AON = \frac{\pi}{2}-v_1, \angle BON = \frac{\pi}{2}-v_2 \] 97 | 根据三面角余弦公式,只要再知道二面角$A-ON-B$,就能得出$\angle AOB$,而二面角$A-ON-B$正好是$A、B$两点的经度差,于是 98 | \[ \cos{\angle AOB} = \cos{\left(\frac{\pi}{2}-v_1\right)}\cos{\left(\frac{\pi}{2}-v_2\right)}+\sin{\left( \frac{\pi}{2}-v_1 \right)}\sin{\left(\frac{\pi}{2}-v_2\right)}\cos{(u_1-u_2)} \] 99 | 所以最终$A$、$B$两点间的球面距离是 100 | \[ d_{AB} = R\arccos(\sin{v_1}\sin{v_2}+\cos{v_1}\cos{v_2}\cos{(u_1-u_2)}) \] 101 | \end{example} 102 | 103 | \subsection{三面角的正弦定理} 104 | \label{sec:sine-thoream-of-trihedral-angle} 105 | 106 | 三面角的三个面角之间有类似于三角形的三边之间的大小关系,那咱们类比一下,三面角的三个面角相当于三角形的三条边,而它的三个二面角相当于三角形的三个内角,那么,在这种类比下,三角形的正弦定理是否可以照搬到三面角中呢,也就是下面的式子是否成立: 107 | \[ \frac{\sin{\alpha}}{\sin{\angle OA}} = \frac{\sin{\beta}}{\sin{\angle OB}} = \frac{\sin{\gamma}}{\sin{\angle OC}} \] 108 | 这里的 $\angle OA$、$\angle OB$、$\angle OC$分别指代三条射线处的二面角。 109 | 110 | 在上一小节我们已经用余弦公式刻画了三面角的二面角是如何由它的三个面角决定的,利用它可以直接写出(注意为了方便,颠倒了一下分子分母) 111 | 112 | \begin{eqnarray*} 113 | \frac{\sin^{2}{\theta}}{\sin^2{\gamma}} & = & \frac{1}{\sin^2{\gamma}} \cdot \left( 1-\frac{(\cos{\gamma}-\cos{\alpha}\cos{\beta})^2}{\sin^2{\alpha}\sin^2{\beta}} \right) \\ 114 | & = & \frac{\sin^2{\alpha}\sin^2{\beta}-\cos^2{\gamma}-\cos^2{\alpha}\cos^2{\beta}+2\cos{\alpha}\cos{\beta}\cos{\gamma}}{\sin^2{\alpha}\sin^2{\beta}\sin^2{\gamma}} 115 | \end{eqnarray*} 116 | 117 | 到了这里,可以想见,分母以及分子的后半部分已经成为轮换对称式,如果分子的前半部分也能写成关于 $\alpha$、$\beta$、$\gamma$ 的轮换对称式,那么大功就告成了,事实也确实如此: 118 | \begin{eqnarray*} 119 | && \sin^2{\alpha}\sin^2{\beta}-\cos^2{\gamma}-\cos^2{\alpha}\cos^2{\beta} \\ 120 | & = & (1-\cos^2{\alpha})(1-\cos^2{\beta})-\cos^2{\gamma}-\cos^2{\alpha}\cos^2{\beta} \\ 121 | & = & 1-\cos^2{\alpha}-\cos^2{\beta}-\cos^2{\gamma} 122 | \end{eqnarray*} 123 | 124 | 这就证实了前面的正弦连等式是成立的,仿照三角形,那式子我们就称为三面角的 \emph{正弦定理},而且还知道了连等式的值: 125 | 126 | \begin{eqnarray*} 127 | && \frac{\sin{\alpha}}{\sin{\angle OA}} = \frac{\sin{\beta}}{\sin{\angle OB}} = \frac{\sin{\gamma}}{\sin{\angle OC}} \\ 128 | & = & \frac{\sin{\alpha}\sin{\beta}\sin{\gamma}}{\sqrt{1-\cos^2{\alpha}-\cos^2{\beta}-\cos^2{\gamma}+2\cos{\alpha}\cos{\beta}\cos{\gamma}}} 129 | \end{eqnarray*} 130 | 131 | %%% Local Variables: 132 | %%% mode: latex 133 | %%% TeX-master: "../../elementary-math-note" 134 | %%% End: 135 | -------------------------------------------------------------------------------- /content/prepare/determinant.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{行列式} 3 | \label{sec:determinant} 4 | 5 | \subsection{奇排列与偶排列} 6 | \label{sec:odd-permutation-and-even-permutation} 7 | 8 | 为了讨论行列式的每一项的符号,这一小节来讨论下奇排列与偶排列。 9 | 10 | 我们来考虑正整数$1,2,\ldots,n$的任一排列,称其为一个$n$级排列,交换其中两个元素的位置的操作称为一个 \emph{对换}, 我们先指出如下定理 11 | \begin{theorem} 12 | \label{theorem:all-rangement-can-be-producted-by-exchange} 13 | 正整数$1,2,\ldots,n$的任一排列$a_1,a_2,\ldots,a_n$均可由原始排列$1,2,\ldots,n$经过有限次对换得到,同样它也可以经过有限次对换得出原始排列$1,2,\ldots,n$。 14 | \end{theorem} 15 | 16 | \begin{proof}[证明] 17 | 我们给出一个实际的对换方案,如果$a_1 \neq 1$,则必然有某个$a_i=1(i>1)$,于是我们先对换$a_1$和$a_i$,对换之后就可以使得新的$a_1=1$了,然后再看$a_2$是否等于2,如果不是则做类似处理,依次这样下去,最多对换$n-1$次,便可以得出原始排列$1,2,\ldots,n$,这是一个对换方案,然后把这个对换方案做一个逆对换,便可以由原始排列$1,2,\ldots,n$得出排列$a_1,a_2,\ldots,a_n$. 18 | \end{proof} 19 | 20 | 显然由这定理可知,任意两个不同的$n$级排列都可以通过对换操作互相转换。 21 | 22 | 现在我们准备引入排列的奇偶性,为此先给出如下结论 23 | \begin{theorem} 24 | 如果一个排列是经由原始排列$1,2,\ldots,n$通过奇数次对换得到,则它也只能经由奇数次对换得到,同样,如果它是由原始排列经过偶数次对换得到,则它也只能通过偶数次对换得到。 25 | \end{theorem} 26 | 27 | \begin{proof}[证明] 28 | 我们对排列的级数$n$作数学归纳法。显然$n=1,2$时结论均成立,假定结论对小于等于$n$级的排列都成立,我们来考虑$n+1$级排列的情况。 29 | 30 | 假定一个$n+1$级排列$a_1,a_2,\ldots,a_n,a_{n+1}$是由原始排列$1,2,\ldots,n,n+1$经由奇数次对换得到的, 31 | \end{proof} 32 | 33 | 由这定理可知对于一个确定的$n$级排列,由原始排列得到它的对换次数的奇偶数是确定的,根具体的对换方案无关,仅由排列本身确定,为此我们把只能由原始排列通过奇数次对换而得到的排列称为\emph{奇排列},而把只能由偶数次对换而得到的排列称为\emph{偶排列},根据上面两个定理可知,一个排列,必然要么是奇排列要么是偶数列,不能两者都是或者两者都不是。 34 | 35 | 由上述定理立即可得: 36 | \begin{theorem} 37 | 对排列作一次对换将改变其奇偶性。 38 | \end{theorem} 39 | 40 | 虽然我们定义了排列的奇偶性,但对于一个具体的排列,要指出它是奇排列还是偶排列却还是不容易的,最简单的办法就是按照\autoref{theorem:all-rangement-can-be-producted-by-exchange}的证明过程中的步骤构成出一个对换方案来,并由其对换次数来确定排列的奇偶性,但我们还有更可行的方法,为此提出 \emph{正序} 与 \emph{逆序} 的概念。 41 | \begin{definition} 42 | 对于正整数$1,2,\ldots,n$的任一排列$a_1,a_2,\ldots,a_n$,如果其中两个元素$a_i$和$a_j$满足$ia_j$,则称其为这排列中的一个 \emph{逆序},一个排列中所有正序的个数称为 \emph{正序数},所有逆序的个数称为 \emph{逆序数}。 43 | \end{definition} 44 | 45 | 显然,一个排列中的正序数与逆序数之和是$C_n^2=n(n-1)/2$. 46 | 47 | 我们指出 48 | \begin{theorem} 49 | \label{theorem:odevity-of-rangement-equivalent-to-its-inversion-odvity} 50 | 一个排列的逆序数,与排列本身具备相同的奇偶性。 51 | \end{theorem} 52 | 53 | 为了证明这个定理,我们先证如下引理 54 | \begin{lemma} 55 | \label{lemma:all-rangement-can-be-producted-by-adjacent-exchange} 56 | 正整数$1,2,\ldots,n$的任一排列都可以由原始排列$1,2,\ldots,n$通过有限次相邻元素的对换得到。 57 | \end{lemma} 58 | 59 | \begin{proof}[证明] 60 | 我们仍然实际构造出一个方案,假设这排列是$a_1,a_2,\ldots,n$,如果$a_1 \neq 1$,则在原始排列中,把数$a_i$依次跟它前一个元素对换,直到把它移动第一个元素的位置,同样的方法逐个应用到$a_2,a_3,\ldots,a_n$,即可在有限步内将原始排列$1,2,\ldots,n$变成$a_1,a_2,\ldots,a_n$。 61 | \end{proof} 62 | 63 | 有了这引理,我们回到\autoref{theorem:odevity-of-rangement-equivalent-to-its-inversion-odvity}的证明上 64 | \begin{proof}[证明] 65 | 由\autoref{lemma:all-rangement-can-be-producted-by-adjacent-exchange},排列可以由原始排列通过相邻元素的对换而得来,而这对换的次数的奇偶性又是排列自身确定的,而显然相邻元素的对换必然改变逆序数的奇偶性,所以经过多少次相邻元素的对换,逆序数的奇偶性就改变多少次,而原始排列$1,2,\ldots,n$的逆序数是零,所以逆序数的奇偶性,与对换次数的奇偶性相同,即与排列的奇偶性相同。 66 | \end{proof} 67 | 68 | 显然,利用逆序数是容易求得一个具体排列的奇偶性的。 69 | 70 | \subsection{行列式的概念} 71 | \label{sec:determinant-concept} 72 | 73 | 我们把二级行列式和三级行列式的概念推广到任意$n\times n$的数阵上,对于一个$n \times n$的数阵 74 | \[ 75 | \begin{pmatrix} 76 | a_{11} & a_{12} & \cdots & a_{1n} \\ 77 | a_{21} & a_{22} & \cdots & a_{2n} \\ 78 | \vdots & \vdots & \vdots & \vdots \\ 79 | a_{n1} & a_{n2} & \cdots & a_{nn} 80 | \end{pmatrix} 81 | \] 82 | 它的行列式是所有位于不同行且不同列的元素的乘积的代数和,也就是说,求和中的每一项如果不考虑符号都具备形式 83 | \[ a_{i_1j_1}a_{i_2j_2} \cdots a_{i_nj_n} \] 84 | 其中$i_1,i_2,\ldots,i_n$和$j_1,j_2,\ldots,j_n$都是$1,2,\ldots,n$的一个排列,而这求和中将会遍及所有可能的排列。我们把上式按$i_k$的顺序重新排列成 85 | \[ a_{1j_1}a_{2j_2} \cdots a_{nj_n} \] 86 | 这时$j_1,j_2,\ldots,j_n$已经不再是原来的排列了,我们只是仍使用相同的符号,然后这一项的符号是这样定义的:当$j_1,j_2,\ldots,j_n$是奇排列是带负号,为偶排列时带正号,这样所有这样的项的和便是由数阵所决定的行列式的值。 87 | \[ 88 | \begin{vmatrix} 89 | a_{11} & a_{12} & \cdots & a_{1n} \\ 90 | a_{21} & a_{22} & \cdots & a_{2n} \\ 91 | \vdots & \vdots & \vdots & \vdots \\ 92 | a_{n1} & a_{n2} & \cdots & a_{nn} 93 | \end{vmatrix} 94 | = \sum_{j_1,j_2,\ldots,j_n} (-1)^{\tau (j_1,j_2,\ldots,j_n)} a_{1j_1}a_{2j_2} \cdots a_{nj_n} 95 | \] 96 | 97 | \subsection{行列式的性质与计算} 98 | \label{sec:determinant-properties} 99 | 100 | \subsection{行列式按一行(列)展开} 101 | \label{sec:determinant-expand-by-row-or-column} 102 | 103 | \subsection{Cramer法则} 104 | \label{sec:cramer-rule} 105 | 106 | \subsection{Laplace定理} 107 | \label{sec:laplace-theorem} 108 | 109 | 110 | 111 | 112 | %%% Local Variables: 113 | %%% mode: latex 114 | %%% TeX-master: "../../elementary-math-note" 115 | %%% End: 116 | -------------------------------------------------------------------------------- /content/prepare/inclusion-exclusion-priciple.tex: -------------------------------------------------------------------------------- 1 | 2 | \section{容斥原理} 3 | \label{sec:inclusion-exclusion-principle} 4 | 5 | \begin{principle}[容斥原理] 6 | 用$|A|$表示集合$A$的元素个数,则多个集合的并集的元素个数是: 7 | \begin{equation} 8 | \label{eq:inclusion-exclusion-principle} 9 | \begin{split} 10 | |\cup_{i=1}^nA_i|= & \sum_{i=1}^n|A_i|-\sum_{1\leqslant i 0$,用任意一个以$r$为极限的有理数的序列$r_i(i=1,2,\ldots)$去逼近它,无理指数幂$a^r$的定义为$a^r=\lim_{n \to \infty}a^{r_n}$. 8 | 9 | 这个极限值是与序列$r_n$无关的,用任何一个以$r$为极限的有理数序列,所得的那个极限都是相同的。这就是高等数学中无理指数幂的定义。 10 | 11 | 接下来我们尝试在初等数学范围内解释一下无理指数幂定义。 12 | 13 | 先回顾一下在中学数学范围内是如何定义出一个实数的。 14 | 15 | 对于字面上能够写出来的数,比如整数2与小数3.2,我们清楚它的每一个数位上的数字是多少,我们就认为我们定出了一个数。比如3.2的个位是3,十分位为2,其余为零。 16 | 17 | 有些数我们是不可能把它的每一位都写出来的,比如说无限循环小数$\frac{1}{3}$,但是我们清楚它的小数部分每一位都是3,这样我们也认为我们定出了一个数。 18 | 19 | 圆周率$\pi$是一个自然界中存在的常数,这个无限不循环小数我们也不能把它的每一位都写出来,甚至我们为了确定它的小数部分第100位数是几都得经过一番计算,但无论如何,它的每一位数我们也是能够确定的,只是这需要一些计算而已\footnote{这计算需要利用高等数学中的级数展开式}。 20 | 21 | 还有一些数,比如$\ln{2}$,我们是用它所满足的一些性质来刻画它的,如果要问$\ln{2}$的某一数位上的数字是几,我们也需要通过一些计算步骤才能得出\footnote{这同样需要利用高等数学中的级数展开式}。 22 | 23 | 所以我们可以说,我们认为我们定出了一个数,当且仅当我们能够回答出来这个数的每一个数位上的数字是多少,无论这个回答是立刻就能作出的,还是需要经过一系列的运算。 24 | 25 | 有了这点认识,我们要定义如像$2^{\sqrt{3}}$这样的无理指数幂,我们只要能够按照某种规则确定出它的每一个数位上的数值就行了。 26 | 27 | %%% 先说明一下,所有实数都可以用无限小数表示,这并不是简单的把有限小数后面补无穷个零,而是把有限小数的最后一个不为零的数位减一,这一位之后的所有的数位全部改为9,比如说,整数1就成了$0.\dot{9}$,$3.2$就成了$3.1\dot{9}$,这个表示法不会改变数值的值\footnote{这要利用等数列的无穷求和才能证明。}。这样表示的好处是:对任何两个实数比较大小时,可以直接按数位比较就行了,按数位从高到低的顺序\footnote{双端无穷序列。},找出第一个不相同的数位,谁的这一位大,谁就大。这种表示法就避免了当1与$0.\dot{9}$比较大小时所带来的特例问题。本文以下提到的实数,都是用这种表示法来表示。 28 | 29 | 把所有实数都用小数的形式来表示,即 30 | \begin{equation} 31 | \label{eq:decimal-expression-of-real} 32 | x=\cdots x_2x_1x_0.x_{-1}x_{-2}\cdots(0 \leqslant x_i \leqslant 9) 33 | \end{equation} 34 | 在这种表示下,对于两个实数$x$和$y$,如果从数从高到低的顺序(双端无穷序列),第一个不相同的数位上,$x$的该数位大于$y$的该数位,则有$x \geqslant y$,如果所有数位都相同,则必有$x=y$。 35 | 36 | 上面为何是大于等于而不是大于呢,考察一下1与$0.\dot{9}$就知道了,这两个数是相等的,因为它们的差可以小于任何一个正实数,从而这个差值就只能是零,所以有$1=0.\dot{9}$。为了能在上段结论中去掉这个等号,我们约定,如果一个无限循环小数的循环部分是9,我们就把它收上来,也就是说$1.12\dot{9}=1.13$,在这样的约定下,刚才比较大小时如果第一个不相同的数位上谁大,谁的值就大。 37 | 38 | 提一下一个实数的不足近似值和过剩近似值的概念\footnote{本文这个利用不足近似值和过剩近似值进行夹逼的思路来自于参考文献\cite{math-analysis}.},对于任何一个实数,它的$n$位 \emph{不足近似值} 是 39 | \begin{equation} 40 | \label{eq:lower-approximate-value-nth} 41 | \underline{x_n}=\cdots x_2x_1x_0.x_{-1}x_{-2}\cdots x_{-n} 42 | \end{equation} 43 | 它的$n$位 \emph{过剩近似值} 是 44 | \begin{equation} 45 | \label{eq:upper-approximate-value-nth} 46 | \overline{x_n}=\cdots x_2x_1x_0.x_{-1}x_{-2}\cdots x_{-n} + 10^{-n} 47 | \end{equation} 48 | 通俗的说法就是,$n$位不足近似值是舍掉小数点后第$n$位以后的数位,而$n$位过剩近似值则是在把这以后的数位收上来。易知序列$\underline{x_n}$单调不减而序列$\overline{x_n}$单调不增,而且有$\overline{x_n}-\underline{x_n}=10^{-n}$。 49 | 50 | 从定义可以看出,对于任何一个实数$x$,不等式$\underline{x_n} \leqslant x \leqslant \overline{x_n}$永远成立,但是两边的等号不能同时成立。更进一步,对于任意两个正整数$m$和$n$,实际上有$\underline{x_m} < \overline{x_n}$ 成立,这个很容易说明,假定$m0$和一个无理数$r$,我们作出$r$的不足近似值序列$\underline{r_n}$和过剩近似值序列$\overline{r_n}$,因为$\underline{r_n}$和$\overline{r_n}$都是有理数,我们作两个序列$L_n=a^{\underline{r_n}}$和$M_n=a^{\overline{r_n}}$。 53 | 54 | 现在我们来证明,存在唯一一个实数$P=P(a,r)$,它能够介于所有的$L_n$和所有的$M_n$之间,具体来说,就是在$a>1$的情况下不等式$L_n1$的情况进行论证,至于$01$,于是可以验证$\frac{1}{P(\frac{1}{a},r)}$就符合要求。 57 | 58 | 在$a>1$的假定下对任意两个正整数$m$和$n$就有$L_m1$和任何一个大于1的实数$T$,存在一个正有理数$t$,使得对任何一个满足$0\frac{1}{t_n}$时式\ref{eq:irrational-power-25252jsg}就能成立,而$\frac{1}{t_n}$显然也是一个与$m$无关的常数,所以也可以找到一个与$n$有关的有理数$s_n$,使得$m>s_n$时便有$10^m>\frac{1}{t_n}$。 79 | 80 | 所以我们得到的结论就是,存在与正整数$n$有关的有理数$s_n$,使得当$m>s_n$时便恒有$M_m-L_m<10^{-n}$,于是我们的要找的实数$P$就这样定义,它在$10^{-n}$这一位上的数值,与$m>s_n$时$L_m$在这一位上的数值相同(容易知道$m$继续增大时,这个数位上的值不会变)。通俗的说就是,在$L_m$随着$m$增长(单调不减)的过程中,我们取它某一位上稳定下来的数值(稳定是指随着$m$无限增大都不会改变)。这样我们确实定出了一个实数,接下来需要做的事情就是,证明对于任意正整数$n$都有$L_ns_n$时,$P-L_m<10^{-n}$,所以有此结论。有了这个,利用反证法就可以说明$P-1$并且都具有相同的符号(可以为零),则有不等式 70 | \[ (1+x_1)(1+x_2)\cdots(1+x_n) \geqslant 1+x_1+x_2+\cdots+x_n \] 71 | 成立,这可以用数学归纳法加以证明,一个特别的情况是,如果实数$x>-1$,则对任意正整数$n$,有 72 | \[ (1+x)^n \geqslant 1+nx \] 73 | \end{example} 74 | 75 | 除了常用的第一数学归纳法以外,我们还有以下的: 76 | \begin{principle}[第二数学归纳法] 77 | 如果与正整数有关的命题$P(n)$满足: 78 | \begin{enumerate} 79 | \item $P(1)$成立; 80 | \item 由$P(1),P(2),\dots,P(k)$成立能够推证出$P(k+1)$成立; 81 | \end{enumerate} 82 | 那么该命题对于一切正整数成立. 83 | \end{principle} 84 | 有些命题在递推过程中,依赖的是前面的所有结论而非仅仅依赖前一个结论,此时第二数学归纳法就非常适用,例如下面这个例子: 85 | 86 | \begin{example} 87 | \label{example:a-power-n-b-power-n-factoring} 88 | 由平方差公式和立方差 89 | \begin{eqnarray*} 90 | a^2-b^2 & = & (a-b)(a+b) \\ 91 | a^3-b^3 & = & (a-b)(a^2+ab+b^2) 92 | \end{eqnarray*} 93 | 出发,可以利用数学归纳法得出一般的$n$次方差公式 94 | \[ a^n - b^n = (a-b)(a^{n-1}+a^{n-2}b+\cdots+ab^{n-2}+b^{n-1}) \] 95 | 或者利用求和符号写成 96 | \[ a^n-b^n = (a-b)\sum_{i=0}^{n-1}a^{n-1-i}b^i \] 97 | \begin{proof}[证明] 98 | 先用数学归纳法证明公式的特殊情况,即$a=1,b=t$的情况 99 | \[ 1-t^n = (1-t)\sum_{i=0}^{n-1}t^i \] 100 | 当$n=2$时,即$1-t^2=(1-t)(1+t)$,公式是成立的,假定上式对于小于等于$n$的正整数都成立,那么对于正整数$n+1$的情形,就有 101 | \begin{eqnarray*} 102 | 1-t^{n+1} & = & (1+t)(1-t^n)-t(1-t^{n-1}) \\ 103 | & = & (1-t)(1+t)\sum_{i=0}^{n-1}t^i - t(1-t)\sum_{i=0}^{n-2}t^i \\ 104 | & = & (1-t) \left( \sum_{i=0}^{n-1}t^i + t\sum_{i=0}^{n-1}t^i -t\sum_{i=0}^{n-2}t^i \right) \\ 105 | & = & (1-t) \left( \sum_{i=0}^{n-1}t^i + \sum_{i=0}^{n-1}t^{i+1} -\sum_{i=0}^{n-2}t^{i+1} \right) \\ 106 | & = & (1-t) \left( \sum_{i=0}^{n-1}t^i + \sum_{i=1}^{n}t^{i} -\sum_{i=1}^{n-1}t^{i} \right) \\ 107 | & = & (1-t)\sum_{i=0}^nt^n 108 | \end{eqnarray*} 109 | 于是上式对于正整数$n+1$也成立,在上式中取$t=\dfrac{a}{b}$,即可得出要证的等式。 110 | \end{proof} 111 | 112 | 从证明过程中所可以看出,奠基不是从1开始的,而是从2开始的,而且为了证明$P(n+1)$成立,利用了假设$P(n)$和$P(n-1)$成立。 113 | \end{example} 114 | 115 | \begin{principle}[倒推归纳法] 116 | 如果与正整数有关的命题$P(n)$满足: 117 | \begin{enumerate} 118 | \item 有无穷多个正整数$n$使命题成立; 119 | \item 由$P(k)$成立能够推证$P(k-1)$成立; 120 | \end{enumerate} 121 | 那么该命题对于一切正整数成立。 122 | \end{principle} 123 | 倒推归纳法的原理也是显而易见的,对于任何一个给定的正整数$n$,由于不超过$n$的正整数只有有限个,所以必然存在一个大于$n$的正整数$N$,使得命题$P(N)$成立,再倒推回来,知$P(n)$成立。 124 | 125 | \begin{example}[均值不等式] 126 | 作为一个例子,我们用倒推归纳法来证明均值不等式,这比用通常的第一数学归纳法来得更加容易: 127 | 128 | 均值不等式的内容是: 对任意$n(n\geqslant2)$个正实数$a_i$,有下面不等式成立: 129 | \[ \frac{1}{n}\sum_{i=1}^na_i \geqslant \left( \prod_{i=1}^na_i \right)^{\frac{1}{n}} \] 130 | 131 | \begin{proof}[证明]\footnote{这个倒推归纳法的证明来自于参考文献\cite{the-secret-of-inequality}.} 132 | 对$n=2$的情形,有$\frac{1}{2}(a_1+a_2)-\sqrt{a_1a_2}=\frac{1}{2}(\sqrt{a_1}-\sqrt{a_2})^2\geqslant 0$知不等式成立。 133 | 134 | 反复使用$n=2$的结论,我们就可以得到当$n$是2的幂的时候不等式是成立的,然而2的幂是无穷多的,所以只要证明,不等式如果对$n+1$个正实数成立就必然对$n$个正实数也成立就可以了。 135 | 136 | 对于任意$n$个正实数,我们再添加一个正实数$a_{n+1}=\frac{1}{n}\sum_{i=1}^na_i$构成$n+1$个正实数,由假设,不等式对$n+1$个正实数是成立的,所以有 137 | \[ 138 | \frac{1}{n+1}\sum_{i=1}^{n+1}a_i \geqslant \left( \prod_{i=1}^{n+1}a_i \right)^{\frac{1}{n+1}} 139 | \] 140 | 而由于$a_{n+1}$正好等于其它$n$个实数的平均数,所以 141 | \[ \frac{1}{n+1}\sum_{i=1}^{n+1}a_i = \frac{1}{n}\sum_{i=1}^{n}a_i \] 142 | 因此前一式即为: 143 | \[ 144 | \frac{1}{n}\sum_{i=1}^{n}a_i \geqslant \left( \prod_{i=1}^{n}a_i \right)^{\frac{1}{n+1}} \cdot \left( \frac{1}{n}\sum_{i=1}^na_i \right)^{\frac{1}{n+1}} 145 | \] 146 | 化简即得 147 | \[ 148 | \frac{1}{n}\sum_{i=1}^na_i \geqslant \left( \prod_{i=1}^na_i \right)^{\frac{1}{n}} 149 | \] 150 | 即得证。 151 | \end{proof} 152 | \end{example} 153 | 154 | \begin{principle}[跳跃数学归纳法] 155 | 如果与正整数有关的命题$P(n)$满足: 156 | \begin{enumerate} 157 | \item $P(1)$,$P(2)$,$\ldots$,$P(m)$成立; 158 | \item 由$P(k)$成立能够推证$P(k+m)$成立; 159 | \end{enumerate} 160 | 那么该命题对于一切正整数成立。 161 | \end{principle} 162 | 163 | 数学归纳法还有其他形式,比如解决对偶性问题(如正余弦)的螺旋归纳法,解决同时与两个正整数相关的命题的二重归纳法等,但它们的道理都是类似的。 164 | 165 | 下面举几个应用数学归纳法的例子。 166 | 167 | \begin{example} 168 | 对于任意两个正整数$m}}\\ 8 | \vspace*{0.3cm} 9 | 2014-05-25 10 | \end{center} 11 | -------------------------------------------------------------------------------- /elementary-math-note.tex: -------------------------------------------------------------------------------- 1 | 2 | \documentclass{ctexbook} 3 | 4 | \input{use-packages} 5 | \input{cmd-env} 6 | 7 | \title{\kaishu{初等数学笔记}} 8 | \author{zhcosin} 9 | \date{\today 编译} 10 | 11 | \begin{document} 12 | 13 | \maketitle 14 | 15 | \pagenumbering{Roman} %Roman字体书写页码 16 | 17 | \include{preface} 18 | 19 | \setcounter{page}{1} %重新开始页码 20 | \include{tableofcontents} 21 | 22 | \setcounter{page}{1} %重新开始页码 23 | \mainmatter %前言和目录页码结束,正文重新开始设置页码 24 | 25 | \include{content/prepare/prepare} 26 | 27 | \include{content/number-theory/number-theory} 28 | 29 | \include{content/algebra/algebra} 30 | 31 | %\include{content/number-sequence/number-sequence} 32 | 33 | %\include{content/inequation/inequation} 34 | 35 | % \include{content/vector/vector} 36 | 37 | % \include{content/combination/combination} 38 | 39 | \include{content/plane-geometry/plane-geometry} 40 | 41 | %\include{content/analytic-geometry/analytic-geometry} 42 | 43 | %\include{content/solid-geometry/solid-geometry} 44 | 45 | 46 | %\bibliographystyle{base} 47 | %\bibliography{elementary-math-note} 48 | %\addcontentsline{toc}{chapter}{参考文献} 49 | %\nocite{*} 50 | 51 | \input{bibliography} 52 | 53 | \end{document} 54 | 55 | %%% Local Variables: 56 | %%% mode: latex 57 | %%% TeX-master: t 58 | %%% End: 59 | -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | 2 | MAIN=elementary-math-note 3 | 4 | TEXMAINDOC=elementary-math-note 5 | 6 | TEMPFILECLASS=\ 7 | *.log \ 8 | *.aux \ 9 | *.blg \ 10 | *.bbl \ 11 | *.lof \ 12 | *.toc \ 13 | *.lot \ 14 | *.out \ 15 | 16 | LATEXCMD=xelatex 17 | 18 | LATEXOPTIONS=-file-line-error -interaction=nonstopmode 19 | 20 | PDFVIEWER=evince 21 | 22 | viewpdf : $(MAIN).pdf 23 | $(PDFVIEWER) $(MAIN).pdf & 24 | 25 | $(MAIN).pdf : 26 | $(LATEXCMD) $(LATEXOPTIONS) $(TEXMAINDOC) 27 | $(LATEXCMD) $(LATEXOPTIONS) $(TEXMAINDOC) 28 | 29 | clean : 30 | rm -f $(TEMPFILECLASS) 31 | -------------------------------------------------------------------------------- /preface.tex: -------------------------------------------------------------------------------- 1 | 2 | \chapter*{序} 3 | \thispagestyle{empty} 4 | 5 | 这份笔记开工于2016年4月6日,其实它在这之前几年就应该动笔的,高考后的十年间,除了囫囵吞枣的学了一些高等数学内容外,数学能力没有与年龄同步增长,常引为恨事,所以打算以写作这份笔记为契机,给自己一个继续学习的机会,以期常有所思,常有所得。虽然平时也有一些数学上的思考,但终究没有积累下来,没有形成自己的知识体系,这份笔记算是在这方面的一个尝试。 6 | 7 | 其实我不能算是这份笔记的作者,只能算是整理者,因为其中属于我自己原创的内容其实很少,就这份笔记所涉及的内容而言,那些定理和结论都是前人几百年前甚至早在公元前就研究透彻了,我辈若是能在没接触前人成果的情况下独立发现一些结论就已经是非常不容易了,何况我是在早已经接触过这些结论甚至还大体记得推导证明过程的基础上进行了重新推导而已。这份笔记主要内容的来源,基本上是参考文献所列出的那几本书籍,这基本上也是我这几年所读过的书,实际上没有哪一部是认真读完过的,还有极少数的内容是我自己在没接触过前人结论的情况下自己推导所得(例如伯努利信封问题,我一直称为错位排列问题),这些内容主要以例子的形式出现。 8 | 9 | 这份笔记的写作受到了前苏联数学家菲赫金哥尔茨所著《微积分学教程》的影响,这是我最推崇的一部巨著,书中取材之广泛,讨论之深度和广度超乎我的想象能力,我也从这部书中受益良多,这份笔记也在取材的广度和深度方面甚至内容的组织方面都受到它的影响。 10 | 11 | 这份笔记目前没有成书之日,也没有什么计划之类,受限于自己的数学能力和工作闲暇,不定期的更新而已。 12 | 13 | 我最佩服的几何学家是古希腊的 Apollonius,中文译作阿波罗尼奥斯,他生活在公元前的古希腊,他所著的《圆锥曲线论》将圆锥曲线的性质几乎一网打尽,以致于后人在长达两千年间没能在这个领域有所建树,直到笛卡尔坐标几何的创立,他所采用的还是纯几何理论,当然他也是在一些前人的研究成果上结合自己的研究写出了这部巨著,有时间会认真读一读这部书的部分内容。让我惊叹的是这竟然是在公元前的希腊完成的,古希腊的数学到底是有多发达,何以古希腊没能在我们今天所称四大文明古国之列呢。 14 | 15 | 致谢也是不能缺少的,首先要感谢的是本书参考文献的作者们,是他们让我接触到了这么多精彩的数学内容,当然还有一些书没有在参考文献之列(其实是我也想不起来是从哪儿看到的了),也一并感谢。还要感谢的是《计算机程序设计艺术》一书的作者 Donald E. Knuth,他开发的\TeX 排版系统以及由之发展而来的 \LaTeX 系统,使得我排版自己的书籍成为可能,还有编辑器 Emacs 的作者 Richard Stallman,这个编辑器所带来的强大的功能和编辑体验对我完成这份笔记功不可没。最后还要感谢我的夫人和女儿,女儿的降生给了我们这个家庭前所未有的欢乐,我对她的信心是在她的学生生涯,数学学科不至于成为她的拦路虎。夫人在照顾女儿上的付出才让我得以有精力来完成这份笔记。还有我的父母和哥哥。 16 | 17 | 最后需要说明的是,这份笔记作为一份知识总结,没有在问题的引入和背景介绍方面下多少功夫(这远不是目前的篇幅所能完成的,而且也受作者经验和水平限制),因此并不适合于初学者用于学习新知识。 18 | 19 | 这份笔记的最新文档可以在以下链接找到,并在这个网页上不定期更新: 20 | 21 | \hyperref[pdf-download-link]{https://coding.net/u/zhcosin/p/math-notes-publish/git/blob/master/elementary-math-note.pdf} 22 | 23 | 有任何问题,欢迎邮件讨论: zhcosin@163.com. 24 | 25 | \vspace{1.5cm} 26 | 27 | \hfill zhcosin \hspace{5em} 28 | 29 | \hfill 2017-03-20 于成都华阳 \hspace{1.5em} 30 | 31 | 32 | %%% Local Variables: 33 | %%% mode: latex 34 | %%% TeX-master: "elementary-math-note" 35 | %%% End: 36 | -------------------------------------------------------------------------------- /tableofcontents.tex: -------------------------------------------------------------------------------- 1 | 2 | %\tableofcontents 3 | %\addcontentsline{toc}{chapter}{目录} 4 | 5 | \newcommand*\cdotfill{% 6 | \leavevmode 7 | \leaders \hbox to .5em {\hss\textcdot\hss}\hfill} 8 | 9 | \etocsetstyle{chapter} 10 | {% 11 | \setlength\rightskip{4\ccwd}% 12 | \addtolength\parfillskip{-\rightskip}% 13 | \etocskipfirstprefix 14 | } 15 | {\medskip} 16 | {% 17 | \bfseries 18 | \noindent 19 | \etocifnumbered 20 | {% 21 | \sbox0{\etocthenumber\unskip\quad}% 22 | \setlength\leftskip{\wd0}% 23 | \etoclink{\llap{\box0}\etocthename}% 24 | } 25 | {% 26 | \setlength\leftskip{\rightskip}% 27 | \hskip-\leftskip 28 | \etocname 29 | }% 30 | \nobreak\cdotfill\etocpage\par 31 | } 32 | {} 33 | 34 | \etocsetstyle{section} 35 | {\nopagebreak\normalfont} 36 | {\smallskip} 37 | {% 38 | \noindent 39 | \etocifnumbered 40 | {\etoclink{\llap{\etocthenumber\quad}\etocthename}} 41 | {\etocname}% 42 | \nobreak\cdotfill\etocpage\par 43 | } 44 | {} 45 | 46 | \etocsetstyle{subsection} 47 | {% 48 | \nopagebreak 49 | \begingroup 50 | \addtolength\parfillskip{\rightskip}% 51 | \addtolength\rightskip{\fill}% 52 | \etocskipfirstprefix 53 | \noindent 54 | } 55 | {\quad} 56 | {% 57 | \hbox{% 58 | \etoclink{% 59 | \etocifnumbered{\etocthenumber\enskip}{}% 60 | \etocthename\ (\etocthepage)% 61 | }% 62 | }% 63 | } 64 | {\par\endgroup} 65 | 66 | 67 | 68 | \setcounter{page}{1} %重新开始页码 69 | \tableofcontents 70 | %\addcontentsline{toc}{chapter}{目录} 71 | \mainmatter %前言和目录页码结束,正文重新开始设置页码 72 | 73 | %%% Local Variables: 74 | %%% mode: latex 75 | %%% TeX-master: "elementary-math-note" 76 | %%% End: 77 | -------------------------------------------------------------------------------- /use-packages.tex: -------------------------------------------------------------------------------- 1 | %\usepackage{minitoc} 2 | 3 | % 定制页面版式的宏包 4 | %\usepackage[a4paper,left=3.5cm,right=3.5cm, bottom=3.5cm,top=3.5cm]{geometry} 5 | \usepackage[a4paper,inner=4.5cm,outer=3cm, bottom=3.5cm,top=3.5cm]{geometry} 6 | 7 | % 定制目录样式的宏包 8 | \usepackage{etoc} 9 | 10 | % 定制日期时间格式的宏包 11 | \usepackage[yyyymmdd]{datetime} 12 | \renewcommand{\dateseparator}{-} 13 | 14 | % 数学必备宏包 15 | \usepackage{amsmath} 16 | \usepackage{amssymb} 17 | 18 | % 定理和证明环境 19 | \usepackage{amsthm} 20 | 21 | \usepackage{makecell} 22 | 23 | % 插图宏包,提供插图命令 \includegraphics 24 | \usepackage{graphicx} 25 | 26 | % 好看的向量箭头符号,命令是 \vv 27 | \usepackage{esvect} 28 | 29 | % 数学花体,命令是\mathscr 30 | \usepackage{mathrsfs} 31 | 32 | % 数学粗体,用于向量或矩阵等,命令是\bm 33 | \usepackage{bm} 34 | 35 | % 改善表格排版质量的宏包 36 | \usepackage{booktabs} 37 | 38 | % 使目录和各种引用具有超链接效果 39 | \usepackage[colorlinks,linkcolor=black,CJKbookmarks=true,bookmarksnumbered]{hyperref} 40 | 41 | % 定制插图和表格的标题的宏包 42 | \usepackage[font=small,labelfont=bf,labelsep=space]{caption} 43 | 44 | 45 | %%% Local Variables: 46 | %%% mode: latex 47 | %%% TeX-master: "elementary-math-note" 48 | %%% End: 49 | --------------------------------------------------------------------------------