先简短地回答下我对“什么是导数”的认识:导数是用来找到“线性近似”的数学工具。
下面我来解释一下,为什么我是这样认为的。
在我学习微积分的过程中,我对导数的认知经历了三次变化:
- 导数是变化率、是切线的斜率、是速度、是加速度
- 导数是用来找到“线性近似”的数学工具
- 导数是线性变换
我认为第一种认知比较片面,在多元函数的情况下甚至是错误的。第二种认知更接近微积分的本质,第三种认知是为了实现第二种认知发展出来的。
因为种种原因,我们的学习都是从第一种认知开始的。我会在本文分别介绍一下这三种认知。最后会通过第三种认知回答“多元微积分中,可微函数的切线为什么会共面(此平面即切平面)?”
1 导数是变化率、是切线的斜率、是速度、是加速度
微积分的发明人之一是牛顿,牛顿主要还是研究物理为主,微积分不过是他发明出来研究物理的一个数学工具(大师就是这么厉害)。
因为牛顿研究物理的缘故,所以牛顿用变化率的方式引入了导数(牛顿称之为“流数”)。
在物理里面变化率还是很自然的概念,比如为了求瞬时速度:
![](https://i-blog.csdnimg.cn/blog_migrate/c5b9986cf956fb57ee925133427a6aa9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c6aedca185ba0b19346facb7fbcf7109.png)
![](https://i-blog.csdnimg.cn/blog_migrate/54512564fda8895fb566a3017b3db131.png)
同理,求加速度的话就是求速度对于时间的变化率,这里就不赘述了。学习物理的一般习惯把导数看作变化率。
还可以顺便得到了切线的斜率:
![](https://i-blog.csdnimg.cn/blog_migrate/b5c6c7d75eb2c79d2e0bda41bb28341b.png)
我们一般是上面这样的学习过程,所以我们认为,导数是曲线的变化率、是瞬时速度、是加速度,还可以是切线的斜率。
1.1 但是!
把导数看作是变化率、是切线的斜率,在一元函数的时候是正确的,但是,敲黑板,说但是了哈。
在二元函数中,比如这样一个曲面上的一点:
![](https://i-blog.csdnimg.cn/blog_migrate/75f6b8415d3a3f18075900a8cc564bf7.png)
在曲面上可以做无数条过点的曲线(图上随便画了三根):
![](https://i-blog.csdnimg.cn/blog_migrate/5ce20713310e7934d1c1e8362313be4a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7619cfb4dc6659828fe15e962f613c0e.png)
把导数看作是变化率、是切线的斜率,在多元函数中是片面的,甚至是不正确的。
我们必须要重新审视“导数是什么”这个问题。
顺便说一下,把导数继续看作变化率,切线的斜率,可以得到偏导数、方向导数、全导数,可以参看我之前写过的一个回答: 什么是全导数? 。
2 导数是用来找到“线性近似”的数学工具
讲这个之前,我们要先理解微积分的基本思想。这个思想在我的很多回答中都提到了,这里简单的阐述下。
2.1 微积分的基本思想
微积分的基本思想是“以直代曲”:
![](https://i-blog.csdnimg.cn/blog_migrate/04f653703d6cf79585922895e75ad4e7.png)
“以直代曲”的意思就是,切线可以在切点附近很好的近似曲线:
![](https://i-blog.csdnimg.cn/blog_migrate/9f8d0ecc8da19cee6ccbe8bb0978af7f.png)
我觉得下面这幅图也挺有意思,如果在曲线上多选几个点,都作出附近的切线,我们可以透过切线看到曲线的轮廓:
![](https://i-blog.csdnimg.cn/blog_migrate/6eab00b42f942dfb8ba29b53acdb9269.png)
这里我希望给你一个直观印象,切线可以在切点附近很好的近似曲线。如果仔细看泰勒公式、洛必达法则等,还会通过代数发现这一事实。
2.2 导数是用来找到“线性近似”的数学工具
因为“以直代曲”是微积分的基础,所以我们首要任务就是要找到这个“直”,也就是切线,也就是所谓的“线性近似”。导数就是为了完成这个任务需要使用的数学工具。
我们来看看,在一元函数中:
![](https://i-blog.csdnimg.cn/blog_migrate/dd261c701ec82e64fbc0b6e312f8e3fa.png)
因此,在一元函数中,我们把导数看作斜率,可以找到我们想要的“线性近似”(切线),但是在二元中,我们需要新的技术手段。
3 导数是线性变换
3.1 二元函数的“线性近似”
导数最主要的目的是找到“线性近似”,在一元函数的时候是要找到切线,在二元函数的时候是要找到一个切平面(可以参考我之前的回答: 如何理解全微分? ):
![](https://i-blog.csdnimg.cn/blog_migrate/d06e1fd481dc2274d7974defabfc2250.png)
一个平面是没有斜率的概念的,因此我们不能把导数继续看作斜率了,我们需要别的方法来找到这个切平面。
3.2 线性变换
对线性代数不熟悉的话,可以先看下我之前的回答 什么是仿射变换? 。下面就会用到大量的线性代数基础知识,我不再进行解释了。
还是从一元的时候开始推:
![](https://i-blog.csdnimg.cn/blog_migrate/363c3b75f7fed9937ae43435fff5e086.png)
![](https://i-blog.csdnimg.cn/blog_migrate/40ad89bf8cf445e32bd1bc7afe639a6f.png)
上图的指向右边,实际上求出的
是右导数,我换个方向就可以求出左导数:
![](https://i-blog.csdnimg.cn/blog_migrate/232dbddefd4fd231d0f37f2c7c15f648.png)
如果,相当于左右导数相等,我们就称为此点可导。
顺便说一句,此时在 点附近同样也有
。
二元函数的时候,有无数的方向(不像一元的时候只有左右两边):
![](https://i-blog.csdnimg.cn/blog_migrate/c9b703cbe29c6e5b3f96ae6da787e370.png)
我们把这些分别记为
,那它们的切线分别为:
导数分别就是 (可以理解这些都是方向导数)。
导数:如果有,那么此点可导,此点导数即为
。
为什么就是导数?
不是还没有完成找到切平面的任务吗?
3.3 通过导数来找到切平面
首先,所有的肯定是共面的:
![](https://i-blog.csdnimg.cn/blog_migrate/385e58bb396ce54a2c4e2fd2f17703dd.png)
因为此点可导,即所有的的导数都是
,所以变换后的结果也共面(线性变换的特点是,变换前是共面的,变换后也是共面的):
![](https://i-blog.csdnimg.cn/blog_migrate/a20af2eb41c7e716dea4d46b745bb761.png)
看看动画吧(可以旋转视角来观察):
![](https://i-blog.csdnimg.cn/blog_migrate/943e16d74ff1fc5aaa1976ce167e1e35.png)
此处有互动内容, 点击此处前往操作。
对所有的的都进行
变换,实际上就得到了切平面:
![](https://i-blog.csdnimg.cn/blog_migrate/a75882939d86bd14aa697843e63308db.png)
至此,导数完成了找到“线性近似”的任务。这里也很自然的回答了“多元微积分中,可微函数的切线为什么会共面(此平面即切平面)?”
注意,有一点需要特别说明的是,因为矢量的起始点要求是在原点,但是我上面把起始点放在点了,所以实际上是仿射变化,所以实际上
,
仍然是导数。