Vous êtes sur la page 1sur 5

Solve linear System 3*3 Using cramer's rule

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("num_rows as n equal 3 = number of
equation");
int n = 3;
Console.WriteLine(" num_colums as m equal 4 && number of
vriable =3");
int m = 4;
double[,] a = new double[n, m];
for (int i = 0; i < 3; i++)
{
Console.WriteLine("plz enter the elements of the
equation" + (i + 1));
for (int j = 0; j < 4; j++)
a[i, j] = double.Parse(Console.ReadLine());
}
double[,] delta = new double[n, m-1];
delta[0, 0] = a[0, 0];
delta[0, 1] = a[0, 1];
delta[0, 2] = a[0, 2];
delta[1, 0] = a[1, 0];
delta[1, 1] = a[1, 1];
delta[1, 2] = a[1, 2];
delta[2, 0] = a[2, 0];
delta[2, 1] = a[2, 1];
delta[2, 2] = a[2, 2];
double[,] delta1 = new double[n, m - 1];
delta1[0, 0] = a[0, 3];
delta1[1, 0] = a[1, 3];
delta1[2, 0] = a[2, 3];
delta1[0, 1] = a[0, 1];
delta1[1, 1] = a[1, 1];
delta1[2, 1] = a[2, 1];
delta1[0, 2] = a[0, 2];
delta1[1, 2] = a[1, 2];
delta1[2, 2] = a[2, 2];
double[,] delta2 = new double[n, m - 1];
delta2[0, 0] = a[0, 0];
delta2[1, 0] = a[1, 0];
delta2[2, 0] = a[2, 0];
delta2[0, 1] = a[0, 3];
delta2[1, 1] = a[1, 3];
delta2[2, 1] = a[2, 3];
delta2[0, 2] = a[0, 2];
delta2[1, 2] = a[1, 2];
delta2[2, 2] = a[2, 2];
double[,] delta3 = new double[n, m - 1];
delta3[0, 0] = a[0, 0];
delta3[1, 0] = a[1, 0];
delta3[2, 0] = a[2, 0];
delta3[0, 1] = a[0, 1];
delta3[1, 1] = a[1, 1];
delta3[2, 1] = a[2, 1];
delta3[0, 2] = a[0, 3];
delta3[1, 2] = a[1, 3];
delta3[2, 2] = a[2, 3];

double A = delta[0, 0] * delta[1, 1] * delta[2, 2] +


delta[0, 1] * delta[1, 2] * delta[2, 0] + delta[0, 2] * delta[1, 0] *
delta[2, 1] - delta[0, 2] * delta[1, 1] * delta[2, 0] - delta[0, 0] *
delta[1, 2] * delta[2, 1] - delta[0, 1] * delta[1, 0] * delta[2, 2];
double A1 = delta1[0, 0] * delta1[1, 1] * delta1[2, 2] +
delta1[0, 1] * delta1[1, 2] * delta1[2, 0] + delta1[0, 2] * delta1[1,
0] * delta1[2, 1] - delta1[0, 2] * delta1[1, 1] * delta1[2, 0] -
delta1[0, 0] * delta1[1, 2] * delta1[2, 1] - delta1[0, 1] * delta1[1,
0] * delta1[2, 2];
double A2 = delta2[0, 0] * delta2[1, 1] * delta2[2, 2] +
delta2[0, 1] * delta2[1, 2] * delta2[2, 0] + delta2[0, 2] * delta2[1,
0] * delta2[2, 1] - delta2[0, 2] * delta2[1, 1] * delta2[2, 0] -
delta2[0, 0] * delta2[1, 2] * delta2[2, 1] - delta2[0, 1] * delta2[1,
0] * delta2[2, 2];
double A3 = delta3[0, 0] * delta3[1, 1] * delta3[2, 2] +
delta3[0, 1] * delta3[1, 2] * delta3[2, 0] + delta3[0, 2] * delta3[1,
0] * delta3[2, 1] - delta3[0, 2] * delta3[1, 1] * delta3[2, 0] -
delta3[0, 0] * delta3[1, 2] * delta3[2, 1] - delta3[0, 1] * delta3[1,
0] * delta3[2, 2];

double x = A1/A;
double y = A2/A;
double z = A3/A;

Console.WriteLine("the first variable equal =" + x);


Console.WriteLine("the second variable equal =" + y);
Console.WriteLine("the third variable equal =" + z);
Console.ReadLine();
Console.ReadLine();
}
}
}
The inverted matrix Using I matrix

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("num_rows as n equal 3 ");
int n = 3;
Console.WriteLine("num_colums as m equal 3");
int m = 3;
double[,] a = new double[n, m];
for (int i = 0; i < n; i++)
{
Console.WriteLine("plz enter the elements of the row" +
(i + 1));
for (int j = 0; j < m; j++)
a[i, j] = double.Parse(Console.ReadLine());
}
double[,] I = new double[3, 3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (i == j)
I[i, j] = 1;
else
I[i, j] = 0;
}
}

I[0, 0] = I[0, 0] / a[0, 0];


a[0, 1] = a[0, 1] / a[0, 0];
a[0, 2] = a[0, 2] / a[0, 0];
a[0, 0] = a[0, 0] / a[0, 0];
I[1, 0] = (-a[1, 0] * I[0, 0]) + I[1, 0];
a[1, 1] = (-a[1, 0] * a[0, 1]) + a[1, 1];
a[1, 2] = (-a[1, 0] * a[0, 2]) + a[1, 2];
a[1, 0] = (-a[1, 0] * a[0, 0]) + a[1, 0];
I[2, 0] = (-a[2, 0] * I[0, 0]) + I[2, 0];
a[2, 1] = (-a[2, 0] * a[0, 1]) + a[2, 1];
a[2, 2] = (-a[2, 0] * a[0, 2]) + a[2, 2];
a[2, 0] = (-a[2, 0] * a[0, 0]) + a[2, 0];
I[1, 0] = I[1, 0] / a[1, 1];
I[1, 1] = I[1, 1] / a[1, 1];
a[1, 0] = a[1, 0] / a[1, 1];
a[1, 2] = a[1, 2] / a[1, 1];
a[1, 1] = a[1, 1] / a[1, 1];
I[2, 0] = (-a[2, 1] * I[1, 0]) + I[2, 0];
I[2, 1] = (-a[2, 1] * I[1, 1]) + I[2, 1];
a[2, 2] = (-a[2, 1] * a[1, 2]) + a[2, 2];
a[2, 0] = (-a[2, 1] * a[1, 0]) + a[2, 0];
a[2, 1] = (-a[2, 1] * a[1, 1]) + a[2, 1];
I[2, 0] = I[2, 0] / a[2, 2];
I[2, 1] = I[2, 1] / a[2, 2];
I[2, 2] = I[2, 2] / a[2, 2];
a[2, 0] = a[2, 0] / a[2, 2];
a[2, 1] = a[2, 1] / a[2, 2];
a[2, 2] = a[2, 2] / a[2, 2];
I[1, 0] = (-a[1, 2] * I[2, 0]) + I[1, 0];
I[1, 1] = (-a[1, 2] * I[2, 1]) + I[1, 1];
I[1, 2] = (-a[1, 2] * I[2, 2]) + I[1, 2];
a[1, 0] = (-a[1, 2] * a[2, 0]) + a[1, 0];
a[1, 1] = (-a[1, 2] * a[2, 1]) + a[1, 1];
a[1, 2] = (-a[1, 2] * a[2, 2]) + a[1, 2];
I[0, 0] = (-a[0, 2] * I[2, 0]) + I[0, 0];
I[0, 1] = (-a[0, 2] * I[2, 1]) + I[0, 1];
I[0, 2] = (-a[0, 2] * I[2, 2]) + I[0, 2];
a[0, 0] = (-a[0, 2] * a[2, 0]) + a[0, 0];
a[0, 1] = (-a[0, 2] * a[2, 1]) + a[0, 1];
a[0, 2] = (-a[0, 2] * a[2, 2]) + a[0, 2];
I[0, 0] = (-a[0, 1] * I[1, 0]) + I[0, 0];
I[0, 1] = (-a[0, 1] * I[1, 1]) + I[0, 1];
I[0, 2] = (-a[0, 1] * I[1, 2]) + I[0, 2];
a[0, 0] = (-a[0, 1] * a[1, 0]) + a[0, 0];
a[0, 2] = (-a[0, 1] * a[1, 2]) + a[0, 2];
a[0, 1] = (-a[0, 1] * a[1, 1]) + a[0, 1];
Console.WriteLine("the I matrix is ");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(a[i, j]);
Console.Write("\t");
}
Console.Write("\n");
}

Console.WriteLine("the inverted matrix is ");


for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(I[i, j]);
Console.Write("\t");
}
Console.Write("\n");
}
Console.ReadLine();
Console.ReadLine();
}
}
}
Solve linear system using Gausiian equation
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("num_rows as n equal 3 = number of
equation");
int n = 3;
Console.WriteLine(" num_colums as m equal 4 && number of
vriable =3");
int m = 4;
double[,] a = new double[n, m];
for (int i = 0; i < 3; i++)
{
Console.WriteLine("plz enter the elements of the
equation" + (i + 1));
for (int j = 0; j < 4; j++)
a[i, j] = double.Parse(Console.ReadLine());
}

a[0, 1] = a[0, 1] / a[0, 0];


a[0, 2] = a[0, 2] / a[0, 0];
a[0, 3] = a[0, 3] / a[0, 0];
a[0, 0] = 1;
a[1, 1] = (-a[1, 0] * a[0, 1]) + a[1, 1];
a[1, 2] = (-a[1, 0] * a[0, 2]) + a[1, 2];
a[1, 3] = (-a[1, 0] * a[0, 3]) + a[1, 3];
a[1, 0] = 0;
a[2, 1] = (-a[2, 0] * a[0, 1]) + a[2, 1];
a[2, 2] = (-a[2, 0] * a[0, 2]) + a[2, 2];
a[2, 3] = (-a[2, 0] * a[0, 3]) + a[2, 3];
a[2, 0] = 0;
a[1, 2] = a[1, 2] / a[1, 1];
a[1, 3] = a[1, 3] / a[1, 1];
a[1, 1] = 1;
a[2, 2] = (-a[2, 1] * a[1, 2]) + a[2, 2];
a[2, 3] = (-a[2, 1] * a[1, 3]) + a[2, 3];
a[2, 1] = 0;
a[2, 3] = a[2, 3] / a[2, 2];
a[2, 2] = 1;
double z = a[2, 3];
double y = a[1, 3] - (a[1, 2] * z);
double x = a[0, 3] - (a[0, 2] * z) - (a[0, 1] * y);
Console.WriteLine("the first variable equal =" + x);
Console.WriteLine("the second variable equal =" + y);
Console.WriteLine("the third variable equal =" + z);
Console.ReadLine();
Console.ReadLine();
}
}
}

Vous aimerez peut-être aussi