Professional Documents
Culture Documents
ЧМ3
ЧМ3
Комп’ютерний практикум 3
З дисципліни “Чисельні методи”
Варіант 18
class Program
{
static void Main()
{
double[,] A = {
{ 1.00, 0.55, -0.13, -0.15 },
{ 0.13, -0.17, 0.33, 0.17 },
{ 0.11, 0.18, -0.22, -0.11 },
{ 0.13, -0.12, 0.21, 0.22 }
};
int n = A.GetLength(0);
double[,] L = new double[n, n];
double[,] U = new double[n, n];
// LU-розклад матриці A
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (j < i)
{
double s = 0;
for (int k = 0; k < j; k++)
{
s += L[i, k] * U[k, j];
}
L[i, j] = (A[i, j] - s) / U[j, j];
}
else
{
double s = 0;
for (int k = 0; k < i; k++)
{
s += L[i, k] * U[k, j];
}
U[i, j] = A[i, j] - s;
if (i == j)
{
L[i, j] = 1;
}
}
}
}
Console.WriteLine("Matrix U:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write("{0,8:F2} ", U[i, j]);
}
Console.WriteLine();
}
// Знаходження детермінанту
double det = 1.0;
for (int i = 0; i < n; i++)
{
det *= U[i, i];
}
// Знаходження результату
double[] result = new double[n];
for (int i = 0; i < n; i++)
{
double sum = 0.0;
for (int j = 0; j < n; j++)
{
sum += A_inv[i, j] * free_values[j];
}
result[i] = sum;
}
// Розв'язування системи Ux = y
for (int i = n - 1; i >= 0; i--)
{
double s = 0;
for (int j = i + 1; j < n; j++)
{
s += U[i, j] * x[j];
}
x[i] = (y[i] - s) / U[i, i];
}
return x;
}
}
Результати коду :
Код :
using System;
class Program
{
static void Main(string[] args)
{
int N = 18;
for (int n = 3; n <= 8; n++)
{
double[,] a = new double[n, n];
double[] b = new double[n];
double[,] c = new double[n, n];
double norm, cond;
return norm;
}
return cond;
}
return I;
}
}
using System;
class Program
{
static void Main(string[] args)
{
double[] S = { 1.1, 1.4, 2.2 }; // значення для S_i
double[] f = { 30, 45, 60 }; // значення для f_i в градусах
double[] a = new double[3]; // масив для a_i
// Виведемо результати
Console.WriteLine("a1 = " + a[0]);
Console.WriteLine("a2 = " + a[1]);
Console.WriteLine("a3 = " + a[2]);
}
}
Контрольні запитання