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

数值分析源代码.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  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文档。上传文档
查看更多
数值分析源代码

一,三次样条插值 #includeiostream.h #includestdlib.h void ready(double*A,double*B,double*h,double*y,int m,int n,double m0=0,double mn=0) {A=new double[n];B=new double[n]; if(m==2){ A[0]=0;B[0]=2*m0; A[n]=1;B[n]=2*mn; } else {A[0]=1;B[0]=3*(y[1]-y[0])/h[0]; A[n]=0;B[n]=3*(y[n]-y[n-1])/h[n-1]; } for(int i=1;in;i++) {A[i]=h[i-1]/(h[i-1]+h[i]); B[i]=3*((1-A[i])*(y[i]-y[i-1])/h[i-1]+A[i]*(y[i+1]-y[i])/h[i]); } } void calculate1(double*a,double*b,double*A,double*B,int n) {a=new double[n];b=new double[n]; a[0]=-A[0]/2;b[0]=B[0]/2; for(int i=1;i=n;i++) {a[i]=-A[i]/(2+(1-A[i])*a[i-1]); b[i]=(B[i]-(1-A[i])*b[i-1])/(2+(1-A[i])*a[i-1]); } } void calculate2(double*m,double*a,double*b,int n) {m=new double[n+1]; m[n+1]=0; for(int i=n;i=0;i--)m[i]=m[i+1]*a[i]+b[i]; } void main() {int e,t,w,v; out: cout求三次样条插值函数:endl请输入函数表中x,y的对数:endl; cine; double*x,*y,*h,*A,*B,*a,*b,*m,s0,sn,u,s; cout请输入x的一系列值:endl; x=new double[e]; for(int i=0;ie;i++)cinx[i]; cout请输入y的一系列值:endl; y=new double[e]; for(int f=0;fe;f++)ciny[f]; h=new double[e]; for(int d=0;de;d++)h[d]=x[d+1]-x[d]; loop: cout边界条件选择: 1.提供了s\(x1)=0,s\(x2)=0; 2.提供了s(x0)=m0,s(xn)=mn (m0,mn!=0) endl; cint; if(t!=1t!=2){cout输入信息错误!请重新输入!endl;goto loop;} if(t==1)ready(A,B,h,y,t,e); else {cout请输入s(x0),s(xn)的值:endl; cins0sn; ready(A,B,h,y,t,e,s0,sn);} calculate1(a,b,A,B,e); calculate2(m,a,b,e); in: cout请输入所需要计算的x的值: (x[0]xx[e-1])endl; cinu; if(ux[0]||ux[e-1]){cout输入数据错误!endl;goto in;} for(int c=0;ce;c++) {if(ux[c]ux[c+1])w=c;} s=(1+2*(u-x[w])/(x[w+1]-x[w]))*((u-x[w+1])*(u-x[w+1])/((x[w]-x[w+1])*(x[w]-x[w+1])))*y[w]+ (1+2*(u-x[w+1])/(x[w]-x[w+1]))*((u-x[w])*(u-x[w])/((x[w+1]-x[w])*(x[w+1]-x[w])))*y[w+1]+ (u-x[w])*((u-x[w+1])*(u-x[w+1])/((x[w]-x[w+1])*(x[w]-x[w+1])))*m[w]+ (u-x[w+1])*((u-x[w])*(u-x[w])/((x[w+1]-x[w])*(x[w+1]-x[w])))*m[w+1]; coutf(u)的近似值为: endlsendl; In: cout请选择:1,继续进行新的操作计算 2,退出不计算 endl; cinv; if(v!=1v!=2){cout输入错误!请重新输入!endl;goto In;} if(v==1){system(cls);goto out;}

文档评论(0)

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

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

1亿VIP精品文档

相关文档