三角公式,上面是如何推出下面的呢?

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

本篇博客会较为详细地讲一下我个人对三角矩阵压缩存储公式的理解,希望能给后面的朋友们带来一些帮助。

由于三角矩阵的压缩存储公式是依靠求和公式来推导的,所以得先补一下等差数列的求和公式。

其中n是整个数列的项数,是数列的首项,d是数列的公差(递增数列公差为正数,递减数列公差为负数)。

其中n为整个数列的项数,是数列的首项,是数列的末项。下面主要用到这个公式二。

首先我们知道,压缩储存上三角矩阵,本质上就是将矩阵的上三角块的元素“展开”成一条长的数列存在数组里。问题就在于,我们如何根据原矩阵里元素的行号和列号得到压缩后数组里对应的下标?

我们可以这样考虑:对于一个上三角块里第i行第j列的元素,它在数组里的下标就等于(在原矩阵中)他前面i-1行的元素数量 + (原矩阵中)他所在行的他前面的元素数量,以下面这个矩阵为例,在数组里的位置就应该是它前面两行元素的数量5+4=9,再加上所在行它前面的元素数量1(即是),最终结果10即是在数组中的位置(当然,转换成物理下标的话还需要-1)。

那么问题又来了,我们如何才能知道前面1到i-1行的元素数量?这个时候就要用到我们的等差数列求和公式了,我们可以从上到下地将每行的元素数量看成一个数列,对于上图的矩阵来说,这个数列就是5 4 3 2 1,项数为5,首项为5,末项为1,直接套进求和公式二,假设矩阵的维度n为5(意为5*5的矩阵),就可以得到,这就是压缩后数组大小的公式,其中n是矩阵的维度。

但这与我们要求1到i-1行的元素数量有什么关系?确实没什么关系,上面这段是我补充的内容,但是理解了求整个数组大小的过程对后面有帮助,下面回到正题。

1到i-1行的元素数量我们可以可以看成是一个数列,这个数列的首项是n(这个n也是矩阵的维度),末项是第i-1行的元素数量是n-i+2(找行号与该行的元素数量的规律可得),数列的项数是i-1,套进求和公式二里就可以得到,这样就解决了求1到i-1行元素数量的问题。注意,这里数列的末项是指的上一行的元素数量,是i-1行的元素数量。

那么就到第二个问题,如何知道在所在行,它前面的元素数量?

这个简单,找一下行号和列号之间的规律就知道是j-i(列数减行数),那么我们最终的公式就出来了:

嗯?好像与一些数据结构教材上给的公式对不上?这是因为我们的上图的矩阵元素是默认从开始的,所以上面那个最终公式我写的是在数组里的位置,而不是在数组里的下标。一般我们的矩阵行号列号都是从0开始算的,也就是(对上图矩阵而言)矩阵里第一个元素是最后一个元素是,那这样上面推导过程中出现的数组就变成是以n为首项,n-i+1为末项,项数为i的数列,套进求和公式二就可以得到,再加上该元素所在行,它前面的元素数量j-i,可得最终的公式:

这个公式应该是和大部分数据结构教材给的公式一致的。

因为推导过程写得比较乱,这里再总结一下,理清思路。

对于求元素在压缩后数组里下标的问题,我们可以转换思路,变成求前面有几个元素的问题;

求前面有几个元素的问题,我们又可以拆成求前面i-1行的元素数量的问题1和求在所在行,前面的元素数量的问题2

问题1,我们将矩阵每行的元素数量从上到下视为一个等差数列,利用等差数列的求和公式二求解。

问题2,我们可以去找一下其中行列号的规律来解,也就是j-i,列数减行数。

推导过程中要注意的地方有三个:

  1. 数列的末项是对来说的i-1行,而不是所在的第i行。
  2. 对第x行来说,元素的数量就等于n-x+1,其中n是原矩阵的维度,x是指逻辑上的顺序,从1开始。下面从0开始和从1开始的矩阵数列末项会不同也是因为x的取值不同所导致,公式不同也是。
  3. 矩阵行列号从0还是从1开始的问题,从0开始的数列是一个首项为n,末项为n-i+1,项数为i的数列;从1开始的数列是一个首项为n,末项为n-i+2,项数为i-1的数列

在数组里的下标=,其中i为行号j为列号,n为原矩阵维度

毕竟标题都用了练习二字,不打代码说不过去,于是怒写一个cpp:

 
在重点地方都给了英文的注释,这里再补充几点:
  1. 开数组的时候给多了一个空间是用来储存常数,因为对于上三角矩阵来说,下三角块就是一个常数,也需要一个数组空间来存。
  2. initTMat里用了上三角矩阵的性质来用if筛选元素存进数组里;第二个for的初始化语句int j = i是灵光一闪想到的优化循环次数的条件;最后一句取下三角常数的语句是随便挑的,顺带考虑了一下普适性用了维度作为下标,如果取一个特定值的话可能在更大维度的矩阵上会取到上三角的值。
  3. getValue的参数行号和列号是逻辑的,也就是从1开始的,代码里用自减转换为物理下标。
 


(新东方名师 邹圣莉)

函数是高中数学最多的一章,很多同学在本章的学习中公式的记忆就是一大障碍;基础稍好点同学费了很大劲记住了公式,但在解题过程中又不知道如何应用,感觉变形没有方向,老师讲能听懂,但自己解题就不知从哪儿下手了。其实,三角函数虽说课本上公式众多,解题中变形貌似杂乱,通过研究大量高考真题和模拟题就可以发现其实公式的记忆和变形都是有章可循的。下面我们就针对这两个问题给予解决。

首先从公式的整理上来说,其实三角函数的公式无非分为三类:

(1)同角关系公式(观察角相同时即可用)

(2)去括号公式(观察角带括号时即可用)

(3)降角降次公式(观察角或次数要化统一时即可用)

接下来,我们看看这三类公式在考试中是如何考查的,我们又应该如何进行变形化简:

问题是:求周期,对称轴,单调区间,给y的值/范围求x的值/范围,给x的值/范围求y的值/范围。

此类题出现概率非常大,解题模式也比较固定:

绝大多数的情况均是以上的解题过程,仅有一小类除外。这类题用本类恒等变换的方法化不成一角一函数,则我们应该知道它属于另一类即二次函数的类型。从提干的形式观察的有如下特点①仅求值/值域,不求周期,单调区间等②式子中存在两项角与次数,一个相同另外一个不同。

在历年高考和模拟考试中出现的这种给出一个长式子求周期值域或其它性质等的题型,常见的就是这两种变形方式,并且以第一种变形居多,但若突然出现第二种很多同学则茫然不知所措。其实将上述两种变形方式区分开来的办法就是观察题干中的角和次数,若角和次数均统一,或者均不一致,则一定是有括号先去括号,然后降次,再辅助角公式化为形式,如例题1-4;若角和次数只有一个一致,另一个不一致,则一定是二次函数的类型,如例5-6,需要定下一个为基本元,其它均朝这个方向去变形。

学会了方法,还需要同学们去多做题体验,大量做题强化,才能真正掌握其中的奥妙。建议同学们将历年的真题试卷中得三角函数题挑出来挨着做,就会发现大量此类题型,勤加练习,定能完全掌握,稳拿全分!

我要回帖

更多关于 三角形的推导公式是什么 的文章

 

随机推荐