Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Титов Семён. Задача 2. Вариант 24. Метод простых итераций #335

Open
wants to merge 41 commits into
base: master
Choose a base branch
from

Conversation

Semyon1104
Copy link
Contributor

  • Описание последовательной задачи:

На вход подается матрица системы линейных уравнений, преобразуется к виду x = cx + d. Далее, начиная с точки 0 высчитываются последовательные приближения значений переменных системы уравнений. Для этого нужны 2 массива с текущими значениями и предыдущими. Процесс идет до тех пор пока максимальная разница между текущими значениями переменной и прошлыми значениями не будут меньше заданного epsilon.

  • Описание параллельной задачи:

На вход для удобства подается матрица A и вектор B, где СЛАУ имеет вид Ax=B, (здесь мы не преобразовываем матрицу заранее, а немного меняем вычисления новых значений). Каждой процессу выделена одна строка, если процессов меньше, то каждому процессу соответствует кратное количество строк, последний процесс забирает все оставшиеся. Если процессов выделено больше, часть из них бездействует. После подсчета очередным процессом очередного приближения переменной данные массив текущих значений x обновляется у всех процессов, по окончании итерации всеми процессами, массив с текущими значениями копируется в массив с прошлыми значениями, процесс продолжается пока в главном процессе не пройдет проверка на сходимость к epsilon.


Matrix.assign(Matrix_input, Matrix_input + Rows * Rows);
Values.assign(Values_input, Values_input + Rows);
current.assign(Rows, 0.0);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there must be a condition under which the solution of the equation converges to an exact solution from any point, in your case from point zero

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, add more functional tests for matrix of type 1x1, 2x2, and also don't forget to check the empty matrix

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@codecov-commenter
Copy link

codecov-commenter commented Nov 25, 2024

Codecov Report

Attention: Patch coverage is 94.28571% with 12 lines in your changes missing coverage. Please review.

Project coverage is 96.27%. Comparing base (b456b24) to head (85803b3).

Files with missing lines Patch % Lines
tasks/mpi/titov_s_simple_iteration/src/ops_mpi.cpp 93.66% 0 Missing and 9 partials ⚠️
tasks/seq/titov_s_simple_iteration/src/ops_seq.cpp 95.38% 0 Missing and 3 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #335      +/-   ##
==========================================
- Coverage   96.31%   96.27%   -0.04%     
==========================================
  Files         437      441       +4     
  Lines       11236    11446     +210     
  Branches     4739     4840     +101     
==========================================
+ Hits        10822    11020     +198     
  Misses        136      136              
- Partials      278      290      +12     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants