当前位置:首页 » 编程语言 » c语言jacobi迭代法

c语言jacobi迭代法

发布时间: 2024-06-27 03:56:33

‘壹’ 雅克比迭代法求解线性方程组的C语言程序

void Solve ( double dCoef [] , double dY [] , unsigned int iOrder , double dErr)
{//用Jacobi迭代法解方程组, dCoef[]系数阵, Y[]向量, iOrder给出方程阶数, dErr给出精度

double res [Max]; //方程解
double res2[Max]; //保存上一阶方程解

if ( Max < iOrder )
{
printf ("最多支持%d阶方程组.", Max);
return;
}
for ( unsigned int i = 0 ; i < iOrder ; res2 [i++] = 0.0 ); //初始解向量 (0,0...)

while ( true )
{
bool bStopIterative = true;
for (unsigned int i = 0 ; i < iOrder ; ++i)
{
double dSum2 = 0;
for (unsigned int j = 0 ; j < iOrder ; j++)
{//求第二项
if ( j == i ) continue;
dSum2 += dCoef [i * iOrder + j] * res2 [j];
}
res[i] = 1/dCoef[i * iOrder + i] * ( dY[i] - dSum2 );

if ( abs ( res2[i] - res [i] ) > dErr )
bStopIterative = false;
}

if ( bStopIterative )
break;
for (unsigned int i = 0 ; i < iOrder ; i++ )
res2[ i ] = res[ i ];
}

//输出结果
for (unsigned int i = 0 ; i < iOrder ; i++)
printf ("x%d = %lf\n", i+1 , res[i]);

}

int main(int argc, char* argv[])
{
double a[] =
{
8,-3,2,
4,11,-1,
2,1,4
};
double b[3] =
{
20,33,12
};

Solve ( a , b , 15 , 1e-10);
getchar();
return 0;
}

热点内容
大型存储柜 发布:2025-01-17 06:08:27 浏览:644
发生脚本错误怎么办 发布:2025-01-17 06:03:02 浏览:793
删除文件夹时显示在另一程序打开 发布:2025-01-17 06:03:01 浏览:543
安卓手机怎么装驱动 发布:2025-01-17 06:02:17 浏览:622
安卓微信拍了拍怎么改 发布:2025-01-17 05:57:31 浏览:46
BMF服务器的系统服务怎么关 发布:2025-01-17 05:50:29 浏览:876
免刷安卓系统怎么进入usb调试 发布:2025-01-17 05:48:21 浏览:837
数据库的三层架构 发布:2025-01-17 05:17:36 浏览:149
云顶之弈有人开脚本怎么举报 发布:2025-01-17 05:16:59 浏览:682
sql包含数字 发布:2025-01-17 05:11:56 浏览:292