📄 利用雅可比(jocabi)迭代法解线性方程组1.txt
字号:
///利用雅可比(Jocabi)迭代法解线性方程组
///
using System;
namespace Interetive
{
///
/// Jacobi 的摘要说明。
///
class Jacobi
{
private int n;
private double[,] Parameters;
private double[,] Value;
private double Precision;
private double[] MatrixB;
///
/// 输入系数矩阵
///
private void Initialize()
{
Console.WriteLine("请输入系数矩阵的维数:");
n=int.Parse(Console.ReadLine());
Value=new Double[2,n];
Parameters=new double[n,n];
MatrixB=new double[n];
for(int i=0;i
{
Console.WriteLine("请输入第"+(i+1)+"维系数");
for(int j=0;j
{
Console.Write("a("+(j+1)+")=");
Parameters[i,i]=double.Parse(Console.ReadLine());
}
}
Console.WriteLine("请输入B矩阵:");
for(int i=0;i
{
Console.Write("b("+(i+1)+")=");
MatrixB[i]=double.Parse(Console.ReadLine());
}
}
///
/// 检查系数矩阵是否收敛
///
///
private bool IsConvergence()
{
for(int i=0;i
{
for(int j=0;j
{
if(Parameters[i,i]<=Parameters[i,j])
{
return false;
}
}
}
return true;
}
///
/// 输入初值
///
private void SetValue()
{
for(int i=0;i
{
Console.Write("x("+i+")=");
Value[0,i]=double.Parse(Console.ReadLine());
Value[1,i]=0.0;
}
Console.WriteLine("请输入精度要求:");
Precision=double.Parse(Console.ReadLine());
}
///
/// 检查迭代是否已满足精度要求
///
///
private bool IsPrecision()
{
for(int i=0;i
{
if(Math.Abs(Value[0,i]-Value[1,i])>Precision)
{
return false;
}
}
return true;
}
///
/// 迭代过程
///
///
private void Iterate()
{
for(int i=0;i
{
if(IsPrecision()==false)
{
for(int j=0;j
{
if(j!=i)
{
Value[i%2,i]+=-Parameters[i,j]/Parameters[i,i]*Value[(i+1)%2,j];
}
}
Value[i%2,i]+=MatrixB[i];
}
}
}
///
/// 计算Jacobi迭代结果
///
///
private void calculate()
{
if(IsConvergence()==true)
{
Iterate();
}
else
{
Console.WriteLine("您输入的方程组的Jacobi迭代式不收敛!");
}
}
///
/// 返回迭代结果
///
private void Result()
{
if(IsConvergence()==true)
{
for(int i=0;i
{
Console.WriteLine("x("+i+")="+Value[1,i]);
}
}
}
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main(string[] args)
{
Jacobi Jacobi1=new Jacobi();
Jacobi1.Initialize();
Jacobi1.calculate();
Jacobi1.Result();
Console.Read();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -