Задача Дирихле
Категория реферата: Рефераты по математике
Теги реферата: инновационная деятельность, научные статьи
Добавил(а) на сайт: Makrina.
1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
Решить численно задачу Дирихле для уравнения Лапласа :
(x,y)D; u|Г=xy2=f(x,y) ;
область D ограничена линиями: x=2 , x=4 , y=x , y=x+4 ;
(x0, y0 ) = (3, 5) .
Следует решить задачу сначала с шагом по x и по y : h=0.2, потом с шагом h=0.1 . Точность решения СЛАУ =0.01 .
2.ОПИСАНИЕ МЕТОДА РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИПоставленная задача решается численно с помощью программы, реализующей метод сеток , разработанный для численного решения задачи Дирихле для уравнений эллептического типа.
Программа написана на языке C++ , в среде Borland C++ версии 3.1. Ниже описан алгоритм работы этой программы.
1. На первом шаге область D дискретизируется. Она заменяется на область Dh путем разбиения области D параллельными прямыми по следующему правилу: yi=y0 ih, xj=x0 ih , i,j=0,1,2…. PР. Разбиение производится до тех пор, пока текущая прямая не будет лежать целиком вне области D. Получается множество точек (xi,yj).
2. За область Dh принимают те точки множества (xi,yj) , которые попали внутрь области D, а также дополняют это множество граничными точками.
3.Во всех точках области Dh вычисляются значения функции f(xi,yj) .
4. За область Dh* принимаются все внутренние точки области Dh, т.е. удовлетворяющие требованию:
(xi,yj) Dh* , если (xi+1,yj) Dh , (xi-1,yj) Dh , (xi,yj+1) Dh , (xi,yj-1) Dh .
5. Во всех точках области Dh* вычисляется функция F(N)*[i,j] ( индекс N обозначает номер итерации, на которой производится вычисление):
F(N)*[i,j]=(f(xi+1,yj) + f(xi-1,yj) + f(xi,yj+1)f(xi,yj-1))/4
6. Теперь если max | F(N+1)*[i,j] - F(N)*[i,j]|< ,взятый по всем точкам области Dh* ,то задача решена;
если нет , то выполнять шаг 5 ( пересчитывать функцию F(N)*[i,j] через значения F(N-1)*[i,j]) до тех пор, пока не выполнится указанное условие.
3.ТЕКСТ ПРОГРАММЫ#include <stdio.h>
#include <fstream.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
int i,j,k; // Variables
float h,x,y,tmp,E1;
struct point {
Рекомендуем скачать другие рефераты по теме: курсовая работа 2011, база рефератов.
1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата