实验一 直接法解线性方程组

上传人:第*** 文档编号:34072372 上传时间:2018-02-20 格式:DOC 页数:17 大小:406.50KB
返回 下载 相关 举报
实验一  直接法解线性方程组_第1页
第1页 / 共17页
实验一  直接法解线性方程组_第2页
第2页 / 共17页
实验一  直接法解线性方程组_第3页
第3页 / 共17页
实验一  直接法解线性方程组_第4页
第4页 / 共17页
实验一  直接法解线性方程组_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《实验一 直接法解线性方程组》由会员分享,可在线阅读,更多相关《实验一 直接法解线性方程组(17页珍藏版)》请在金锄头文库上搜索。

1、实验一 直接法解线性方程组/1-1 Gauss 列主元消去法【源代码】:#include #include #include#define eps 1e-9double *A,*X;int N;int FindMax(int k);void ExchangeRow(int k,int r);void breakup();void back();int main()int i,j;printf(请输入增广矩阵(A,B)的行数:t);scanf(%d,A=(double*)calloc(N*(N+1),sizeof(double);X=(double*)calloc(N,sizeof(double

2、);if(N256|Nmax)max=fabs(Ai*(N+1)+k); r=i; /r保存最大项的行标号return r;/换行void ExchangeRow(int k,int r)int j;double temp=0.0;for(j=k;j=0;k-)total=0.0;for(i=k+1;i#include #include #define N 1000/#define eps 1e-9int n;double ANN=0,fN,XN;double aN,bN,cN,yN;void divide() /Crout 分解int i;a0=A00;for(i=0;i=0;i-)Xi=y

3、i-bi*Xi+1;int main()int i,j;printf(输入矩阵 A 的阶数:);scanf(%d,printf(输入矩阵 A%d%d:n,n,n);scanf(%lf %lf,for(i=1;i#include #include double lagrange(double *x,double *y,double xx,int n)int i,j;double *a,yy=0;a=(double*)malloc(n*sizeof(double);for(i=0;i#include using namespace std;double f(double x)/预先输入的待积分函数

4、double y;if(x=0) y=1;else y=sin(x)/x;return(y);double fun(double a,double b,double eps)/变步长梯形法int n,i;double h,sum,t1000;n=1;t1=(b-a)*(f(a)+f(b)/2;doh=(b-a)/n;sum=0;for(i=0;ieps);return(tn);int main()double a,b,eps,result;cout abeps; cout#includeusing namespace std;double T10001000;double fun(const

5、double x);/求被积函数并返回double Romberge(const double a,const double b,const double eps); /求定积分函数(a,b,eps)int main()double a,b,eps,result;coutabeps;couteps);return (Tl0);/返回符合精度的值【运行结果】:实验四 常微分方程的数值解/4-1 改进欧拉法【源程序】:#include #include double Y;double f(double x,double y)return (-x*y*y);int main()double a,b,

6、h,y0,temp,xx;int i;printf(a,b,h,y0: );scanf(%lf%lf%lf%lf,Y=y0;for(i=0,xx=a;i#include#include#include double *X,*Y;int N;double function(double x,double y) return (-x*y*y); int main()double y0,a,b,h;int i;printf(Input a,b,h,y0: );scanf(%lf%lf%lf%lf,N=(b-a)/h;X=(double*)malloc(N+1)*sizeof(double);Y=(d

7、ouble*)malloc(N+1)*sizeof(double);double k1,k2,k3,k4;X0=a; Y0=y0;for(i=0;i#include#include#includeusing namespace std;const int N=100;double ANN,bN,X0N,X1N;int main()int i,j,n;double eps;cout neps; coutAij;printf(n 输入右端 b%d: ,n);for(i=0;ibi;double temp; /判断是否主对角占优for(i=0;iX0i;while(1) /使用 G-S 算法求解方程

8、组for(i=0;imax)max=fabs(X0i-X1i);if(max#include #includedouble f(double x)return (pow(x,3)-x-1);double Df(double x)return (3*pow(x,2)-1);int main()int k=0;double eps,x0,x,c1,c2,DT;printf(输入 x0,eps: );scanf(%lf%lf,doc1=f(x0);c2=Df(x0);if(c1=0)printf(x=%lf 是方程的根n,x0);break;else if(c2=0)printf(x=%lf 处导数为 0!n,x0);break;elsex=x0-c1/c2;if(abs(x)=eps);printf(n 方程的根为:x=%lf 迭代次数为: k=%dn,x0,k);return 0;【运行结果】:

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

当前位置:首页 > 办公文档 > 解决方案

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