Написание программы для решения системы уравнений методом сеток

Страницы работы

Содержание работы

Хабаровский Государственный Технический Университет

                                                                Кафедра ПОВТ и АС

Лабораторная работа по дисциплине

«Уравнения математической физики» №1.2

                                                             Выполнил: ст-т группы ПО-12 Черенков В.Л.

Проверил: Вихтенко Э.М.

Хабаровск 2004

Задание: Написать программу, которая решала бы методом сеток следующую систему уравнений:

a1(x,y)*d2U/dx2+ a2(x,y)*d2U/dxdy+ a3(x,y)*d2U/dy2+ b1(x,y)*dU/dx+ b2(x,y)*dU/dy+c(x,y)*U(x,y)=f(x,y) ;

U(x,b0)=Q1(x);

U(x,b)=Q2(x);

U(a0,y)=Q3(y);

U(a,y)=Q4(y);

Рассчитать погрешность метода.

Составить три тестовых примера для программы.

Реализация:

Пользователь задаёт прямоугольную область, на которой применяется метод сеток через координаты левого нижнего (a0,b0) и правого верхнего (a,b) углов области , а также количество узлов сетки по x и y (Nx,Ny).

Программой вычисляется шаг сетки (hx и hy) и формируется матрица Size*Size+1, где Size – количество точек сетки, то есть Nx*Ny. Матрица формируется следующим образом: для всех внутренних узлов сетки все виды производных можно приближённо записать через соседние точки:

Таким образом, эллиптическое уравнение для каждой из внутренних точек можно переписать относительно соседних точек в следующем виде:

Получается уравнений столько же, сколько и внутренних точек, но с Size неизвестными. Недостающие уравнения получаем из краевых условий.

Решаем полученную матрицу методом Гаусса и получаем вектор со значениями функции в узлах сетки.

Тестовые примеры:

1. U(x,y) = x3 + y3;

В программу забиваем следующие параметры:

et = x*x*x + y*y*y.

f(x,y) = a1(x,y)*(6*x + y*y*y) + a2(x,y)*(3*x*x + 3*y*y) + a3(x,y)*(x*x*x + 6*y) +

+ b1(x,y)*(3*x*x+y*y*y) + b2(x,y)*(x*x*x + 3*y*y) + c(x,y)*(x*x*x + y*y*y).

Q1(x) = x*x*x + b0*b0*b0.

Q2(x) = x*x*x + bn*bn*bn.

Q3(y) = y*y*y + a0*a0*a0.

Q4(y) = y*y*y + an*an*an.

Результаты:

U(0 , 0)=0

U(0,25 , 0)=0,015625

U(0,5 , 0)=0,125

U(0,75 , 0)=0,421875

U(1 , 0)=1

U(0 , 0,25)=0,015625

U(0,25 , 0,25)=0,01719348133

U(0,5 , 0,25)=0,1296774745

U(0,75 , 0,25)=0,4310065806

U(1 , 0,25)=1,015625

U(0 , 0,5)=0,125

U(0,25 , 0,5)=0,1296774

U(0,5 , 0,5)=0,2416544408

U(0,75 , 0,5)=0,5420243144

U(1 , 0,5)=1,125

U(0 , 0,75)=0,421875

U(0,25 , 0,75)=0,431006521

U(0,5 , 0,75)=0,5420243144

U(0,75 , 0,75)=0,8409865499

U(1 , 0,75)=1,421875

U(0 , 1)=1

U(0,25 , 1)=1,015625

U(0,5 , 1)=1,125

U(0,75 , 1)=1,421875

U(1 , 1)=2

F(0 , 0)=0

F(0,25 , 0)=0,015625

F(0,5 , 0)=0,125

F(0,75 , 0)=0,421875

F(1 , 0)=1

F(0 , 0,25)=0,015625

F(0,25 , 0,25)=0,03125

F(0,5 , 0,25)=0,140625

F(0,75 , 0,25)=0,4375

F(1 , 0,25)=1,015625

F(0 , 0,5)=0,125

F(0,25 , 0,5)=0,140625

F(0,5 , 0,5)=0,25

F(0,75 , 0,5)=0,546875

F(1 , 0,5)=1,125

F(0 , 0,75)=0,421875

F(0,25 , 0,75)=0,4375

F(0,5 , 0,75)=0,546875

F(0,75 , 0,75)=0,84375

F(1 , 0,75)=1,421875

F(0 , 1)=1

F(0,25 , 1)=1,015625

F(0,5 , 1)=1,125

F(0,75 , 1)=1,421875

F(1 , 1)=2

max=∆(0.25,0.25)=0.014;

2. U(x,y) = sin(x) + cos(y);

В программу забиваем следующие параметры:

et = sin(x) + cos(y).

f(x,y) = a1(x,y)*(-sin(x) + cos(y)) + a2(x,y)*(cos(x) - sin(y)) + a3(x,y)*(sin(x) - cos(y)) +

+ b1(x,y)*(cos(x) + cos(y)) + b2(x,y)*(sin(x) - sin(y)) + c(x,y)*(sin(x) + cos(y)).

Q1(x) = sin(x) + cos(b0).

Q2(x) = sin(x) + cos(bn).

Q3(y) = sin(a0) + cos(y).

Q4(y) = sin(an) + cos(y).

Результаты:

U(0 , 0)=1

U(0,25 , 0)=1,247403979

U(0,5 , 0)=1,47942555

U(0,75 , 0)=1,681638718

U(1 , 0)=1,841470957

U(0 , 0,25)=0,9689124227

U(0,25 , 0,25)=1,214879751

U(0,5 , 0,25)=1,447626948

U(0,75 , 0,25)=1,650351405

U(1 , 0,25)=1,810383439

U(0 , 0,5)=0,87758255

U(0,25 , 0,5)=1,124423385

U(0,5 , 0,5)=1,35679698

U(0,75 , 0,5)=1,55921936

U(1 , 0,5)=1,719053507

U(0 , 0,75)=0,7316888571

U(0,25 , 0,75)=0,9789865017

U(0,5 , 0,75)=1,211125493

U(0,75 , 0,75)=1,413384795

U(1 , 0,75)=1,573159814

U(0 , 1)=0,5403022766

U(0,25 , 1)=0,7877062559

U(0,5 , 1)=1,019727826

U(0,75 , 1)=1,221941113

U(1 , 1)=1,381773233

F(0 , 0)=1

F(0,25 , 0)=1,247403979

F(0,5 , 0)=1,47942555

F(0,75 , 0)=1,681638718

F(1 , 0)=1,841470957

F(0 , 0,25)=0,9689124227

F(0,25 , 0,25)=1,216316342

F(0,5 , 0,25)=1,448337913

F(0,75 , 0,25)=1,6505512

F(1 , 0,25)=1,810383439

F(0 , 0,5)=0,87758255

F(0,25 , 0,5)=1,124986529

F(0,5 , 0,5)=1,3570081

F(0,75 , 0,5)=1,559221268

F(1 , 0,5)=1,719053507

F(0 , 0,75)=0,7316888571

F(0,25 , 0,75)=0,9790928364

F(0,5 , 0,75)=1,211114407

F(0,75 , 0,75)=1,413327575

F(1 , 0,75)=1,573159814

F(0 , 1)=0,5403022766

F(0,25 , 1)=0,7877062559

F(0,5 , 1)=1,019727826

F(0,75 , 1)=1,221941113

F(1 , 1)=1,381773233

max=∆(0.25,0.25)=0.0014;

3. U(x,y) = (x+y)2.

В программу забиваем следующие параметры:

et = (x + y)*(x + y).

f(x,y) = a1(x,y)*(y*y + 2*y + 2) + a2(x,y)*(2*x + 2*y + 2) + a3(x,y)*(x*x + 2*x + 2) +

+ b1(x,y)*(2*x + y*y + 2*y) + b2(x,y)*(x*x + 2*x + 2*y) + c(x,y)*(x + y)*(x + y).

Q1(x) = (x + b0)*(x + b0).

Q2(x) = (x + bn)*(x + bn).

Q3(y) = (a0 + y)*(a0 + y).

Q4(y) = (an + y)*(an + y).

Результаты:

U(0 , 0)=0

U(0,25 , 0)=0,0625

U(0,5 , 0)=0,25

U(0,75 , 0)=0,5625

U(1 , 0)=1

U(0 , 0,25)=0,0625

U(0,25 , 0,25)=-0,9098126888

U(0,5 , 0,25)=-0,212270245

U(0,75 , 0,25)=0,6120939255

U(1 , 0,25)=1,5625

U(0 , 0,5)=0,25

U(0,25 , 0,5)=-0,2122700661

U(0,5 , 0,5)=0,4826195836

U(0,75 , 0,5)=1,303506613

U(1 , 0,5)=2,25

U(0 , 0,75)=0,5625

U(0,25 , 0,75)=0,6120939255

U(0,5 , 0,75)=1,303506374

U(0,75 , 0,75)=2,12035203

U(1 , 0,75)=3,0625

U(0 , 1)=1

U(0,25 , 1)=1,5625

U(0,5 , 1)=2,25

U(0,75 , 1)=3,0625

U(1 , 1)=4

F(0 , 0)=0

F(0,25 , 0)=0,0625

F(0,5 , 0)=0,25

F(0,75 , 0)=0,5625

F(1 , 0)=1

F(0 , 0,25)=0,0625

F(0,25 , 0,25)=0,25

F(0,5 , 0,25)=0,5625

F(0,75 , 0,25)=1

F(1 , 0,25)=1,5625

F(0 , 0,5)=0,25

F(0,25 , 0,5)=0,5625

F(0,5 , 0,5)=1

F(0,75 , 0,5)=1,5625

F(1 , 0,5)=2,25

F(0 , 0,75)=0,5625

F(0,25 , 0,75)=1

F(0,5 , 0,75)=1,5625

F(0,75 , 0,75)=2,25

F(1 , 0,75)=3,0625

F(0 , 1)=1

F(0,25 , 1)=1,5625

F(0,5 , 1)=2,25

F(0,75 , 1)=3,0625

F(1 , 1)=4

max=∆(0.25,0.25)=1.159;

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
55 Kb
Скачали:
0