第16讲 数值算.pptVIP

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

1 逐项递推算法 逐项递推计算方法可以归结为如下关系式: tk = x*tk-1 k=0,1,2,3 ……n uk = uk-1 + ak*tk t0 = 1 u0 = a0 该算法避免了x的k次幂重复计算,从而提高了整个算法的效率 迭代法步骤 将方程组做如下简单变形: a11 x1 = b1 ― ( + a12 x2 + a13x3 + …… + a1n xn ) a22 x2 = b2 ― ( a21 x1 + a23x3 + …… + a2n xn) ………………………………………………………… ann xn = bn ― ( an1 x1 + an2 x2 + a23x3 + …… ) 测试主函数 int main() { double a[n][n]={1,2,1,-2,2,5,3,-2,-2,-2,3,5,1,3,2,3}; double b[n]={4,7,-1,0}; double x[n]; int i,k; // double a[n][n]={20,2,3,1,8,1,2,-3,15}; // double b[n]={24,12,30}; dinv(a); for(i=0;i=n-1;i++) { x[i]=0.0; for(k=0;k=n-1;k++) x[i]+=a[i][k]*b[k]; } for(i=0;i=n-1;i++) cout\tx[i]; coutendl; return 0; } * * 第16讲 数值计算 掌握多项式的计算方法 掌握多元一次代数方程组的求根计算 掌握非线性方程组的求根计算 掌握积分计算的方法 掌握求逆矩阵的方法 数值数据处理(数值运算) : 主要是数学计算,即求数值解, 如求方程的根、求函数的定积分等 非数值数据处理(又称非数值运算) : 最常见的是事务管理领域, 如图书馆管理、银行管理、自动化生产线 管理等 计算机数据处理 设n次多项式的通用形式为: Pn(x) = a0 + a1x + a2x2 + …… + anxn (其中n≥1) 给定一个x的值,求多项式函数Pn(x)的值 。 注意: 在使用计算机运行一个算法时,乘除法 要比加减法消耗时间长,因此在编写算法时, 总是试图减少乘除法的次数。 多项式的计算 double Compute_Poly _1( double a[], int n , double x ) { double result , t ; int i ; t = x ; result = a[0] + a[1] * t ; for ( i = 2 ; i = n ; i ++ ) { t = t * x ; result = result + a[i] * t ; } return result ; } 2 秦九韶算法 将多项式按降次幂写成如下形式: Pn(x) = (……((anx+an–1)x +……+a1)x+a0 仔细观察,不难发现一种计算方法,从里 向外一层一层地计算,即有如下递推关系式: u k = a n (k = n –1,……,2,1,0) u k = u k + 1 * x + a k double Compute_Poly _2( double a[], int n , double x ) { double result ; int i ; result = a[n] ; for ( i = n - 1 ; i = 0 ; i–– ) { result = result * x + a[i] ; } return result ; } 秦九韶算法的运算效率较高,秦九韶算法也 称为霍纳(Horner)方法。 含多个未知元的线性方程组的求解问题,即求 a11

文档评论(0)

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

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

1亿VIP精品文档

相关文档