本帖最后由 踢馆帝 于 2012-4-28 13:26 编辑
可能很多童鞋以前思考过或者现在正在思考,数学究竟对于我们所学的专业起到了多大的作用?我本人是电子工程专业,我就以我微薄的经验,仅仅从电子工程和计算机相关的领域来简单的探讨一下一个重要的数学分支<线性代数>。 线性代数可以说是工程领域最重要,应用最广的数学分支之一。 线性代数的应用如此之广,主要是因为它的“简单” 仅仅只有乘加运算,运算载体是矩阵,这都非常有利于线代在计算机上的实现。
说它“简单”,是因为我们将最基本的元素运算交给了计算机,但这仅仅是线代的计算层面,而我们思考问题,应该在更加抽象的层面。 我本人习惯将线代分为两层,计算层,抽象概念层。我们将一些基本运算交给计算机(当然,计算方法也需要我们自己预先编写出来),而我们自己则利用抽象概念来设计算法,脱离繁琐运算,将问题简单化。(这也正是线代的优势)
电子系的童鞋一定还记得电路原理教材前面的坑爹的KVL,KCL例题,巨大的电阻网络加上各种电压源,电流源,列出方程都已经吓尿了。但是有了线代,只需要将它表示为Ax=b,你可以选择用行化简手工计算,如果你用计算机,更是可以祭出LU分解,A求逆,克拉默法则来完爆它。 其实复杂的模拟电路也可以简化为基本“电路网图”,然后用线代来求解,我们常常使用的电路仿真软件就是基于这个原理。
学计算机的童鞋更是离不开线代了,往广了说,众所周知的图形学,应用广泛的图论。 往细了说,网络搜索,数据分析常用的马尔科夫链,奇异值分解,等等。
下面我以一个简单的图形学例子来讲解线代的思考方法。 首先大家必须对线代的一些概念有一个整体的了解,所以下面假定大家已经了解了这些。
(图1)
(图2)
(图3)
如(图1),在oxy坐标系,给定三角形的三个顶点ABC坐标, 求外接圆圆心O坐标。 我们可以发现两种直观的解法 (1)圆心到三个顶点的距离相等,根据两点距离公式,可以得到方程
映入眼帘的是大量的平方运算,这是在线代中不愿意看到的,大家可以拿纸笔计算一下,体会一下过程的繁琐。
(2)我们进一步思考由OA=OB=OC可以得到什么,假设只考虑A,B两点,如果有某一点到A,B距离相等,那么这个点是唯一的吗?显然连接AB,作AB的垂直平分线,这条线上每一点都和A,B距离相等。那么BC,AC亦然。总结出来就是,a,b,c三边的垂直平分线的交点,就是O。 现在看(图2),分别取得AB,BC,AC的中点E,F,G,于是得到了(图3)中的线段a=AB,b=BC,c=AC,e=EO,f=FO,g=GO。 于是得到ae,bf,cg三对垂直关系,也就是说两个未知数,三个方程,解出来是没问题的。有的童鞋可能会说,两个方程不就足够了嘛?那么先来看看下面这种情况
这个三角形某一个边非常短,另外两边很长,大家可以试想一下用一条长边和一条短边的垂直平分线的两个方程,因为交点距离短边非常远,而距离长边非常近,短边垂直平分线的细微误差,会造成交点更大的误差,而如果选择两个长边的方程就不会这样。所以我们的算法引入三个方程。
下面的图片比较小,大家可以点开来看
这一集就差不多这样子啦,希望大家能从中得到帮助。
这是这个算法的程序实现
|