您所在位置: 网站首页 / 雅克比迭代法.docx / 文档详情
雅克比迭代法.docx 立即下载
2024-11-05
约1.3千字
约3页
0
152KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

雅克比迭代法.docx

雅克比迭代法.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

20 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

雅克比迭代法
上机题目:
用雅克比迭代法解线性方程组
上机程序:
#include<stdio.h>
#include<math.h>

main()
{

	doubleA[3][3]={{5,2,1},{-1,4,2},{2,-3,10}},b[3]={-12,20,3};//输入系数矩阵A和右端向量b
	doublen=3,tol=1.0e-3,x[3]={-3,1,1};//输入方程大小n,误差限tol,和初始向量x
	doubley[3];//记录每次迭代产生的新的近似解
	doublemaxerr;//maxerr记录相邻两个数值解想x与y的差的绝对值的最大的那个分量。
intk,i,j;

printf("此线性方程组的增广矩阵如下:\n");
//下面循环是输出增广矩阵(A,b)
	for(k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
	{printf("%f",A[k][i]);
	}
	printf("%f\n",b[k]);

	}
//输出增广矩阵(A,b)完

printf("此方程组的精确解为x=(-4,3,2),\n");//显示精确解以便于对比

//输出初始迭代向量
	printf("\nJacobi迭代的初始值x^0=(");
	for(i=0;i<n;i++)
	{printf("%f",x[i]);
	}
	printf(")\n");
//输出初始迭代向量完

	printf("误差限是%f\n",tol);//输出误差限

	printf("Jacobi迭代解序列X^(k)max|x^(k+1)-x^(k)|\n");
	printf("x^%d=",k=0);
		for(i=0;i<n;i++)
			printf("%f",x[i]);
printf("\n");

//Jacobi迭代
k=0;
	
do
	{for(i=0;i<n;i++)
	{
		doubleT=0.0;
	for(j=0;j<n;j++)
		{
			if(j==i)continue;
T=T+A[i][j]*x[j];
		}
		y[i]=(b[i]-T)/A[i][i];
	}
//Jacobi迭代完

//求相邻两个数值解想x与y的差的绝对值的最大的那个分量
		maxerr=fabs(y[0]-x[0]);
		for(j=1;j<n;j++)
		{if(maxerr<fabs(y[j]-x[j]))
			maxerr=fabs(y[j]-x[j]);
		}
//求相邻两个数值解想x与y的差的绝对值的最大的那个分量完

		for(i=0;i<n;i++)
		{
			x[i]=y[i];
		}
k=k+1;

printf("x^%d=",k);
		for(i=0;i<n;i++)printf("%f",x[i]);
		printf("%f",maxerr);
printf("\n");
	}while(maxerr>tol);
}

运行结果:

查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

雅克比迭代法

文档大小:152KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用