ch09 代数和数值算法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch09 代数和数值算法

第九章 代数和数值算法 特点 当输入的规模增长时,一些适用于小输入的算法将变得不再高效。 输入规模和存储空间 求幂运算 问题:给定两个正整数n和k,计算nk 直接的归纳法:nk=nnk-1 Algorithm Power(n,k) Input: n and k (two positive integers) Output: P (the value of nk ) begin P:=n; for i:=1 to k-1 do P:=n*P end 另一种归纳方法:nk=(nk/2)2,将问题归约成输入参数为n和k/2的问题。将k的值减小一半对应于将其规模减小一个常数值,故乘法次数和k的规模成线性关系。 如果k是偶数,就简单地对参数为k/2的问题的解进行平方;如果k是奇数,则将参数为(k-1)/2的问题的解平方后再乘以n。所以,乘法的运算量至多为2log2k。 Algorithm Power_by_Repeated_Squaring(n,k) Input: n and k (two positive integers) Output: P (the value of nk ) begin if k=1 then P:=n; else z:=Power_by_Repeated_Squaring(n, k div 2); if k mod 2=0 then P:=z*z else P:=n*z*z end 最大公约数 两个正整数m和n的最大公约数GCD是指满足以下两个条件的唯一正整数k:(1)n和m都能被k整除;(2)能同时整除m和n的其他整数均小于k,一般用GCD(m,n)来表示m和n的最大公约数。 问题:寻找两个给定正整数m和n的最大公约数。 关键:如果k能同时整除m和n,那么它能整除后两者的差 问题:如果nm,那么GCD(n,m)=GCD(n-m,m),由此可得一个更小的问题。但是,减小的仍然是问题中数的值,而不是规模。 方法:可重复从n中减去m直至结果小于m。但这恰好等价于n除以m并得到余数的过程,而除法运算可以很快完成。 Algorithm GCD(m,n) Input: m and n (two positive integers) Output: gcd (the gcd of m and n) begin a:=max(n,m); b:=min(n,m); r:=1; while r0 do {r is the remainder} r:=a mod b; a:=b; b:=r; gcd:=a end 多项式乘法 问题:给定n-1次多项式P=pn-1xn-1+…+p0和Q=qn-1xn-1+…+q0,计算P和Q的乘积。 直接方法:利用PQ=(pn-1xn-1+…+p0)(qn-1xn-1+…+q0)=pn-1qn-1x2n-2 +…+(pn-1qi+1+pn-2qi+2+…+pi+1qn-1)xn+i+…+p0q0。 乘法和加法的运算量是O(n2) 分治算法:假定n是2的幂,将每个多项式划分成大小相等的两部分,设P=P1+xn/2P2而Q=Q1+xn/2Q2,其中 P1=p0+p1x+…+pn/2-1xn/2-1 P2=pn/2+pn/2+1x+…+pn-1xn/2-1 Q1=q0+q1x+…+qn/2-1xn/2-1 Q2=qn/2+qn/2+1x+…+qn-1xn/2-1。 可得 PQ=(P1+P2xn/2)(Q1+Q2xn/2)=P1Q1+(P1Q2+P2Q1)xn/2+P2Q2xn。 运算量T(n)=4T(n/2)+O(n),T(1)=1,解是O(n2)。 设A=P1*Q1, B=P2*Q1, C=P1*Q2, D=P2*Q2,要计算A+(B+C)xn/2+Dxn,通过观察可以发现,不需要分别计算B和C,只需要得到它们的和即可! 计算乘积E=(P1+P2)(Q1+Q2),那么B+C=E-A-D。因此,只需要计算3个小规模的多项式乘积,即A、D和E,其余操作可以通过加法和减法运算进行计算 新递归关系为T(n)=3T(n/2)+O(n),从而可以推得T(n)=O(n^{log23})=O(n1.59)。 矩阵乘法 问题:计算两个n×n实数矩阵A和B的乘积C=A×B。 直接方法:按照矩阵乘法定义,需要使用n3次乘法运算和(n-1) n2次加法运算。注意到这里的n代表的是矩阵行和列的个数,而不是输入的规模n2。 Wi

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档