|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Sergiy Kanilo 2:5020/400 09 Jun 2003 04:28:04 To : Valentin Davydov Subject : Re: Численные методы задача Диpихле -------------------------------------------------------------------------------- "Valentin Davydov" <val@sqdp.trc-net.co.jp> wrote in message news:bc095q$2do5$1@news.pu.ru... > >Задаем в граничных узлаах, где температура известна - значения > >температуры, задаем в остальных узлах - начальное приближение > >(например, линейное распределение) > >теперь для каждой внутренней точки объекта вычисляем производную > >по времени от температуры по формуле U,t =(U,xx+U,yy)/a_mater > >и вычисляем прирашение температуры за время dU =U,t*dt > >для равномерной сетки с шагом dh=dx=dy это сводится к формуле > >dU_ij =dt*(4*U_ij-U_i-1j-U_i+1j-U_ij-1-U_ij+1)/dh^2 > >(dt выбирается эмпирически, можно конечно сделать оценку, > >но я не помню как) извиняюсь, но в уравнении пропущен минус, следует читать dU_ij = -dt*(4*U_ij-U_i-1j-U_i+1j-U_ij-1-U_ij+1)/dh^2 > dt выбирается исходя из того, чтобы приращение температуры за это > время в узле было порядка разницы температур между соседними узлами. > Если выбрать dt слишком малым, замедлится сходимость, а если слишком > большим - появится неустойчивость. приведенного выше разностного уравнения вполне достаточно для того чтобы дать оценку для шага по времени для однородной среды dt = 0.25*dh^2 > >для граничных узлов с заданой температурой - ничего не делаем, > >для узлов на границе с теплообменом уравнение вырождается - > >одна компонента простсранстренной производной равна нулю, > >но возможно добавляется член обмена (что-то вроде b*(U0-U_ij)) > > > >после вычисления всех производных делаем приращения для > >всех узлов и переходим к новой итерации > >и так до достижения сходимости. > > > >Это не самый быстрый счетный вариант, но ИМХО самый легкий > >в реализации. > > Кроме быстроты (в смысле медленного роста вычислительной сложности по > мере увеличения густоты сетки) и лёгкости, этот вариант обладает ещё > свойством точности (погрешность поддаётся лёгкой и надёжной оценке). если мы говорим об итерационном решении, то осмею не согласиться, ибо скорость будет весьма медленной, в расчет надо принимать не только сложность одной итерации, но и их количество, а здесь идет волновое распределение температуры - на одну ячейку за итерацию, зависимость шага по времени от шага сетки (см. выше) понижает скорость сходимости. При NxN сетке имеем NxN операций на итерации и количество итераций пропорционально NxN, то есть суммарная сложность не менее N^4. При прямом методе решения (в противовес итерационному) сложность те же N^4 - NxN уравнений и ширина ленты матрицы - N (коэффициент при N^4 ИМХО будет меньше у прямого метода) Прямое решение дает оптимальное решение для выбранной апроксимации, - предел для данного итерационного решения Cheers, Serge --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6577ba55a36e.html, оценка из 5, голосов 10
|