![]() |
|
|
![]()
|
|
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
1) Разбиваем отрезок на много кусочков. Для простоты - равных. 2) Считаем, что искомая функция с хорошей точностью описывается на каждом кусочке отрезком. 3) Для кусочка от x_k до x_{k+1} записываем разностную аппроксимацию уравнения. Например, в таком виде: (u_{k+1}-u_k)/(x_{k+1}-x{k}) + u_k = x_k/(x_k+1)^2 4) Если кусочки равные и их N, то x{k}=k/N. Тогда аппроксимация переписывается в виде: (u_{k+1}-u_k)*N + u_k = k/N/(k/Nx+1)^2 5) Записав такие уравнения для всех k от 0 до N-1, получаем систему N линейных уравнений относительно N+1 неизвестных u_k. Чтобы ее решить, нужно еще одно уравнение, это u_0=1 (из начального условия). 6) Получившуюся линейную систему решаем каким-нибудь методом (можно банальным Гауссом, но проще чем-нибудь итерационным, поскольку у матрицы системы явно будет диагональное преобладание). Все. При желании можно считать, что на каждом отрезке решение представляется не линейной функцией, а какой-то более сложной. Если задача не одномерная, то появится еще один вопрос - выбор вида элементов (в одномерном случае это только отрезки, но уже в двумерном могут быть квадратики, треугольнички и т.д.). |
|||
|
||||
| wowka19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 30.11.2011 Репутация: нет Всего: нет |
Фантом, кажись это МКР, а не МКЭ.
|
|||
|
||||
| Pavia |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
||||
|
||||
| wowka19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 30.11.2011 Репутация: нет Всего: нет |
Фантом, мне не совсем понятны ваши обозначения:
как я понял u_{x+1} - это u(k+1) - значение искомой функции в правом узле k-го элемента u_k - это u(k) а что такое - x_{k+1}, x_{k} и x_k ? ладно предположу, что x_{k} и x_k - это одно и то же: но ведь (u_{k+1}-u_k)/(x_{k+1}-x{k}) + u_k = x_k/(x_k+1)^2 - это разностное уравнение, при помощи которого мы рекурсивно (с определенным шагом, отталкиваясь от начального условия u(0)=1) вычисляем значения ф-ции u до необходимого нам u(X). то есть применяем МКР, разве нет? Pavia не надо острить, так вы не поможете. Это сообщение отредактировал(а) wowka19 - 23.11.2012, 13:27 |
|||
|
||||
| Фантом |
|
||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Ну, справедливости ради надо сказать, что в данном случае разница между ними невелика.
Нет, k+1-ого (нумерация элементов начинается с единицы). Да.
Значения аргумента на соответствующих границах элементов. x_{k} и x_k действительно одно и то же. Как я уже писал выше, разница между этими методами в одномерном случае достаточно условна. Фактически она определяется способом решения системы линейных алгебраических уравнений. Если Вы решаете его методом прогонки (так, как предлагаете выше) - это больше похоже на МКР. Если система решается каким-либо нерекуррентным методом (Гаусс, Зейдель и т.п.) - МКЭ. Разница между методами была бы более заметной, если бы Вы в качестве примера взяли нелинейное уравнение и/или двумерный случай и/или краевую задачу вместо задачи Коши. Правда, боюсь, в этом случае мне было бы лень расписывать решение, особенно с учетом невозможности пользоваться TeX'овскими правилами записи формул. Добавлено через 4 минуты и 35 секунд Да, кстати, еще одна добавка, которую можно было бы сделать для вящей наглядности - построить неравномерную сетку. Если предварительно получить каким-либо способом грубое решение задачи или просто оценить его вид из физических соображений (МКЭ все-таки практически всегда применяется для решения задач, возникших в прикладных областях), то можно сделать сетку более густой там, где решение быстрее меняется и/или в нем ожидаются какие-то интересные особенности (в обиходном смысле слова). Для многомерных задач это часто оказывается весьма полезной вещью. |
||||
|
|||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
А вы не путаете конечно-разностную аппроксимацию по времени с МКР который в данном контексте относится к аппроксимации пространственных дифференциальных операторов? -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Хм... по-видимому, мне так и не удалось понять, что Вы хотели сказать. И МКР, и МКЭ - вообще говоря, исходно чисто математические методы. |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Я не очень владею русской терминологией в этой области, поэтому могу тупить. Но мне непонятна была классификации МКР/МКЭ на основе метода решения. Дело в том, что в моём понимании МКР является частным случаем МКЭ. Если задана сетка, удовлетворяющая условиям регулярности (http://en.wikipedia.org/wiki/Regular_grid), соответствующие базисные функции и полином низшей степени показывают, что МКЭ вырождается в МКР. При этом, опять же, если мы решаем PDE, где есть производная по времени (i.e. time-dependent problem), то мы, соответственно, можем использовать МКР или МКЭ для дискретизации пространства и конечные разности для дискретизации проихводных по времени. Как вы при этом находите решение на каждом временном шагу чисто технический момент. Это сообщение отредактировал(а) W4FhLF - 24.11.2012, 03:01 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Фантом |
|
||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Это ни в коем случае не классификация. Просто задача настолько проста, что от характерных черт метода остаются только жалкие огрызки.
Да, конечно. Да, по-видимому, я понял правильно. Если для части переменных ("времени") есть начальные условия, а для части ("координат") - краевые, то так и имеет смысл делать. Но в данном случае заказчик желал решать методом МКЭ одномерную задачу Коши, причем для линейного (хотя и неоднородного) уравнения. Понятно, что его решение с помощью МКЭ сродни почесыванию правой ногой левого уха, но формально эо сделать можно. |
||||
|
|||||
| wowka19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 30.11.2011 Репутация: нет Всего: нет |
Фантом, W4FhLF Ок!
Как я понял задача слишком проста для яркого и выразительного применения МКЭ. Давайте попробуем на двумерном случае: ![]() Нужно найти значения функции u на области [0,1]x[0,1]. Значения функции u при x=0 (граница C на рисунке) = -y^2 при x=1 (граница D на рисунке) = -y^2 - 1 при y=0 (граница A на рисунке) = -x^2 при y=1 (граница B на рисунке) = -x^2 - 1 Число отрезков разбиений по осям X и Y: N = 100 Точность решения: e = 0.001 Разбиение на равные равнобедренные прямоугольное треугольники. Как я понял их получится 2*N*N Это сообщение отредактировал(а) wowka19 - 24.12.2012, 14:47 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
||||
|
||||
| wowka19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 30.11.2011 Репутация: нет Всего: нет |
если бы я знал, то не стал бы писать сюда
Можете привести свой пример со своими условиями - как вам удобней. Лишь бы он был как можно наглядней и выразительней. Это сообщение отредактировал(а) wowka19 - 25.12.2012, 09:40 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Хм... кому как, но мне несколько лень тратить на это занятие время (а потратить его придется, выписывание такой задачи с детальными объяснениями коротким не будет). Попробуйте все-таки что-то сделать сами. |
|||
|
||||
| wowka19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 30.11.2011 Репутация: нет Всего: нет |
(http://ru.wikipedia.org/wiki/Метод_конечных_элементов)
- объясните что за функция v? так в этом и проблема - я знаю что требует задача (найти u/решить диффур) и что решением является массив точек-границ между эл-ми на которые мы разбили область, но как к ней (задаче) подступиться - понятия не имею. Такие понятия (в приведенном мною 2мерном случае) как локальная матрица жесткости, глобальная матрица жесткости только сильнее запутывают, функция v из какого-то пространства H не понятно откуда и зачем. Что из себя представляет базисная ф-я в двумерном случае... Вопросов много, ответов - 0 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Кусочно-линейная функция, являющаяся приближением к искомому решению. Насколько хорошо Вы знаете математику? Можно даже проще - какой ВУЗ и по какой специальности закончили (или на каком курсе учитесь)? |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |