Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММФ_Эллиптические_уравнения.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
727 Кб
Скачать
☆

3.5.1. Программа на языке Паскаль.

Program Two_Therm_Dirichle;

Uses Crt;

Const

N=20; M=20;

u01=100; u02=400;

u03=100; u04=400;

u00=100;

Omega=1.75;

{Вычисление шага разностной сетки}

Hx=1.0/N; Hy=1.0/M;

Type

Arr2=Array [0..N,0..M] of real;

ArrX=Array [0..N] of real;

Arry=Array [0..M] of real;

Var u0,u1,u:Arr2;

X:ArrX;

Y:ArrY;

i,j,N_iter:integer;

Alfa,Betta,Gamma,Delta:real;

f:text;

Begin

{ClrScr; }

{Задание краевых условий}

for i:=1 to N-1 do begin u[i,0]:=u01;u[i,M]:=u03 end;

for j:=1 to M-1 do begin u[0,j]:=u04;u[N,j]:=u02 end;

{Задание начального приближения}

for i:=1 to N-1 do

for j:=1 to M-1 do u[i,j]:=u00;

{Вычисление координат сетки}

for i:=0 to N do X[i]:=i*Hx;

for j:=0 to M do Y[j]:=j*Hy;

Alfa :=0.5/(1.0+Sqr(Hx/Hy));

Betta:=0.5/(1+Sqr(Hy/Hx));

Gamma:=0.5*Sqr(Hx)/(1.0+Sqr(Hx/Hy));

N_iter:=0;

repeat

{Присваивание значения температуры на k-ой итерации}

for j:=0 to M do

for i:=0 to N do u0[i,j]:=u[i,j];

{Вычисление значения температуры на k-ой итерации}

for j:=1 to M-1 do

for i:=1 to N-1 do

u[i,j]:=((u[i+1,j]+u[i-1,j])*Alfa+

(u[i,j+1]+u[i,j-1])*Betta)*Omega+u0[i,j]*(1-Omega);

{Вычисление критерия останова итерационного процесса}

Delta:=0;

for j:=1 to M-1 do

for i:=1 to N-1 do Delta:=Delta+abs(u[i,j]-u0[i,j]);

Delta:=Delta/(M-1)/(N-1);

N_iter:=N_iter+1;

until delta<1e-5;

{Запись результатов на диск}

writeln(Omega:6:2,' ',N_iter);

Assign(f,'result.dat');

Rewrite(f);

for j:=0 to M do

for i:=0 to N do writeln(f,X[i],y[j],u[i,j]);

close(f);

End.

Результаты расчетов по приведенной программе – изолинии температуры внутри пластины приведены на рис.10.

Рис.10. Изолинии функции

3.5.2. Программа для системы Mathcad.

3.6. Варианты заданий.

Методом конечных разностей решить следующие краевые задачи. Построить изолинии функции . Полученный результат сравнить с аналитическим решением.

Решить уравнение со следующими краевыми условиями

№

f(x,y)

Левое ГУ

Правое ГУ

Нижнее ГУ

Верхнее ГУ

Решение

u(x,y)

1.

0

2.

3.

4.

5.

6.

7.

0

8.

Решить уравнение со следующими краевыми условиями

№

f(r,z)

Левое ГУ

Правое ГУ

Нижнее ГУ

Верхнее ГУ

Решение

u(r,z)

9.

10.

11.

12.

13.

14.

Решить уравнение со следующими краевыми условиями

№

f(r,)

Левое ГУ

Правое ГУ

Нижнее ГУ

Верхнее ГУ

Решение

u(r,)

15.

0

16.

0

17.

0

18.

19.

20.

33