Решение системы уравнений методом простой итерации - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Помогите пожалуйста написать код к следующей задаче: Решить систему уравнений с точностью E=10^-4 методом простой интерации. Заранее благодарен за помощь.

Решение задачи: «Решение системы уравнений методом простой итерации»

textual
Листинг программы
class Program
{
    delegate double[] Func(double[] x);
 
    static double Measure(double[] x, double[] y)
    {
        double s = 0;
        for (int i = 0; i < x.Length; i++)
            s += (x[i] - y[i]) * (x[i] - y[i]);
        return Math.Sqrt(s);
    }
 
    static double[] Base(double[] x)
    {
        return new double[]
        {
            4.15 * x[0] - 3.20 * x[1] + 1.11 * x[2] + 5.40 * x[3] - 7.1,
            0.87 * x[0] - 2.14 * x[1] - 2.14 * x[2] - 3.21 * x[3] - 3.06,
            3.12 * x[0] - 1.00 * x[1] + 2.13 * x[2] + 0.00 * x[3] + 0.92,
            2.11 * x[0] + 3.26 * x[1] + 2.17 * x[2] - 8.14 * x[3] + 7.5
        };
    }
 
    static double[] Next(double[] x, double[] l, Func f)
    {
        double[] t = f(x);
        for (int i = 0; i < x.Length; i++)
            t[i] = x[i] - t[i] * l[i];
 
        return t;
    }
        
    static void Main(string[] args)
    {
        // Начальное приближение
        double[] x = { 0, 0, 0, 0 }, y = { 1, 1, 1, 1 };
        // коэффициент
        double[] l = { 0.01, -0.32, 0.3, -0.16 }; // метод Ньютона l = 1/f'(x0)
        // точность 
        double e = 1e-4;
 
        while (Measure(x, y) > e)
        {
            x = Next(y = x, l, Base);
        }
 
        for (int i = 0; i < x.Length; i++ )
        {
            Console.WriteLine("x[{0}] = {1}", i, x[i]);
        }
                
        Console.ReadLine();
    }
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы