高斯迭代法源程序.doc

上传人:枫** 文档编号:542978513 上传时间:2023-12-19 格式:DOC 页数:7 大小:49.01KB
返回 下载 相关 举报
高斯迭代法源程序.doc_第1页
第1页 / 共7页
高斯迭代法源程序.doc_第2页
第2页 / 共7页
高斯迭代法源程序.doc_第3页
第3页 / 共7页
高斯迭代法源程序.doc_第4页
第4页 / 共7页
高斯迭代法源程序.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《高斯迭代法源程序.doc》由会员分享,可在线阅读,更多相关《高斯迭代法源程序.doc(7页珍藏版)》请在金锄头文库上搜索。

1、高斯迭代法源程序#include stdlib.h #include math.h #include stdio.h int agaus(a,b,n) int n; double a,b; int *js,l,k,i,j,is,p,q; double d,t; js=malloc(n*sizeof(int); l=1; for (k=0;k=n-2;k+) d=0.0; for (i=k;i=n-1;i+) for (j=k;jd) d=t; jsk=j; is=i; if (d+1.0=1.0) l=0; else if (jsk!=k) for (i=0;i=n-1;i+) p=i*n+k

2、; q=i*n+jsk; t=ap; ap=aq; aq=t; if (is!=k) for (j=k;j=n-1;j+) p=k*n+j; q=is*n+j; t=ap; ap=aq; aq=t; t=bk; bk=bis; bis=t; if (l=0) free(js); printf(failn); return(0); d=ak*n+k; for (j=k+1;j=n-1;j+) p=k*n+j; ap=ap/d; bk=bk/d; for (i=k+1;i=n-1;i+) for (j=k+1;j=0;i-) t=0.0; for (j=i+1;j=0;k-) if (jsk!=k

3、) t=bk; bk=bjsk; bjsk=t; free(js); return(1); main() int i; static double a44= 0.2368,0.2471,0.2568,1.2671, 0.1968,0.2071,1.2168,0.2271, 0.1581,1.1675,0.1768,0.1871, 1.1161,0.1254,0.1397,0.1490 ; static double b4=1.8471,1.7471,1.6471,1.5471; if (agaus(a,b,4)!=0) for (i=0;i=3;i+) printf(x(%d)=%en,i,b

4、i); ./RootNewton.cpp Newton法求解非线性方程一个实根 #include /输入输出流头文件 #include polynomials.h /多项式及连分式求值头文件 #include NonLinearEquation.h /非线性方程(组)求解头文件 using namespace std; /名字空间 void main(void) int js = 60, k; long double eps = 0.000001, x = 1.5; cout RootNewton() endl = 0) cout k = k x = x endl; /* 计算函数及导数值 t

5、emplate void FunctionValueRN(_Ty dx, valarray& y) _Ty dCoff04 = -1, 0, -1, 1; _Ty dCoff13 = 0, -2, 3; valarray vdCoff0(dCoff0,4), vdCoff1(dCoff1,3); y0 = PolyValueOneDim(vdCoff0, 4, dx); /计算多项式值 y1 = PolyValueOneDim(vdCoff1, 3, dx); /计算多项式导数值 /RootQuasiNewton.cpp 拟牛顿法求解非线性方程组一组实根 #include /输入输出流头文件

6、#include polynomials.h /多项式及连分式求值头文件 #include NonLinearEquation.h /非线性方程(组)求解头文件 using namespace std; /名字空间 void main(void) int k = 100, i; double eps = 0.000001, x3 = 1.0, 1.0, 1.0, t = 0.1, h = 0.1; valarray vx(x, 3); cout RootQuasiNewton() endl endl; i = RootQuasiNewton(eps, t, h, vx, k); /求根 这个函数在chap8那个工程里面有 cout i = i endl endl; for(i = 0; i 3; i+) cout x( i ) = vxi endl; cout endl; /* 计算函数值 template class _

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号