Решение СЛАУ методом итераций - C#

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

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

Ребят, прошу помощи. В математике не силен, а надо сделать приложение для решения слау методом итераций. Нашел код java, переписал на c#, но он зацикливается, а понять не могу, из-за чего так. Вот сам код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace IterationConsole
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Console.Write("n=");
  13. int size = Int32.Parse(Console.ReadLine());
  14. double[,] matrix = new double[size, size + 1];
  15. for (int i = 0; i < size; i++)
  16. {
  17. for (int j = 0; j < size + 1; j++)
  18. {
  19. Console.Write(i + "," + j + "=");
  20. matrix[i, j] = Double.Parse(Console.ReadLine());
  21. }
  22. }
  23. Console.Write("eps=");
  24. double eps = Double.Parse(Console.ReadLine());
  25. double[] previousVariableValues = new double[size];
  26. for (int i = 0; i < size; i++)
  27. {
  28. previousVariableValues[i] = 0.0;
  29. }
  30. while (true)
  31. {
  32. double[] currentVariableValues = new double[size];
  33. for (int i = 0; i < size; i++)
  34. {
  35. // Инициализируем i-ую неизвестную значением
  36. // свободного члена i-ой строки матрицы
  37. currentVariableValues[i] = matrix[i,size];
  38. // Вычитаем сумму по всем отличным от i-ой неизвестным
  39. for (int j = 0; j < size; j++)
  40. {
  41. if (i != j)
  42. {
  43. currentVariableValues[i] -= matrix[i,j] * previousVariableValues[j];
  44. }
  45. }
  46. // Делим на коэффициент при i-ой неизвестной
  47. currentVariableValues[i] /= matrix[i,i];
  48. }
  49. double error = 0.0;
  50. for (int i = 0; i < size; i++)
  51. {
  52. error += Math.Abs(currentVariableValues[i] - previousVariableValues[i]);
  53. }
  54. if (error < eps)
  55. {
  56. break;
  57. }
  58. previousVariableValues = currentVariableValues;
  59. }
  60. for (int i = 0; i < size; i++)
  61. {
  62. Console.Write(previousVariableValues[i] + " ");
  63. }
  64.  
  65. Console.ReadLine();
  66. }
  67. }
  68. }

Решение задачи: «Решение СЛАУ методом итераций»

textual
Листинг программы
  1.  for (int i = 0; i < size; i++)
  2.                 {
  3.                     error += Math.Abs(currentVariableValues[i] - previousVariableValues[i]);
  4.                 // переместить }
  5.                 if (error < eps)
  6.                 {
  7.                     break(2); //или как там прервать два цикла.... for +while
  8.                 }
  9. // сюда

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


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

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

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы