计算机上机报告(4)

2019-06-02 15:20

七.Romberg算法 1.程序代码(C++代码)

#include #include

using namespace std;

#define f(x) (4/(1+x*x)) #define epsilon 0.0001 #define MAXREPT 10

double Romberg(double aa,double bb) { int m,n; double h,x; double s,q; double ep;

double *y =new double[MAXREPT]; double p; h=bb-aa;

y[0]=h*(f(aa)+f(bb))/2.0; m=1; n=1;

ep=epsilon+1.0;

while((ep>=epsilon)&&(m

for(int i=0;i

p=(y[0] + h*p)/2.0; s=1.0;

for(int k=1;k<=m;k++) { s=4.0*s;

q=(s*p-y[k-1])/(s-1.0); y[k-1]=p; p=q; }

p=fabs(q-y[m-1]); m=m+1; y[m-1]=q;

n=n+n;h=h/2.0; }

return (q); }

int main()

{double a,b;

cout<<\积分,请输入积分范围a,b:\ cin>>a>>b;

cout<<\积分结果:\ system(\ return 0; }

2.例子(I??1?014x2dx)

3.运行结果

八.Seidel迭代法 1.程序代码(C++代码)

# include # include # define max 100 # define EPS 1e-6

float a[3][3]={{10,-1,-2},{-1,10,-2},{-1,-1,5}}; float b[3]={7.2,8.3,4.2}; float x[3]={0,0,0}; float y[3]; float S(int m) {int n; float S=0; float y;

for(n=0;n<3;n++) {if(m==n){} else

{S+=a[m][n]*x[n]; }

}y=(b[m]-S)/a[m][m]; return y; }

void main() {int i;

int F,T=1,k=1; do {F=0; if(T) {T=0;} else {k++;

for(i=0;i<3;i++) {x[i]=y[i]; } }

for(i=0;i<3;i++) {y[i]=S(i); }

for(i=0;i<3;i++)

{if(fabs(x[i]-y[i])>EPS) {F=1; }

}printf(\

}while(((F==1)&&k!=max)); printf(\迭代次数:%d\\n\ for(i=0;i<3;i++)

{printf(\} }

?10x1?x2?2x3?7.22.例子(???x1?10x2?2x3?8.3)

??x1?x2?5x3?4.2?


计算机上机报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:物化复习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: