48507 (Разностные схемы для уравнения переноса на неравномерных сетках), страница 2

2016-07-29СтудИзба

Описание файла

Документ из архива "Разностные схемы для уравнения переноса на неравномерных сетках", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48507"

Текст 2 страницы из документа "48507"

; (8)

; (9)

Покажем погрешность аппроксимации первой производной по х.

Для этого введем функцию погрешности решения Найдем и подставим в (1).

Имеем = ,

Функцию разложим по формуле Тейлора

,

и подставим в Имеем

,

отсюда получаем аппроксимацию первого порядка .

1.7.2 Формирование сетки

I вариант

, (1)

, q>1-возраст.геометр.прогрессия

, q<1-убыв.геометр.прогрессия

1) , (2)

, q>1. (3)

2) , (4)

, q<1. (5)

и - задаем сами.

Пример Пусть

q>1 и по формуле (3) n

Пример Пусть

вычисляем по формуле (5)

Действительно

II вариант

Можно использовать другой подход:

, , ,

,

, .

a) , q<1 - убывающая геом. прогрессия n и q-задаем сами.

в) , q>1 – возрастающая геом. прогрессия.

Таким образом, можно рассматривать следующие модули сеток:

  1. Равномерная сетка .

  2. Квазиравномерная сетка ( …).

  3. Неравномерная по возрастающей геометрической прогрессии .

  4. Неравномерная по убывающей геометрической прогрессии .

  5. Среднеарифметический метод 3) и 4) .

Глава II. Одномерное уравнение переноса с переменными коэффициентами

2.1 Постановка задачи

Рассмотрим уравнение вида:

(1)

удовлетворяющий начальным условиям

(2)

и граничным условиям:

(3)

Входные данные:

1)

l=1, T=1

точное решение:

2)

точное решение:

3)

точное решение:

4)

точное решение:

Для решения задачи (1) – (3) используем различные разностные схемы, вернее, явную и неявную.

2.2 “Явные ” схемы

Явные схемы для нашей задачи используются тогда, когда p(x,t) > 0, (p0>0, pN>0) или p(x,t)<0, (p0<0, pN<0). На практике часто используют схему бегущего счета. В зависимости от знака функции p(x,t) используют правую или левую разностные схемы.

Итак, рассмотрим схему бегущего счета в обоих случаях.

1) p(x,t)>0, (p0>0, pN>0)

Разностная схема (правая) имеет вид

; (1′)

; (2′)

; (3′)

из (1′) ,

где .

2) p(x,t)<0, (p0<0, pN<0)

В этом случае используется левая разностная схема

; (1″)

; (2″)

; (3″)

из (1′) ,

где .

Таблица 1 Численное решение уравнения переноса с переменными коэффициентами схема бегущего счета “явная ” схема (правая разностная схема)

-------------kogda p0>0, pN>0-------------50sloy

N priblijennoe tochnoe pogreshnosti

0

0.10039200

0.10004559

0.00034641

1

0.10731313

0.10694264

0.00037049

2

0.11471141

0.11431517

0.00039623

3

0.12261970

0.12219596

0.00042375

4

0.13107319

0.13062004

0.00045315

5

0.14010945

0.13962487

0.00048458

6

0.14976865

0.14925048

0.00051817

7

0.16009374

0.15953968

0.00055407

8

0.17113063

0.17053820

0.00059243

9

0.18292837

0.18229495

0.00063342

10

0.19553941

0.19486220

0.00067721

11

0.20901984

0.20829583

0.00072401

12

0.22342957

0.22265555

0.00077402

13

0.23883258

0.23800523

0.00082736

14

0.25528740

0.25441310

0.00087431

15

0.27195211

0.27195211

0.00000000

Таблица 2. Численное решение уравнения переноса с переменными коэффициентами схема бегущего счета “явная ” схема (левая разностная схема)

-------------kogda p0<0, pN<0-------------- 50sloy

N priblijennoe tochnoe pogreshnosti

0

0.14715178

0.14715178

0.00000000

1

0.14242453

0.14232757

0.00009697

2

0.13785337

0.13766151

0.00019185

3

0.13343317

0.13314843

0.00028474

4

0.12915902

0.12878331

0.00037571

5

0.12502613

0.12456129

0.00046484

6

0.12102988

0.12047768

0.00055219

7

0.11716580

0.11652796

0.00063785

8

0.11342959

0.11270772

0.00072187

9

0.10981705

0.10901272

0.00080434

10

0.10632415

0.10543886

0.00088530

11

0.10294698

0.10198216

0.00096483

12

0.09968176

0.09863879

0.00104298

13

0.09652483

0.09540502

0.00111981

14

0.09347266

0.09227727

0.00119539

15

0.09052183

0.08925206

0.00126976

Текст программы смотри в приложении 1

2.3 Неявные схемы

В отличие от явной схемы неявные схемы используются для задачи (1) – (3) во всех случаях 1) p0>0, pN>0; 2) p0<0, pN<0; 3) p0>0, pN<0; 4) p0<0, pN>0.

Рассмотрим 2 различные разностные схемы:

  1. Центрально- разностная схема.

  2. Трехточечная схема с весом.

Все эти схемы решаются методом прогонки и все эти разностные уравнения, т.е. полученные при аппроксимации схемы, вернее, уравнения сводятся к виду:

(4)

Коэффициенты Ai, Bi, Ci должны удовлетворять условиям:

(5)

Коэффициенты B0 , C0 , F0, AN ,CN ,FN находятся из граничных условий. В данной задаче в зависимости от знака функции p(x,t) ставятся граничные условия и тем самым находятся наши коэффициенты. Рассмотрим все 4 случая:

1) p0>0, pN>0, u(l,t)=м2(t), (3′)

из уравнения (3′) AN ,CN ,FN .

B0 , C0 , F0 находятся из дополнительного условия, которая ставится на левом конце.

2) p0<0, pN<0, u(0,t)=м1(t), (3″) из уравнения (3″) B0 , C0 , F0.

AN ,CN ,FN находятся из дополнительного условия, которая ставится на правом конце.

3) p0<0, pN>0, u(0,t)=м1(t), u(l,t)=м2(t), (3″′)

из уравненя (3″′) B0 , C0 , F0

AN ,CN ,FN

4) p0>0, pN<0, нет граничных условий.

Дополнительное условие ставится на левом и на правом концах. Находим B0, C0 , F0 , AN ,CN ,FN .

Алгоритм правой прогонки

, .

,

.

При выполнении условий алгоритм правой прогонки устойчив.

2.3.1 Центрально разностная схема

Разностная схема имеет вид (задачи (1)-(3)):

, .

1) P0>0, PN>0

, , .

2) P0<0, PN<0

.

3) P0<0, PN>0

B0=0, C0=1, F0= ,

→ AN=0, CN=1, .

4) P0>0, PN<0

,

Таблица 3. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0>0, pN>0------------ 50sloy

N priblijennoe tochnoe pogreshnosti

0

0.18772094

0.18765555

0.00006539

1

0.18147920

0.18150347

0.00002427

2

0.17566576

0.17555308

0.00011268

3

0.16982701

0.16979776

0.00002924

4

0.16440069

0.16423113

0.00016956

5

0.15890974

0.15884699

0.00006275

6

0.15384782

0.15363937

0.00020845

7

0.14868453

0.14860247

0.00008206

8

0.14391438

0.14373070

0.00018368

9

0.13904086

0.13901865

0.00002221

10

0.13462315

0.13446108

0.00016208

11

0.13004378

0.13005292

0.00000914

12

0.12593278

0.12578928

0.00014351

13

0.12169429

0.12166541

0.00002888

14

0.11786577

0.11767675

0.00018903

15

0.11381884

0.11381884

0.00000000

Таблица 4. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0<0, pN<0-------------- 50sloy

N priblijennoe tochnoe pogreshnosti

0

0.14715178

0.14715178

0.00000000

1

0.14240331

0.14232757

0.00007574

2

0.13769681

0.13766151

0.00003530

3

0.13325746

0.13314843

0.00010903

4

0.12885248

0.12878331

0.00006918

5

0.12470227

0.12456129

0.00014098

6

0.12057943

0.12047768

0.00010174

7

0.11669966

0.11652796

0.00017170

8

0.11284082

0.11270772

0.00013310

9

0.10921401

0.10901272

0.00020130

10

0.10560221

0.10543886

0.00016335

11

0.10221201

0.10198216

0.00022985

12

0.09883137

0.09863879

0.00019259

13

0.09566248

0.09540502

0.00025746

14

0.09249816

0.09227727

0.00022089

15

0.08953626

0.08925206

0.00028420

Таблица 5. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0<0, pN>0--------------50sloy

N priblijennoe tochnoe pogreshnosti

0

0.03678794

0.03678794

0.00000000

1

0.03565917

0.03558189

0.00007728

2

0.03439784

0.03441538

0.00001754

3

0.03335557

0.03328711

0.00006846

4

0.03216179

0.03219583

0.00003404

5

0.03119895

0.03114032

0.00005863

6

0.03007027

0.03011942

0.00004915

7

0.02917987

0.02913199

0.00004788

8

0.02811435

0.02817693

0.00006258

9

0.02728957

0.02725318

0.00003639

10

0.02628567

0.02635971

0.00007405

11

0.02551993

0.02549554

0.00002439

12

0.02457633

0.02465970

0.00008337

13

0.02386341

0.02385126

0.00001215

14

0.02297890

0.02306932

0.00009042

15

0.02231302

0.02231302

0.00000000

Таблица 6. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0>0, pN<0--------------50sloy

N priblijennoe tochnoe pogreshnosti

0

0.00379722

0.00375311

0.00004410

1

0.00328998

0.00328462

0.00000536

2

0.00291427

0.00287461

0.00003966

3

0.00250378

0.00251579

0.00001200

4

0.00225176

0.00220175

0.00005001

5

0.00190450

0.00192691

0.00002241

6

0.00172045

0.00168638

0.00003407

7

0.00145947

0.00147588

0.00001640

8

0.00129005

0.00129165

0.00000159

9

0.00109247

0.00113042

0.00003795

10

0.00092289

0.00098931

0.00006642

11

0.00074314

0.00086582

0.00012268

12

0.00056520

0.00075774

0.00019254

13

0.00038370

0.00066315

0.00027946

14

0.00020306

0.00058037

0.00037731

15

0.00002275

0.00050793

0.00048518

Текст программы смотри в приложении 2

2.3.2 Трехточечная схема с весом

Разностная схема для нашей задачи ((1)-(3)) имеет вид:

(0)

Уравнение (0) приведем к виду

(1)

Из уравнения (1) находим коэффициенты

, , ,

.

1) P0>0, PN>0 yNj+1 = м2j+1 AN =0, CN=1, FN = м2j+1

(1.0)

Уравнение (1.0) приводим к виду

(1.1)

Из уравнения (1.1) находим

, ,

.

2) P0<0, PN<0 y0j+1 = м1j+1 B0 =0, C0=1, F0 = м1j+1

. (2.0)

Уравнение (2.0) приводим к виду

(2.1)

Из уравнения (2.1) находим , ,

.

3)P0<0, PN>0

y0j+1 = м1j+1 B0=0 ,C0=1, F0= м1j+1 ,

yNj+1 = м2j+1 AN=0 ,CN=1, FN= м2j+1.

4) P0>0, PN<0

B0 =0,C0=1, F0= м1j+1

AN =0,CN=1, FN= м2j+1

Таблица 7. Численное решение уравнения переноса с переменными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0>0, pN>0---------------kogda G=1

50sloy N priblijennoe tochnoe pogreshnosti

0

0.36842774

0.36787944

0.00054830

1

0.35627966

0.35581892

0.00046075

2

0.34461653

0.34415379

0.00046275

3

0.33324870

0.33287108

0.00037762

4

0.32234219

0.32195827

0.00038392

5

0.31170418

0.31140322

0.00030095

6

0.30150555

0.30119421

0.00031134

7

0.29155019

0.29131989

0.00023030

8

0.28201389

0.28176929

0.00024460

9

0.27269705

0.27253179

0.00016526

10

0.26378042

0.26359714

0.00018329

11

0.25506082

0.25495540

0.00010543

12

0.24672399

0.24659696

0.00012703

13

0.23856301

0.23851255

0.00005045

14

0.23076867

0.23069318

0.00007549

15

0.22313016

0.22313016

0.00000000

Таблица 8. Численное решение уравнения переноса на с переменнми коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0>0, pN>0---------------kogda G=0.5

50sloy N priblijennoe tochnoe pogreshnosti

0

0.22317966

0.36787944

0.14469979

1

0.32550240

0.35581892

0.03031652

2

0.21980791

0.34415379

0.12434588

3

0.32390953

0.33287108

0.00896156

4

0.17318247

0.32195827

0.14877580

5

0.30172608

0.31140322

0.00967714

6

0.15878469

0.30119421

0.14240953

7

0.28118803

0.29131989

0.01013186

8

0.16595060

0.28176929

0.11581869

9

0.25958363

0.27253179

0.01294816

10

0.10012442

0.26359714

0.16347272

11

0.23108668

0.25495540

0.02386872

12

0.10648083

0.24659696

0.14011613

13

0.24403326

0.23851255

0.00552071

14

0.10163574

0.23069318

0.12905744

15

0.22313016

0.22313016

0.00000000

Таблица 9. Численное решение уравнения переноса с переменными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0<0, pN<0--------------- kogda G=1

50sloy N priblijennoe tochnoe pogreshnosti

0

0.36787944

0.36787944

0.00000000

1

0.35801340

0.35581892

0.00219448

2

0.36845033

0.34415379

0.02429654

3

0.35906842

0.33287108

0.02619734

4

0.37000945

0.32195827

0.04805117

5

0.36101823

0.31140322

0.04961501

6

0.37246014

0.30119421

0.07126592

7

0.36379087

0.29131989

0.07247098

8

0.37571304

0.28176929

0.09394375

9

0.36731988

0.27253179

0.09478809

10

0.37968642

0.26359714

0.11608928

11

0.37154421

0.25495540

0.11658881

12

0.38430710

0.24659696

0.13771013

13

0.37640856

0.23851255

0.13789601

14

0.38951172

0.23069318

0.15881854

15

0.38186439

0.22313016

0.15873423

Таблица 10 Численное решение уравнения переноса с переменными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0<0, pN<0---------------

kogda G=0,5 50sloy N priblijennoe tochnoe pogreshnosti

0

0.36787944

0.36787944

0.00000000

1

0.31801913

0.35581892

0.03779978

2

0.36478621

0.34415379

0.02063242

3

0.34573407

0.33287108

0.01286299

4

0.36983022

0.32195827

0.04787195

5

0.36678412

0.31140322

0.05538090

6

0.34570117

0.30119421

0.04450696

7

0.34004986

0.29131989

0.04872997

8

0.33360167

0.28176929

0.05183238

9

0.35119193

0.27253179

0.07866014

10

0.35046403

0.26359714

0.08686690

11

0.35792253

0.25495540

0.10296714

12

0.36451445

0.24659696

0.11791748

13

0.35527614

0.23851255

0.11676359

14

0.38271932

0.23069318

0.15202614

15

0.39593489

0.22313016

0.17280473

Текст программы смотри в приложении 3

Глава III. Одномерное уравнение переноса с постоянными коэффициентами

3.1 Постановка задачи

Рассмотрим уравнение переноса вида

(3.1)

удовлетворяющее начальному условию

(3.2)

и граничным условиям

1. P>0 p>0, нет на левой границе условий.

2. P<0 p<0, нет на правой границе условий. (3.3)

Входные данные:

1) P>0

2) P<0

3.2 “Явные” схемы

Рассмотрим схему бегущего счета в обоих случаях.

1) p>0

В этом случае используется правая разностная схема

(3.1′)

; (3.2′)

. (3.3′)

Из уравнения (3.1′) следует

2) p<0

Разностная схема(левая) имеет вид:

; (3.1″)

; (3.2″)

(3.3″)

Из уравнения (3.1″) следует

Таблица 11. Численное решение уравнения переноса с постоянными коэффициентами схема бегущего счета “явная ” схема (правая разностная схема)

-------------kogda p>0-------------------------------------------50sloy

N priblijennoe tochnoe pogreshnosti

0

1.37301170

1.35914091

0.01387078

1

1.41878826

1.40520915

0.01357911

2

1.46606506

1.45283887

0.01322618

3

1.51488985

1.50208301

0.01280684

4

1.56531173

1.55299629

0.01231544

5

1.61738112

1.60563527

0.01174585

6

1.67114985

1.66005846

0.01109139

7

1.72667123

1.71632633

0.01034490

8

1.78400003

1.77450141

0.00949863

9

1.84319260

1.83464833

0.00854427

10

1.90430684

1.89683395

0.00747290

11

1.96740228

1.96112735

0.00627493

12

2.03254007

2.02759998

0.00494008

13

2.09978305

2.09632572

0.00345734

14

2.16919578

2.16738091

0.00181487

15

2.24084454

2.24084454

0.00000000

Таблица 12. Численное решение уравнения переноса с постоянными коэффициентами схема бегущего счета “явная ” схема (левая разностная схема)

-------------kogda p<0-------------50sloy

N priblijennoe tochnoe pogreshnosti

0

0.03678794

0.03678794

0.00000000

1

0.03444494

0.03558189

0.00113696

2

0.03220334

0.03441538

0.00221204

3

0.03005929

0.03328711

0.00322782

4

0.02800907

0.03219583

0.00418676

5

0.02604910

0.03114032

0.00509122

6

0.02417592

0.03011942

0.00594350

7

0.02238620

0.02913199

0.00674579

8

0.02067672

0.02817693

0.00750021

9

0.01904439

0.02725318

0.00820879

10

0.01748622

0.02635971

0.00887349

11

0.01599934

0.02549554

0.00949620

12

0.01458096

0.02465970

0.01007874

13

0.01322842

0.02385126

0.01062284

14

0.01193914

0.02306932

0.01113018

15

0.01071063

0.02231302

0.01160239

Текст программы смотри в приложении 4

3.3 Неявные схемы

Рассмотрим две различные разностные схемы:

1. Центрально-разностная схема.

2. Трехточечная схема с весом.

Все эти схемы сводятся к стандартному виду (3.4) и решаются методом прогонки

(3.4)

Коэффициенты Ai, Bi, Ci должны удовлетворять условиям:

(3.5)

Коэффициенты B0 , C0 , F0, AN ,CN ,FN находятся из граничных условий. В данной задаче в зависимости от знака функции p(x,t) ставятся граничные условия и тем самым находятся наши коэффициенты.

  1. Когда р>0 задается правое граничное условие:

(3.3′)

Используя уравнения (3.3′) находим коэффициенты AN ,CN ,FN . Коэффициенты B0 , C0 , F0 находятся из дополнительного условия, которое ставится на левом конце.

2) Когда р<0 задается граничное условие на левом конце

(3.3″)

Используя уравнения (3.3″) находим коэффициенты B0 , C0 , F0

Коэффициенты AN ,CN ,FN находятся из дополнительного условия, которое ставится на правом конце.

3.3.1 Центрально-разностная схема

Разностная схема задачи (3.1)-(3.3) имеет следующий вид:

1) р>0. В этом случае граничное условие задается на правом конце:

(3.6)

Используя уравнение (3.6) находим коэффициенты AN =0, CN=1,

Дополнительное условие на левом конце имеет вид:

(3.7)

Приведем уравнение (3.7) к виду :

(3.7′)

Отсюда находим коэффициенты:

  1. В случае, когда р<0, граничное условие ставится на левом конце

(3.8)

Используя уравнение (3.8) находим коэффициенты B0,=0, C0=1,

Дополнительное условие на правом конце имеет вид:

(3.9)

Приводим уравнение (3.9) к виду :

(3.9′)

отсюда находим коэффициенты:

Таблица 13. Численное решение уравнения переноса с постоянными коэффициентами центральная разностная схема метод прогонки

-------------kogda p>0--------------50sloy

N priblijennoe tochnoe pogreshnosti

0

0.03544452

0.03678794

0.00134342

1

0.03541069

0.03558189

0.00017120

2

0.03306824

0.03441538

0.00134714

3

0.03313883

0.03328711

0.00014828

4

0.03084494

0.03219583

0.00135089

5

0.03101552

0.03114032

0.00012480

6

0.02876471

0.03011942

0.00135472

7

0.02903119

0.02913199

0.00010080

8

0.02681828

0.02817693

0.00135865

9

0.02717688

0.02725318

0.00007630

10

0.02499699

0.02635971

0.00136272

11

0.02544422

0.02549554

0.00005132

12

0.02329272

0.02465970

0.00136698

13

0.02382538

0.02385126

0.00002588

14

0.02169787

0.02306932

0.00137145

15

0.02231302

0.02231302

0.00000000

Таблица 14. Численное решение уравнения переноса с постоянными коэффициентами центральная разностная схема метод прогонки

-------------kogda p<0--------------50sloy

N priblijennoe tochnoe pogreshnosti

0

0.03678794

0.03678794

0.00000000

1

0.03475182

0.03558189

0.00083008

2

0.03440516

0.03441538

0.00001021

3

0.03246493

0.03328711

0.00082218

4

0.03217504

0.03219583

0.00002079

5

0.03032529

0.03114032

0.00081503

6

0.03008771

0.03011942

0.00003171

7

0.02832337

0.02913199

0.00080861

8

0.02813396

0.02817693

0.00004297

9

0.02645027

0.02725318

0.00080290

10

0.02630518

0.02635971

0.00005453

11

0.02469766

0.02549554

0.00079788

12

0.02459330

0.02465970

0.00006639

13

0.02305773

0.02385126

0.00079352

14

0.02299077

0.02306932

0.00007855

15

0.02152320

0.02231302

0.00078982

Текст программы смотри в приложении 5

3.3.2 Трехточечная схема с весом

Разностная схема имеет вид:

вещественный параметр

1. p>0

На левом конце ставится дополнительное условие

2. p<0

На правом конце ставится дополнительное условие

Разностные уравнения и дополнительные условия сводятся к стандартному виду (3.4) и решаются методом прогонки.

Таблица 15. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

50sloy N priblijennoe tochnoe pogreshnosti

-------------------kogda p>0---------------kogda G=1

0

0.03684277

0.03678794

0.00005483

1

0.03562797

0.03558189

0.00004607

2

0.03446165

0.03441538

0.00004627

3

0.03332487

0.03328711

0.00003776

4

0.03223422

0.03219583

0.00003839

5

0.03117042

0.03114032

0.00003010

6

0.03015056

0.03011942

0.00003113

7

0.02915502

0.02913199

0.00002303

8

0.02820139

0.02817693

0.00002446

9

0.02726970

0.02725318

0.00001653

10

0.02637804

0.02635971

0.00001833

11

0.02550608

0.02549554

0.00001054

12

0.02467240

0.02465970

0.00001270

13

0.02385630

0.02385126

0.00000505

14

0.02307687

0.02306932

0.00000755

15

0.02231302

0.02231302

0.00000000

Таблица 16. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p>0---------------kogda G=0.5

50sloy N priblijennoe tochnoe pogreshnosti

0

0.02231797

0.03678794

0.01446998

1

0.03255024

0.03558189

0.00303165

2

0.02198079

0.03441538

0.01243459

3

0.03239095

0.03328711

0.00089616

4

0.01731825

0.03219583

0.01487758

5

0.03017261

0.03114032

0.00096771

6

0.01587847

0.03011942

0.01424095

7

0.02811880

0.02913199

0.00101319

8

0.01659506

0.02817693

0.01158187

9

0.02595836

0.02725318

0.00129482

10

0.01001244

0.02635971

0.01634727

11

0.02310867

0.02549554

0.00238687

12

0.01064808

0.02465970

0.01401161

13

0.02440333

0.02385126

0.00055207

14

0.01016357

0.02306932

0.01290574

15

0.02231302

0.02231302

0.00000000

Таблица 17. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p<0--------------- kogda G=1

50sloy N priblijennoe tochnoe pogreshnosti

0

0.03678794

0.03678794

0.00000000

1

0.03676351

0.03654351

0.00022000

2

0.03679165

0.03630069

0.00049096

3

0.03676949

0.03605949

0.00070999

4

0.03679966

0.03581990

0.00097976

5

0.03677973

0.03558189

0.00119784

6

0.03681190

0.03534547

0.00146643

7

0.03679418

0.03511062

0.00168357

8

0.03682831

0.03487732

0.00195098

9

0.03681277

0.03464558

0.00216719

10

0.03684883

0.03441538

0.00243345

11

0.03683543

0.03418671

0.00264872

12

0.03687339

0.03395955

0.00291384

13

0.03686210

0.03373391

0.00312820

14

0.03690193

0.03350976

0.00339217

15

0.03689273

0.03328711

0.00360562

Таблица 18. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p<0--------------- kogda G=0.5

50sloy N priblijennoe tochnoe pogreshnosti

0

0.03678794

0.03678794

0.00000000

1

0.03697886

0.03654351

0.00043535

2

0.03685351

0.03630069

0.00055282

3

0.03694215

0.03605949

0.00088265

4

0.03678490

0.03581990

0.00096500

5

0.03709634

0.03558189

0.00151445

6

0.03702149

0.03534547

0.00167603

7

0.03710468

0.03511062

0.00199406

8

0.03712939

0.03487732

0.00225206

9

0.03693008

0.03464558

0.00228450

10

0.03706115

0.03441538

0.00264577

11

0.03679396

0.03418671

0.00260725

12

0.03713746

0.03395955

0.00317791

13

0.03669566

0.03373391

0.00296175

14

0.03706614

0.03350976

0.00355638

15

0.03675340

0.03328711

0.00346629

Текст программы смотри в приложении 6

3.3.3 Схема “прямоугольник”

1. p>0 разностная схема правая имеет вид

2. p<0 разностная схема левая имеет вид

3.3.4 Схема со сглаживанием

Разностная схема имеет вид

1. p>0

2. p<0

Схема сводится к стандартному виду и решается методом прогонки.

3.3.5 Схема прямоугольник со сглаживанием

1.p>0

2. p<0

3.3.6 “Шахматная” схема

Имеем схему с весом

1. p>0

2. p<0

Параметр управляет реализацией схемы. При =0 и

(i+j)- четном решаем по явной схеме, при =1 и

(i+j)- нечетном решаем по неявной схеме явно. В целом схема реализуется явно.

Заключение

Теория разностных схем является самостоятельным разделом вычислительной математики, где изучаются методы приближенного решения дифференциальных уравнений путем замены их конечно –разностными уравнениями (разностными схемами).

Конечно –разностный метод (метод сеток) –один из мощных достаточно универсальных методов современной вычислительной математики. Этот метод относится к классу машинных методов решения широкого круга задач для дифференциальных уравнений.

В дипломной работе рассмотрены “явные” и неявные разностные методы решения для одномерного уравнения переноса с переменными коэффициентами и для одномерного уравнения переноса с постоянными коэффициентами на неравномерных сетках. Использованы такие разностные схемы, как схема бегущего счета, трехточечная схема с весом, центрально –разностная схема, схема “прямоугольник”, схема со сглаживанием, схема прямоугольник со сглаживанием, “шахматная ” схема.

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

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

  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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

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

b[0]:=(tau[j]*p1)/h[i];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=tau[j]*fi(x[0],t[j])+u[0];

f[n]:= A1*exp(l+t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

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

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

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:=A1*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 (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

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

readln;

h[0]:=0;

h[1]:=g1;

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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=1;

b[0]:=0;

a[n]:=-(tau[j]*p1[x)/h[i];

c[n]:=1-(p1*tau[j])/h[i]+tau[j]*q;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=A1*exp(t[j]);

f[n]:= (tau[j]*fi(x[n],t[j])+u[n]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

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

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

p00

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;q=3;a2=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:= v*exp(p+r);end;

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

begin fi:=A1*exp(p+r)*((p+r+10)-(2*p-1)*exp(2*r);end;

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

begin ro:=p+r+10;end;

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

begin p1:=(2*p-1)*exp(2*r);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p00');

readln;

h[0]:=0;

h[1]:=a2;

for i:=2 to n do

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

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

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

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

clrscr;

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

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

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

x[i]:=i*h[i];

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=1;

b[0]:=0;

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

r[i]:=tau[j+1]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j+1]*fi(x[i],t[j]);end;

f[0]:=A1*exp(t[j]);

f[n]:=A1*exp(l+t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

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

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

p0>0, p<0

uses crt;

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

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:=A1*exp(p+r)*((p+r+10)-(2*p-1)*exp(2*r);end;

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

begin ro:=p+r+10;end;

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

begin p1:=(2*p-1)*exp(2*r);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]:=a2;

for i:=2 to n do

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

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

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

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

clrscr;

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

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

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=p1+ro*tau[j]/h[i];

b[0]:=tau[j]*p1/h[i];

a[n]:=tau[j]*p1/h[i];

c[n]:=-ro+p1*tau[j]/h[i];

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=tau[j+1]*fi(x[0],t[j])+ro*u[0];

f[n]:=-(tau[j+1]*fi(x[n],t[j])+ro*u[n]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

Приложение 3

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

Трехточечная схема с весом

Метод прогонки

p0>0, pN>0

uses crt;

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

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6: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:=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 (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema begushego scheta');

writeln(' metod progonki');

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

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

writeln(' vvedite G=' );

read(G);

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

readln;

readln;

h[0]:=0;

h[1]:=a2;

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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=ro+(p1*tau[j])/h[i];

b[0]:=G*tau[j]*p1/h[i];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

a[i]:=-G*p1*tau[j]/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-G)*p1*tau[j]/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=G*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-G)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];

end;

f5[i]:=(1-G)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+G*tau[j]*fi(x[0],t[j]+tau[j]);

f[0]:=f6[j]+(1-G)*tau[j]*fi(x[0],t[j]);

f[n]:= A1*exp(l+t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

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

Трехточечная схема с весом

Метод прогонки

p0<0, pN<0

uses crt;

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

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6: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:=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 (' chislennoe reshenie uravneniya perenosa');

writeln ( 'trextochechnaya sxema');

writeln(' kogda p<0');

writeln(' vvedite G=' );

read(G);

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

readln;

readln;

h[0]:=0;

h[1]:=a2;

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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=1;

b[0]:=0;

a[n]:=-g*(tau[j]*p1)/h[i];

c[n]:=ro-g*(p1*tau[j])/h[i];

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=(-g*p1*tau[j])/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-g)*(p1*tau[j])/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=g*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-g)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];end;

f[0]:=A1*exp(t[j]);

f5[i]:=(1-g)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+g*tau[j]*fi(x[0],t[j]+tau[j]);

f[n]:=f6[j]+(1-g)*tau[j]*fi(x[0],t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

Приложение 4

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

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

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

p<0

uses crt;

const n=15;j0=50;tt=1;l=1;A=1;B=1;p1=1;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j:integer;

h,d,tau,t:hi;

u11,u12:real;

u,u1,x,g,u2:m;

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

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

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

begin fi:=A*B*exp(B*(p+r))*(1-p1+q/B); 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;t[j]:=j*tau[j];

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

end;

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

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

u1[n]:=A*exp(B*(l+t[j]));

for i:=n-1 downto 0 do begin

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

u11:=(g[i]*u1[i+1])+u[i];

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

u1[i]:=(u11+u12)/(1+g[i]+tau[j+1]*q);

end;

for i:=0 to n 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):6:8,' ',d[i]:6:8,' '); end;

j:=j+1;

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

readln;

end;

end.

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

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

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

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

p>0

uses crt;

const n=15;j0=50;tt=1;l=1;A=1;B=-1;p1=-3;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j:integer;

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

u11,u12:real;

u,u1,g:m;

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

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

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

begin fi:=A*B*exp(B*(p+r))*(1-p1+q/B); 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]:=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(B*(x[i])));

end;

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

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

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

for i:=1 to n do begin

g[i]:=(tau[j]*p1)/h[i];

u11:=(-g[i]*u1[i-1])+u[i];

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

u1[i]:=(u11+u12)/(1-g[i]+tau[j]*q);

end;

for i:=0 to n 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[j]:=abs(ut(x[i],t[j])-u1[i]);

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

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

j:=j+1;

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

readln;

end;

end.

Приложение 5.

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

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

p>0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;B1=1;p1=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(B1*(p+r));end;

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

begin fi:=A1*B1*exp(B1*(p+r))*(1-p+q/B);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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=1+(p1*tau[j+1])/h[1]+tau[j+1]*q;

b[0]:=(tau[j+1]*p1)/h[1];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=tau[j]*fi(x[0],t[j])+u[0];

f[n]:= A1*exp(B1*(l+t[j]));

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

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

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

P<0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;B1=-1;p1=-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(B1*(p+r));end;

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

begin fi:=A1*B1*exp(B1*(p+r))*(1-p1+q/B);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]:=g1;

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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=1;

b[0]:=0;

a[n]:=-(tau[j]*p1)/h[i];

c[n]:=1-(p1*tau[j])/h[i]+tau[j]*q;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=A1*exp(t[j]);

f[n]:= (tau[j]*fi(x[n],t[j])+u[n]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

Приложение 6

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

Трехточечная схема с весом

Метод прогонки

p>0

uses crt;

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

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6:hi;

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

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

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

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

begin fi:=A1*B1*exp(B1*(p+r))*(1-p1+q/B1);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema begushego scheta');

writeln(' metod progonki');

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

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

writeln(' vvedite G=' );

read(G);

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

readln;

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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=ro+(p1*tau[j])/h[i];

b[0]:=G*tau[j]*p1/h[i];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

a[i]:=-G*p1*tau[j]/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-G)*p1*tau[j]/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=G*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-G)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];

end;

f5[i]:=(1-G)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+G*tau[j]*fi(x[0],t[j]+tau[j]);

f[0]:=f6[j]+(1-G)*tau[j]*fi(x[0],t[j]);

f[n]:= A1*exp(B1*(l+t[j]));

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

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

Трехточечная схема с весом

Метод прогонки

P<0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;B1=-1;p1=-1;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6:hi;

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

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

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

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

begin fi:=A1*B1*exp(B1*(p+r))*(1-p1+q/B1);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'trextochechnaya sxema');

writeln(' kogda p<0');

writeln(' vvedite G=' );

read(G);

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

readln;

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');

writeln(' ');

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

writeln('N priblijennoe tochnoe pogreshnost ');

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

for i:=0 to n do

begin

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

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

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

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

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

end;

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

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

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

c[0]:=1;

b[0]:=0;

a[n]:=-g*(tau[j]*p1)/h[i];

c[n]:=ro-g*(p1*tau[j])/h[i];

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=(-g*p1*tau[j])/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-g)*(p1*tau[j])/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=g*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-g)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];end;

f[0]:=A1*exp(B1*(t[j]));

f5[i]:=(1-g)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+g*tau[j]*fi(x[0],t[j]+tau[j]);

f[n]:=f6[j]+(1-g)*tau[j]*fi(x[0],t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

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

write(' ',k,'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;

k:=k+1;

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

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
425
Средний доход
с одного платного файла
Обучение Подробнее