Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace CM2
- {
- class Program
- {
- private static double[] unkn = new double[3];
- private static double[] unknNull = new double[3];
- private static double[] coef =
- {
- 1.667, 0.33, 0.5,
- - 0.6, 2.4, 0.3,
- - 0.33, 0.5, 2.5
- };
- static void Main(string[] args)
- {
- double eps = 0.001, eps1 = 0.00001;
- Console.WriteLine("Введите начальные приближения: ");
- for (int i = 0; i < 3; i++)
- {
- Console.WriteLine("x{0} = ", i);
- unknNull[i] = 0;
- }
- Console.WriteLine("Кол-во итераций: {0}", MZ(eps));
- for (int i = 0; i < unkn.Length; i++)
- {
- Console.WriteLine("x{0} = {1}", i, unkn[i]);
- }
- }
- static int RL(double eps)
- {
- int k = 0;
- for(k = 1;; k++)
- {
- for (int i = 0; i < unkn.Length; i++)
- {
- for (int j = i * 3; j < (i + 1) * 3; j++)
- {
- unkn[i] += coef[j] * (j % 3 != i ? unknNull[j % 3] : 1);
- //Console.WriteLine("unkn[{2}]={0}, unkn={6}, j = {1}, i ={2}, coef[{1}]={3}, unknNull[{4}]={5}", unkn[i], j, i, coef[j], j % 3, (j % 3 != i ? unknNull[j % 3] : 1), coef[j] * (j % 3 != i ? unknNull[j % 3] : 1));
- }
- }
- Console.WriteLine("x = {0}\ny = {1}\nz = {2}", unkn[0], unkn[1], unkn[2]);
- Console.WriteLine("x0 = {0}\ny0 = {1}\nz0 = {2}\nk = {3}", unknNull[0], unknNull[1], unknNull[2], k);
- if (Math.Abs(unkn[0] - unknNull[0]) + Math.Abs(unkn[1] - unknNull[1]) +
- Math.Abs(unkn[2] - unknNull[2]) <= eps) break;
- unknNull = unkn;
- unkn = new double[unknNull.Length];
- }
- return k;
- }
- static int MZ(double eps)
- {
- int k = 0;
- for(k = 1;; k++)
- {
- for (int i = 0; i < unkn.Length; i++)
- {
- for (int j = i * 3; j < (i + 1) * 3; j++)
- {
- unkn[i] += coef[j] * (j % 3 != i ? (i == 0 ? unknNull[j % 3] : i == 1 ? j % 3 == 0 ? unkn[i-1] : unknNull[j % 3] : i == 2 ? unkn[j % 3] : 1) : 1);
- //Console.WriteLine("unkn[{2}]={0}, unkn={6}, j = {1}, i ={2}, coef[{1}]={3}, unknNull[{4}]={5}", unkn[i], j, i, coef[j], j % 3, (j % 3 != i ? unknNull[j % 3] : 1), coef[j] * (j % 3 != i ? unknNull[j % 3] : 1));
- }
- }
- Console.WriteLine("x = {0}\ny = {1}\nz = {2}", unkn[0], unkn[1], unkn[2]);
- Console.WriteLine("x0 = {0}\ny0 = {1}\nz0 = {2}\nk = {3}", unknNull[0], unknNull[1], unknNull[2], k);
- if (Math.Abs(unkn[0] - unknNull[0]) + Math.Abs(unkn[1] - unknNull[1]) +
- Math.Abs(unkn[2] - unknNull[2]) <= eps) break;
- unknNull = unkn;
- unkn = new double[unknNull.Length];
- }
- return k;
- }
- static int MPI(double eps)
- {
- int k = 0;
- for(k = 1;; k++)
- {
- for (int i = 0; i < unkn.Length; i++)
- {
- for (int j = i * 3; j < (i + 1) * 3; j++)
- {
- unkn[i] += coef[j] * (j % 3 != i ? unknNull[j % 3] : 1);
- //Console.WriteLine("unkn[{2}]={0}, unkn={6}, j = {1}, i ={2}, coef[{1}]={3}, unknNull[{4}]={5}", unkn[i], j, i, coef[j], j % 3, (j % 3 != i ? unknNull[j % 3] : 1), coef[j] * (j % 3 != i ? unknNull[j % 3] : 1));
- }
- }
- Console.WriteLine("x = {0}\ny = {1}\nz = {2}", unkn[0], unkn[1], unkn[2]);
- Console.WriteLine("x0 = {0}\ny0 = {1}\nz0 = {2}\nk = {3}", unknNull[0], unknNull[1], unknNull[2], k);
- if (Math.Abs(unkn[0] - unknNull[0]) + Math.Abs(unkn[1] - unknNull[1]) +
- Math.Abs(unkn[2] - unknNull[2]) <= eps) break;
- unknNull = unkn;
- unkn = new double[unknNull.Length];
- }
- return k;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement