1 斜线方程及其根
斜线方程:
直线上一点(a,b)并且存在直线的斜率k,则直线可表示
y
=
k
(
x
−
a
)
+
b
y=k(x-a) + b
y=k(x−a)+b
斜率:
k
=
(
y
−
y
1
)
/
(
x
−
x
1
)
k = (y-y1) / (x-x1)
k=(y−y1)/(x−x1)
根:
“根”一般是指多项式的零点;先将y更改为f(x),即
f
(
x
)
=
k
(
x
−
a
)
+
b
,
f
(
x
)
=
0
f(x)=k(x-a) + b, f(x)=0
f(x)=k(x−a)+b,f(x)=0时的x值就是方函数(x)的根,就是斜线和x轴(y=0这条线)的交点
2 切线方程及其根
切线定义:
假设有一条曲线的函数为
f
(
x
)
f(x)
f(x),那么其上就有一点
(
x
,
f
(
x
)
)
(x, f(x))
(x,f(x)),在该点画一条与曲线相切的线(刚好掠过该点),该线就是过点
(
x
,
f
(
x
)
)
(x, f(x))
(x,f(x))的切线
切线的斜率:
在曲线上,选取一个无限靠近x0的点
x
1
x_1
x1,这两个在曲线上的点分别为
(
x
0
,
f
(
x
0
)
)
、
(
x
1
,
f
(
x
1
)
)
(x_0,f(x_0))、(x_1,f(x_1))
(x0,f(x0))、(x1,f(x1))
那么经过这两个点的斜率为:
k
=
f
(
x
0
)
−
f
(
x
1
)
x
0
−
x
1
k = \frac{f(x_0)-f(x_1)} {x_0-x_1}
k=x0−x1f(x0)−f(x1),
因为x0无限趋近于x1时, 根据极限原理得到公式,斜率k:
k
=
lim
x
0
→
x
1
f
(
x
0
)
−
f
(
x
1
)
x
0
−
x
1
k=\lim\limits_{x0\to x1}\frac{f(x_0)-f(x_1)}{x_0-x_1}
k=x0→x1limx0−x1f(x0)−f(x1)
k
=
lim
h
→
0
f
(
x
+
h
)
−
f
(
x
)
h
k=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}
k=limh→0hf(x+h)−f(x)
切线方程:
y = kx +b,其中是切线的斜率,b是常量
根:
切线的根就是该切线和x轴的交点,
x
=
−
b
/
k
x=-b/k
x=−b/k
3 导数
导数定义:
通过
(
x
,
(
f
(
x
)
)
(x,(f(x))
(x,(f(x))的切线的斜率是x的一个函数,这个函数被称为函数
f
(
x
)
f(x)
f(x)的导数
f
′
(
x
)
f'(x)
f′(x),将极限公式种的h替换为
Δ
x
\Delta x
Δx,得到:
f
′
(
x
)
=
lim
Δ
x
→
0
f
(
x
+
Δ
x
)
−
f
(
x
)
Δ
x
f'(x)=\lim\limits_{\Delta x\to 0}\frac{f(x+\Delta x)-f(x)}{\Delta x}
f′(x)=Δx→0limΔxf(x+Δx)−f(x)
如果
f
(
x
)
=
x
2
f(x) = x^2
f(x)=x2,那么
f
′
(
x
)
f'(x)
f′(x)是什么?导数的推导:
f
′
(
x
)
=
lim
h
→
0
f
(
x
+
h
)
−
f
(
x
)
h
=
lim
h
→
0
(
x
+
h
)
2
−
x
2
h
=
lim
h
→
0
x
2
+
2
x
h
+
h
2
−
x
2
h
=
lim
h
→
0
2
x
h
+
h
2
h
=
lim
h
→
0
2
x
+
h
h
=
2
x
f'(x)=\lim\limits_{h\rightarrow 0}\frac{f(x+h)-f(x)}{h}= \lim\limits_{h\rightarrow 0}\frac{(x+h)^2-x^2}{h} =\lim\limits_{h\rightarrow 0}\frac{x^2+2xh+h^2-x^2}{h} =\lim\limits_{h\rightarrow 0}\frac{2xh+h^2}{h} =\lim\limits_{h\rightarrow 0}\frac{2x+h}{h} =2x
f′(x)=h→0limhf(x+h)−f(x)=h→0limh(x+h)2−x2=h→0limhx2+2xh+h2−x2=h→0limh2xh+h2=h→0limh2x+h=2x
因此
f
(
x
)
=
x
2
f(x) = x^2
f(x)=x2的导数为
f
′
(
x
)
=
2
x
f'(x)= 2x
f′(x)=2x
导数的表达形式:
因为h是相对x的变化量,而
f
(
x
+
h
)
−
f
(
x
)
f(x+h)-f(x)
f(x+h)−f(x)只差表示结果的变化量,所以导数就有了更为简洁的表示方法
f
′
(
x
)
=
lim
Δ
x
→
0
f
(
x
+
Δ
x
)
−
f
(
x
)
Δ
x
=
lim
Δ
x
→
0
Δ
y
Δ
x
=
d
y
d
x
f'(x)=\lim\limits_{\Delta x\to 0}\frac{f(x+\Delta x)-f(x)}{\Delta x}=\lim\limits_{\Delta x\to 0}\frac{\Delta y}{\Delta x}=\frac{dy}{dx}
f′(x)=Δx→0limΔxf(x+Δx)−f(x)=Δx→0limΔxΔy=dxdy
何时导数不存在?
当曲线上某个点的左侧斜率和右侧斜率不相等时,该点的导数就不存在;连续的函数不一定可导,但可导的函数必连续(可证明)
4 切线法(牛顿迭代法)
牛顿迭代法是一种一般情况下具有二阶收敛速度的非线性方程的数值解法,具体做法:
设x是方程
f
(
x
)
=
0
f(x)=0
f(x)=0的根,而x0是x附近的一个值,过
(
x
0
,
f
(
x
0
)
)
(x_0,f(x_0))
(x0,f(x0))做
f
(
x
)
f(x)
f(x)的切线,斜线方程为
y
=
k
x
+
b
y=kx+b
y=kx+b,而
k
=
f
′
(
x
0
)
k=f'(x_0)
k=f′(x0), 则
b
=
f
(
x
0
)
−
f
′
(
x
0
)
∗
x
0
b=f(x_0)-f'(x_0)*x_0
b=f(x0)−f′(x0)∗x0, 将其代入斜线方程, 得到切线方程为:
y
=
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
y=f(x_0)+f'(x_0)(x-x_0)
y=f(x0)+f′(x0)(x−x0)
而切线方程与x轴的交点为x1,因此根据切线方程可求得x1:
f
(
x
0
)
+
f
′
(
x
0
)
(
x
1
−
x
0
)
=
0
⇒
x
1
=
f
′
(
x
0
)
x
0
−
f
(
x
0
)
f
′
(
x
0
)
=
x
0
−
f
(
x
0
)
f
′
(
x
0
)
f(x_0)+f'(x_0)(x1-x_0)=0\Rightarrow x1=\frac{f'(x_0)x_0-f(x_0)}{f'(x_0)}=x_0-\frac{f(x_0)}{f'(x_0)}
f(x0)+f′(x0)(x1−x0)=0⇒x1=f′(x0)f′(x0)x0−f(x0)=x0−f′(x0)f(x0) ①
如果曲线在x附近保持上升且收敛,不难看到x1比x0更接近方程f(x)真实的根x,如果继续在
(
x
1
,
f
(
x
1
)
(x_1,f(x_1)
(x1,f(x1)上作一条切线,那么该切线方程与x轴的交点x2将越加接近x*,因此可以预计在k次迭代后,xk将非常接近真实的根值x*,迭代公式如下:
x
k
+
1
=
x
k
−
f
(
x
k
)
f
′
(
x
k
)
x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)}
xk+1=xk−f′(xk)f(xk)
具体实例:求一个数的平方根,
x
2
=
y
0
x^2=y0
x2=y0,那么方程为
f
(
x
)
=
x
2
−
y
0
f(x)=x^2-y0
f(x)=x2−y0,迭代公式如下
x
n
+
1
=
=
x
n
−
x
n
2
−
y
0
2
x
n
=
(
x
n
+
y
0
/
x
n
)
/
2
x_{n+1}==x_n-\frac{x_n^2-y_0}{2x_n}={(x_n+y_0/x_n)/2}
xn+1==xn−2xnxn2−y0=(xn+y0/xn)/2 ①
迭代循环使用该公式,求得近似与y0的根的值,代码实现:
def mySqrt(y):
# 求y的平方根
r = y # r初始值为y
while r * r > y:
r = (r + y / r) / 2
return r
mySqrt(10) # 3.162277660168379