Разностные схемы для уравнения переноса на неравномерных сетках

Произведены некоторые расчеты для одномерного уравнения переноса с переменными и постоянными коэффициентами на неравномерных сетках, с целью определения наиболее устойчивой разностной схемы.

Исследование показало, что наиболее устойчивым методом для одномерного уравнения переноса с переменными коэффициентами является:

1) При p0>0, pN>0 трехточечная схема с весом при G=1, абсолютна

я погрешность аппроксимации на 50-м слое составляет 0,00007549.

2) При p0<0, pN<0 неявная схема с центральной разностью, абсолютная погрешность аппроксимации на 50-м слое составляет 0,00007574.

3) При p0<0, pN>0 так же схема с центральной разностью, абсолютная погрешность составляет 0,00009042.

Так же произведены расчеты некоторых методов одномерного уравнения переноса с постоянными коэффициентами.

Исследование показало, что наиболее устойчивым методом для одномерного уравнения переноса с постоянными коэффициентами является:

1) При p>0 трехточечная схема с весом при G=1, абсолютная погрешность аппроксимации на 50-м слое составляет 0,00000755.

2) При p<0 также трехточечная схема с весом при G=1, абсолютная погрешность на 50-м слое составляет 0,00022000

Список использованной литературы

1. Самарский А.А. Теория разностных схем. М.:Наука, 1977, с. 616.

2. Самарский А.А., Гулин А.В.Численные методы. М.Наука, 1989, с. 315.

3. Охлопков Н.М. Численные методы решения обыкновенных дифференциальных уравнений. Якутск: Изд-во Ягу, 1993, с. 38.

4. Охлопков Н.М., Охлопков Г.Н. Введение в специальность “Прикладная математика” часть 1,2 Якутск: Изд-во Ягу, 1997, с. 93, с. 85.

5. Охлопков Н.М., Иванов Ф.В. Вычислительные алгоритмы решения задач для дифференциальных уравнений Якутск: Изд-воЯгу, 1992, с.65.

6. Охлопков Н.М.,Иванов Ф.В. Пакет программ численного решения задач математической физики ч.2, Якутск: Изд-во Ягу, 1989, с 15.

7. Охлопков Н.М. Об экономичных методах решения задач математической физики. Якутск: Изд-во Ягу, 1982, с. 39.

Приложение 1

Уравнение с переменными коэффициентами

“Явная” схема.

Левая разностная схема

p0<0, pN<0

uses crt;

const n=15;j0=20;tt=1;l=1;A=0.01;a1=1;q=2;

type m=array[0 n] of real;

hi=array[0 n] of real;

var i,j:integer;

x,h,t,tau,d:hi;

u,u1,g,u2,u11,u12:m;

function ut(p,r:real):real;

begin ut:= A*exp(p+r);end;

function fi(p,r:real):real;

begin fi:=A*exp(p+r)*(p*(p+1)+r*(r+1)+7); end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

function p1(p,r:real):real;

begin p1:=-(p+r+2);end;

begin

clrscr;

writeln ( 'sxema begushego scheta');

writeln(' kogda p0<0,pN<0');

writeln(' levaya raznostnaya sxema');

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=l/n;

tau[j]:=tt/j0;

t[j]:=0;j:=1;

for i:=0 to n do

begin

x[i]:=i*h[i];t[j]:=j*tau[j];

u[i]:= A*(exp(x[i]));

end;

while t[j]<=tt do begin clrscr;

t[j]:=t[j]+tau[j];

u1[0]:=A*exp((t[j]));

for i:=n-1 downto 0 do

begin

g[i]:=tau[j+1]*p1(x[i],t[j+1])/h[i+1];

u11[i]:=(-g[i]*u1[i+1])+(ro(x[i],t[j+1])*u[i]);

u12[i]:=tau[j+1]*fi(x[i],t[j]);

u1[i]:=(u11[i]+u12[i])/(ro(x[i],t[j+1])+g[i]);

end;

for i:=n-1 downto 0 do

u[i]:=u1[i];

writeln('----------------------------------------------------------');

write(' ',j,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

j:=j+1;

writeln('--------------------------------------------------------------');

readln;

end;

end.

Уравнение с переменными коэффициентами

“Явная” схема.

Схема бегущего счета.

Правая разностная схема

p0>0, pN>0

uses crt;

const n=15;j0=50;tt=1;l=0.5;A=0.5;a1=2;q=2;

type w=array[0 n] of real;

hi=array[0 n] of real;

var i,j:integer;

x,h,t,tau,d:hi;

u,u1,g,u2,u11,u12:w;

function ut(p,r:real):real;

begin ut:= A*exp(p+r);end; {to4noe reshenie}

function fi(p,r:real):real;

begin fi:=A*exp(p+r)*(p*(p-1)+r*(r-1)+3);end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

function p1(p,r:real):real;

begin p1:=p+r+2;end;

begin clrscr;

writeln ( 'sxema begushego scheta');

writeln(' kogda p0>0,pN>0');

writeln(' pravaya raznostnaya sxema');

readln;

h[0] := 0;

h[1] := a1;

for i:=2 to n do

h[i] := h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];

tau[j]:=t[j]-t[j-1];

t[j]:=0;j:=1;

for i:=0 to n do

begin

x[i]:=i*h[i];t[j]:=j*tau[j];

u[i]:= A*exp(x[i]); {u0(x)}

end;

begin

while t[j]<=tt do begin clrscr;

t[j]:=t[j]+tau[j];

u1[i]:=A*exp(l+t[j]); {mu2(t)}

for i:=n-1 downto 0 do

begin

g[i]:=(tau[j+1]*p1(x[i],t[j+1])/h[i+1]); {R[i,j+1]}

u11[i]:=(g[i]*u1[i+1])+ro(x[i],t[j+1])*u[i];

u12[i]:=tau[j+1]*fi(x[i],t[j+1]);

u1[i]:=(u11[i]+u12[i])/(ro(x[i],t[j+1])+g[i]); {y

end;

for i:=n-1 downto 0 do begin

u[i]:=u1[i]; end;

writeln('----------------------------------------------------------');

write(' ',j,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i :=0 to n do

begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

j:=j+1;

writeln('--------------------------------------------------------------'

readln;

end;

end;

end.

Приложение 2

Уравнение с переменными коэффициентами

Схема с центральной разностью

p0>0, pN>0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;q=3;g1=1;

type m=array[0 n] of real;

hi=array[0 n] of real;

var i,j,k:integer;

h,d,tau,t:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(p+r);end;

function fi(p,r:real):real;

begin fi:= begin fi:=A*exp(p+r)*(p*(p-1)+r*(r-1)+3);end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

p1(p,r:real):real;

begin p1:=p+r+2;end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p0>0,pn>0');

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16  17  18  19  20 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы