C++_数值分析_三次样条插值_自动选取步长梯形法_Romberg求积法_列主元高斯消去法_列主元LU分解法_Jacobi迭..docxVIP

C++_数值分析_三次样条插值_自动选取步长梯形法_Romberg求积法_列主元高斯消去法_列主元LU分解法_Jacobi迭..docx

  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文档。上传文档
查看更多
C_数值分析_三次样条插值_自动选取步长梯形法_Romberg求积法_列主元高斯消去法_列主元LU分解法_Jacobi迭.

数值分析上机实验报告之样条插值1.三次样条插值(初值条件1):P52.9、给定函数的函数表和边界条件,求三次样条插值函数,并求的近似值。函数表7576777879802.7682.8332.9032.9793.0623.153源代码:yangtiao.cpp#includeiostream.h#includemath.hvoid main(){int choice = 0;int n = 2;double xx,*x, *y,*a,*b,*a1,*b1,*h,*m;cout请输入插值节点个数n:endl;cin n;x = new double[n]; y = new double[n];a = new double[n]; b = new double[n];a1 = new double[n]; b1 = new double[n];h = new double[n-1]; m = new double[n+1];cout请输入n个插值的节点(xi,yi):endl;for (int i = 0 ; i n ; i++){cinx[i]y[i];}for (int j = 0 ; j n-1 ; j++){h[j] = x[j+1] - x[j];}cout请输入待估点xx:endl;cinxx;cout请选择边界条件:endl;cinchoice;switch(choice){case 1:{double temp1,temp2;a[0] = 0;a[n-1] = 1;cout请输入边界条件的两个一阶微商值s(x1)与s(xn):endl;cintemp1temp2;b[0] = 2*temp1;b[n-1] = 2*temp2;break;}case 2:{a[0] = 1;a[n-1] = 0;b[0] = 3/h[0]*(y[1]-y[0]);b[n-1] = 3/h[n-2]*(y[n-1]-y[n-2]);break;}}for (int k = 1 ; kn-1 ; k++){a[k] = h[k-1]/(h[k-1]+h[k]);b[k] = 3*( (1-a[k])/h[k-1]*(y[k]-y[k-1]) + a[k]/h[k]*(y[k+1]-y[k]) );}a1[0] = -a[0]/2;b1[0] = b[0]/2;for (int l = 1; ln ;l++){a1[l] = -a[l]/(2+(1-a[l])*a1[l-1]);b1[l] = ( b[l] - (1-a[l])*b1[l-1] )/( 2+ (1-a[l]) * a1[l-1] );}m[n] = 0;for (j = n-1 ; j=0; j--){m[j] = a1[j] * m[j+1] + b1[j];}//判别xx所在区间并输出结果cout\n插值结果为:;for(k = 0 ;k n-1 ;k++){if (x[k] = xx x[k+1] xx ){double output = 0;output = (1+2*(xx-x[k])/(x[k+1]-x[k]))* pow(((xx-x[k+1])/(x[k]-x[k+1])),2) *y[k] +(1+2*(xx-x[k+1])/(x[k]-x[k+1]))* pow(((xx-x[k])/(x[k+1]-x[k])),2) *y[k+1] +(xx-x[k])* pow(((xx-x[k+1])/(x[k]-x[k+1])),2) *m[k]+(xx-x[k+1])* pow(((xx-x[k])/(x[k+1]-x[k])),2) *m[k+1];cout output endl;break;}}delete x;delete y; delete a; delete b; delete a1;delete b1; delete h; delete m;}运行结果截图:2.三次样条插值(初值条件2):P52.10、给定函数的函数表和边界条件,求三次样条插值函数,并求的近似值。函数表0.250.30.390.450.530.50.54770.62450.67080.728源代码:yangtiao.cpp(同上)运行结果截图:3.自动选取步长梯形法:P977、使用自动选取步长梯形法计算积分的近似值。(给定ε=0.01)源代码:SelfSelLength.cpp#includeiostream.h#includemath.hdouble fun(double a){return 2/( 1+a*a );}double SelfSelLength(double R_a,double R_b,double e){double h = (R_b-R_a)

文档评论(0)

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

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

1亿VIP精品文档

相关文档