网站大量收购独家精品文档,联系QQ:2885784924

请C++达人帮我做以下7道数值分析题目.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
请C达人帮我做以下7道数值分析题目

好风光好风光恢复供货才 请C++达人帮我做以下7道数值分析题目,后有例题,请照例题方式做题,请勿重复! 要求: 解题方法的理论依据或方法应用条件。 写出计算程序(用Fortran语言或C语言)。 打印出计算结果。 问题讨论(误差分析,上机出现情况等)。 1.牛顿迭代法求解高次方程的近似根 1、解决问题 用Newton法求方程 在(0.1,1.9)中的近似根,初始近似值取为中间端点,误差不小于0.00001。 2.三次样条差值 解决问题 已知函数值如下表: x 1 2 3 4 5 f(x) 0 01.0986123 1.3862944 1.6094378 x 6 7 8 9 10 f(x) 1.7917595 1.9459101 2.079445 2.1972246 2.3025851 试用三次样条插值求f(4.563)及的近似值 3.Romberg算法求积分 解决问题 用Ronberg算法求(允许误差)。 4.列主消元法求解线性方程组 1、解决问题 用列主消元法求解Ax=b,其中: 5.松弛法求解线性方程组 1、解决问题 用松弛法求解Ax=b,其中: 6.用Householder变换把矩阵A化为三对角阵B (并打印B) 7.Runge-Kutta法求解高阶数值微分 1、解决问题 用定步长四阶Runge-Kutta法求解 L=0.0005,打印 例:Romberg算法求积分 1、解决问题 用Ronberg算法求(允许误差)。 2、解题过程 Ronberg算法将复化和外推公式相结合,引入符号,称为Romberg序列,k表示将积分区间2k等分,m表示外推m-1次,即m=1时表示不外推,例如表示在[a,b]上的梯形公式,表示把区间等分的复化梯形公式,而表示对与外推所得的公式。这样得到Ronberg的计算流程如下: (1)T1(0) (3)T2(0) (6)T3(0) (2)T1(1) (5)T2(1) (4)T1(2) 计算公式如下: 3、代码及注释 #include stdio.h #include math.h #define a 1 #define b 3 #define N 20 /*宏定义积分上下限和外推的最高次数N*/ double f(double x) { return pow(3,x)*pow(x,1.4)*(5*x+7)*sin(x*x); /*被积函数f(x)*/ } double sum(k) { double y=0; int i; for(i=1;i=pow(2,k-1);i++) {y=y+f(a+(2*i-1)*(b-a)/pow(2,k)); } return y; /*计算 中的求和函数 */ } main() { double t[N][N]; double eps=0.00001; int i,j, k=2; clrscr(); t[1][0]=(b-a)*(f(a)+f(b))/2; loop:for(i=1;i=k;i++) { if(i= =1) { t[i][k-i]=0.5*(t[i][k-i-1]+(b-a)/pow(2,k-i-1)*sum(k-i)); } else { t[i][k-i]=(pow(4,i-1)*t[i-1][k-i+1]-t[i-1][k-i])/(pow(4,i-1)-1.0); } } if(fabs(t[k][0]-t[k-1][0])eps) { k++; if(kN) goto loop; } /*Ronberg算法的计算过程(即为t数组赋值的过程中)*/ else { for(j=0;jk;j++) { for(i=1;i=k-j;i++) {printf(%lf ,t[i][j]); } printf(\n); } } /*输出复化和外推公式经过计算的值,也就是t数组的值*/ printf(\nThe last result is %.10lf\n,t[k][0]); /*输出最后计算结果*/ } 4、运行结果输出 输出的部分过程及结果截图如下: 5、问题

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档