Решение системы уравнений методом простой итерации - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д