Математический форум Math Help Planet http://mathhelpplanet.com/ |
|
Заполнение матрицы http://mathhelpplanet.com/viewtopic.php?f=44&t=71111 |
Страница 1 из 1 |
Автор: | orelna [ 13 сен 2020, 12:22 ] |
Заголовок сообщения: | Заполнение матрицы |
Добрый день! Решаю численно задачу (дифференциальное уравнение в частных производных 4 порядка - бигармоническое уравнение). Для решения использую следующую разностную схему: [math]\dfrac{{20}}{{h^4 }}y_i^j - \dfrac{8}{{h^4 }}\left( {y_{i + 1}^j + y_i^{j + 1} + y_i^{j - 1} } \right) + \dfrac{2}{{h^4 }}\left( {y_{i + 1}^{j + 1} + y_{i - 1}^{j + 1} + y_{i - 1}^{j - 1} + y_{i + 1}^{j - 1} } \right) + \dfrac{1}{{h^4 }}\left( {y_{i + 2}^j + y_i^{j + 2} + y_{i - 2}^j + y_{i - 2}^j } \right) = 0 , i,j = 2.. M-2[/math] [math]\begin{array}{l} \dfrac{{y_i^0 - 2y_{i - 1}^0 + y_{i - 2}^0 }}{{h^2 }} = - p\left( {x_i } \right),\,\,i = \overline {2,M - 1} , \\ \dfrac{{y_{i + 1}^1 - y_i^1 - y_{i + 1}^0 + y_i^0 }}{{h^2 }} = - q\left( {x_i } \right),\,\,\overline {i = 1,M - 1} . \\ \dfrac{{y_i^N - 2y_{i - 1}^N + y_{i - 2}^N }}{{h^2 }} = 0,\,\,\dfrac{{y_{i + 1}^N - y_i^N - y_{i + 1}^{N - 1} + y_i^{N - 1} }}{{h^2 }} = 0,\,\,i = \overline {2,M } , \\ \dfrac{{y_0^{j + 1} - 2y_0^j + y_0^{j - 1} }}{{h^2 }} = 0,\,\,\dfrac{{y_1^{j + 1} - y_0^{j + 1} - y_1^j + y_0^j }}{{h^2 }} = 0,\,\,j = \overline {0,M - 1} , \\ \dfrac{{y_M^{j + 1} - 2y_M^j + y_M^{j - 1} }}{{h^2 }} = 0,\,\,\dfrac{{y_M^{j + 1} - y_{M - 1}^{j + 1} - y_M^j + y_{M - 1}^j }}{{h^2 }} = 0,\,\,j = \overline {1,M - 1} . \\ \end{array}[/math] Пытаюсь заполнить матрицу системы размером [math](M+1)^2[/math], где каждая строка -- это соответствующее уравнение, а столбцы -- это коэффициенты перед переменными.. Т.е. каждая строка матрицы -- уравнение с переменными [math]y_{0}^{0}, y_1^0 , y_2^0[/math] и т.д. Возникла проблема именно программно, как в С++ эту матрицу заполнить циклически? Т.е. у меня каждый элемент матрицы [math]A[i][j][/math] , [math]i[/math]-номер уравнения, [math]j[/math]-- номер переменной. С номером уравнения еще ладно, а вот номер переменной [math]j[/math] -- как получить этот номер. Сижу уже 2 день, не могу никак сдвинуться. |
Автор: | orelna [ 13 сен 2020, 15:27 ] |
Заголовок сообщения: | Re: Заполнение матрицы |
Внизу прилагаю код того, как хотя бы я пытался заполнить матрицу коэффициентов системы для первого уравнения. Я просто не могу выявить закономерность между переменной y[i][j] и номером столбца, в которой она стоит. //Начальные данные для задачи |
Автор: | Emphatic18 [ 23 сен 2020, 14:49 ] |
Заголовок сообщения: | Re: Заполнение матрицы |
Что то Вы по моему перемудрили. Я например не понимаю для чего 3 вложенных цикла у Вас (если правильно понял что Вы хотите). Матрица квадратная, нужен 1 внешний цикл и один вложенный. И кроме того Вы ведь записываете в файл не переменные Y0...Yn, а пишите коэффициенты при Y. Не знаю как Вы хотите решать, но обычно просто записываются уравнения, в котором Y это элементы массива. dy(1) = a1*y(1) + b1*y(2)... Правда с задачами в частных производных заниматься не приходилось, может быть там есть свои особенности. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |