c编的sor迭代法解线性方程组的程序

c编的sor迭代法解线性方程组的程序

2010-12-15 20:33

#include

#include

double norm(double *x,double *y,int n)

{

int i=0;

double s=0;

for(i=0;i

s=s+fabs(x[i]-y[i])*fabs(x[i]-y[i]);

return sqrt(s);

}

void Jacobi(double A[],double b[],double x0[],double x[],double w,int n1)

{

int n=100;//最大迭代次数

double ee=0.0001,s=0;//精度

int i,j,k;

for(i=1;i

for(j=0;j

for(j=0;j

s=0;

for(k=0;k

x0[j]=x[j]+w*(b[j]-s)/A[j*n1+j];

}

if (norm(x,x0,n1)

break;

}

}

int main()

{

double a[3][3]={{8,-1,1},{2,10,-1},{1,1,-5}};

double b[3]= {1,4,3};

double x0[3]= {0,0,0.0};

double x[3]= {0,0,0},w=1.005;

int n1=3,i;

Jacobi(a,b,x0,x,w,n1);

for (i=0;i

printf("x(%d)=%6.4f\n",i+1,x[i]);

system("pause");

return(0);

}

c编的sor迭代法解线性方程组的程序

2010-12-15 20:33

#include

#include

double norm(double *x,double *y,int n)

{

int i=0;

double s=0;

for(i=0;i

s=s+fabs(x[i]-y[i])*fabs(x[i]-y[i]);

return sqrt(s);

}

void Jacobi(double A[],double b[],double x0[],double x[],double w,int n1)

{

int n=100;//最大迭代次数

double ee=0.0001,s=0;//精度

int i,j,k;

for(i=1;i

for(j=0;j

for(j=0;j

s=0;

for(k=0;k

x0[j]=x[j]+w*(b[j]-s)/A[j*n1+j];

}

if (norm(x,x0,n1)

break;

}

}

int main()

{

double a[3][3]={{8,-1,1},{2,10,-1},{1,1,-5}};

double b[3]= {1,4,3};

double x0[3]= {0,0,0.0};

double x[3]= {0,0,0},w=1.005;

int n1=3,i;

Jacobi(a,b,x0,x,w,n1);

for (i=0;i

printf("x(%d)=%6.4f\n",i+1,x[i]);

system("pause");

return(0);

}


相关文章

  • 线性方程组的解法
  • 线性方程组的解法 1 引言 在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解.在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组.而如插值公式,拟合公式等的建立,微分方程差分格式的构造等, ...查看


  • 数值分析作业思考题
  • 数值分析思考题1 1.讨论绝对误差(限).相对误差(限)与有效数字之间的关系. 2.相对误差在什么情况下可以用下式代替? e *x *-x e =*= x x * *r 3.查阅何谓问题的"病态性",并区分与" ...查看


  • 线性方程组求解matlab程序
  • 数学软件课程设计 题目 班级 数学081班 姓名 潘珊珊 实验目的 用Matlab语言实现Jacobi迭代算法.Gauss-Seidel迭代算法和逐次超松弛迭代法,求解一般的线性代数方程组问题. 实验内容 一.Jacobi迭代算法: 程序如 ...查看


  • 基于MATLAB的科学计算-解线性方程组的迭代法
  • 科学计算-理论.方法 及其基于 及其基于 MATLAB 的程序实现与分析 三. 解线性方程组的迭代法(Iteration) 解线性方程组的迭代法( ) 线性方程组的理论求解公式 x = A−1b (1) 在应用于实际问题的计算时,通常面临两 ...查看


  • 用matlab解线性方程组
  • 用matlab解线性方程组 2008-04-12 17:00 一.高斯消去法 1.顺序高斯消去法 直接编写命令文件 a=[] d=[]' [n,n]=size(a); c=n+1 a(:,c)=d; for k=1:n-1 a(k+1:n, ...查看


  • 数值分析学习心得体会
  • 数值分析学习感想 一个学期的数值分析,在老师的带领下,让我对这门课程有了深刻的理解和感悟.这门 课程是一个十分重视算法和原理的学科,同时它能够将人的思维引入数学思考的模式,在处 理问题的时候,可以合理适当的提出方案和假设.他的内容贴近实际, ...查看


  • 中国农业大学2014-2015学期研究生数值分析试题
  • 学号: 姓名: 中国农业大学2014-2015秋季学期研究生<数值分析>试题 一. 填空题 *≤___________. 1.x *=3587.6是经四舍五入得到的近似值,则其相对误差e r 2.设f (x )=a n x n ...查看


  • 常微分方程初值问题答案
  • ⎧dy =-y ⎪ 1.(10分)对常微分方程初值问题⎨dx ⎪y (0)=1⎩ (0≤x ≤1) 取步长h =0.1, 分别用改进的Euler 法和标准的四阶Runge-Kutta 法作数值计算, 写出公式和简要推导过程,并把结果填入表内 ...查看


  • 线性方程组的数值解法
  • <大学数学实验>作业 线性方程组的数值解法 班级: 姓名: 学号: 日期: 目录 目录 ...................................................................... ...查看


热门内容