Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Температурный розрахунок із допомогою обчислень інформаційної математики

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Підпрограма МКР. з————————————————————————————————— з ПІДПРОГРАМА СКЛАДАННЯ СИСТЕМИ РІВНЯНЬ з МЕТОДОМ КІНЦЕВИХ РАЗНОСТЕЙ з з real H-шаг по осі X з real K-шаг по осі Y з real N-количество уравнений (примерное число, желательно N=M*P) з real y (6,N)-выходной масив уравнений, содержащий такі поля: з y (1,N)-номер точки по осі X з y (2,N)-номер точки по осі Y з y (3,N)-коэфициен рівняння для Q (y… Читати ще >

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

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

По довгою квадратного перерізу трубі тече гаряча рідина. Труба наполовину занурена в крижану ванну, отже температура нижньої половини поверхні труби дорівнює 00 З. Верхня площину труби має постійну температуру 100 0 З. На ділянці між крижаної ванній та верхньої площиною температура зовнішньої поверхні труби змінюється лінійно за висотою від 0 0 З до 100 0 З. Рідина всередині труби має температуру 200 0 С.

Рис. 3.

Розподіл температури [pic]в тілі труби задовольняє уравнению.

[pic].

З похибкою трохи більше 0,5 0 З обчислити розподіл температури в тілі трубы.

|Дискретизаци|Метод кінцевих разностей |+ | |я | | | |завдання |Метод кінцевих елементів | | |Рішення |Метод Гаусса | | |системи |Метод Зейделя |+ | |лінійних |Метод послідовної верхньої | | | |релаксації | | |рівнянь |Метод релаксація по рядкам | | |Висновок |Бібліотечна графічна підпрограма| | |результатів |Алфавітно-цифровий, мозаїчний |+ |.

Математична формулювання задачи.

Вирішити диф. уравнение у приватних производных:

[pic] з задаными началиными умовами межах області дифференцирования.

За позитивного рішення рівняння приблизно заміню похідні другого порядку конечно-разностными отношениями:

[pic] у результаті диф. уравнение перетворюється на 5-ти диаганальную систему алгеброических рівнянь n-го порядка.

Систему алгеброических рівнянь вирішуватиму методом Зейделя.

Похибка виконання завдання знайду по формуле:

[pic] де, [pic] і [pic] -решения, полученные одній й тієї точки з різними шагами.

Функціональна схема.

Метод кінцевих разностей.

Опис методу. Так названо метод рішення крайових завдань, заснований на наближеною заміні похідних, які входять у диференціальні рівняння і крайові умови, нонечно-разностными відносинами. Ця заміна дозволяє звести крайову завдання до завданню рішення системи алгебраїчних уравнений.

Кінцеві різниці і производные. Пусть деяка функція y (x) задана на відрізку [a, b]. Вважатимемо, що вона безупинна й багато разів дифференцируема у цьому відрізку. Розділимо відрізок на однакові частини завдовжки h і позначимо точки розподілу x0, x1,…, xi,…, xn. Значения функції у тих точках позначимо відповідно y0, y1,…, yi,…, yn. Первой центральної різницею в i-го точці (i=1,2,…, n-1) називають разность:

[pic].

З допомогою цієї різниці можна наближено обчислити значення першої похідною у` в i-го точке.

Розкладемо функцію y (x) в статечної ряд. прийнявши за центр розкладання точку xi і обмежившись чотирма членами:

[pic] де [pic].

Аналогічно знайдемо значення ф-ции й у точке[pic], отстоящей від центру розкладання на крок (-h):

[pic] де [pic].

Підставляючи получим:

[pic].

Таким образом, производная y` приближонно замінюється конечно-разностным ставленням з помилкою порядку h*h:

[pic].

Другий центральної різницею ф-ции y (x) в i-го точці називають величину:

[pic].

З допомогою цієї різниці можна приближонно обчислити значення другий похідною y`` в i-го точке. Используем тепер 5 членів розкладання до кількох Тейлора: [pic].

Таким образом, вторая похідна y`` з помилкою порядку h*h то, можливо приближонно замінена конечно-разностным отношением:

[pic].

При визначенні разностей в іі точці використовувалися значення функції в точках, розташованих симетрично щодо xi. Ці різниці називаються центральными.

Є також ліві та праві різниці, використовують точки, розташовані відповідно лівіше і правіше точки xi. З допомогою цих разностей можна також ознайомитися наближено вираховуватимуть значення похідних, але похибка цьому буде більшепорядку h.

Разностные системи рівнянь складаються у порядку. 1. Вихідний диференціальний рівняння перетворять до такої формі, щоб потім отримати гроші з нього найбільш просту разностную систему рівнянь. При цьому враховують, що коефіцієнти при похідних увійдуть до разностную схему одночасно у кілька днів її членів і далі будуть поширені всю систему рівнянь. Тому бажана мати поодинокі коефіцієнти при похідних в вихідному рівнянні. 2. На інтервалі інтегрування вихідного рівняння встановлюють рівномірну сітку з кроком h і записують разностную схему, наближено замінюючи похідні відповідними центральними конечно-разностными відносинами. 3. Применяя разностную схему для вузлів сітки записують разностные рівняння. У цьому можна отримати роботу рівняння містять звані внеконтурные невідомі, тобто невідомі в точках, лежачих за межами встановленої сітки. 4. У разностной формі записують крайові умови і вони становлять повну систему разностных уравнений.

Оцінка похибки рішення крайової задачи.

Рішення разностной системи рівнянь дає близьке рішення крайової завдання. Тому питання про точності цього наближеного решения.

Для лінійних крайових завдань доведено теорему у тому, що порядок точності рішення крайової завдання не нижче порядку точності апроксимації похідних конечно-разностными відносинами. Оцінку похибки виробляють прийомом Рунге. Крайову завдання вирішують двічі: з кроком сітки h і з кроком сітки H=kh, похибка рішення малим кроком h оцінюють по формуле:

[pic] де y (h) і y (H) — рішення, отримані одній й тієї точкиxi відрізка інтегрування з різними кроками. Відносну похибка E оцінюють по формуле:

[pic].

Якщо за складанні разностной системи рівнянь використовуються ліві чи праві різниці, то похибка рішення перевищить, порядку 0(h), і її оцінки на формулах слід замінити k*k на k .

Застосування методу кінцевих разностей на вирішення рівнянь у приватних проиэводных Для застосування разностного методу у сфері зміни незалежних змінних вводять деяку сітку. Усі похідні, що входять до рівняння і крайові умови, заміняють разностями значень функції в вузлах сітки і отримують в такий спосіб алгебраическуго систему рівнянь. Вирішуючи цю систему, знаходять близьке вирішення завдання в вузлах сетки.

Блок схема.

Підпрограма МКР. з————————————————————————————————— з ПІДПРОГРАМА СКЛАДАННЯ СИСТЕМИ РІВНЯНЬ з МЕТОДОМ КІНЦЕВИХ РАЗНОСТЕЙ з з real H-шаг по осі X з real K-шаг по осі Y з real N-количество уравнений (примерное число, желательно N=M*P) з real y (6,N)-выходной масив уравнений, содержащий такі поля: з y (1,N)-номер точки по осі X з y (2,N)-номер точки по осі Y з y (3,N)-коэфициен рівняння для Q (y (1,N)-1,y (2,N)) з y (3,N)=h2/(2*(h2+k2)) з y (4,N)-коэфициен рівняння для Q (y (1,N), y (2,N)-1) з y (4,N)=k2/(2*(h2+k2)) з y (5,N)-коэфициен рівняння для Q (y (1,N)+1,y (2,N)) з y (5,N)=h2/(2*(h2+k2)) з y (6,N)-коэфициен рівняння для Q (y (1,N), y (2,N)+1) з y (6,N)=k2/(2*(h2+k2)) з integer M-число вузлів по осі X з integer P-число вузлів по осі Y з real Q (M, P)-массив значень Y з integer N-выходное кількість одержані рівнянь з————————————————————————————————— subroutine mkr (H, K, N, y, M, P, q) integer M, P, IIX, IIY, NN, N, KR1,KR2,KR3 real y (6,N), H, K, q (M, P), HX, KY.

c————————————————————————————————- з підраховую коэфициенты з h2/(2*(h2+k2)) з і з k2/(2*(h2+k2)) c————————————————————————————————;

HX=H**2/(2*(H**2+K**2)).

KY=K**2/(2*(H**2+K**2)).

c————————————————————————————————- з складання рівнянь з і з присвоювання початкових значень з з nn-счетчик уровнений з iix-номер поточного вузла по осі X з iiy-номер поточного вузла по осі Y c————————————————————————————————;

NN=0.

KR1=((P-1)/8)*3+1.

KR2=((P-1)/8)*5+1.

KR3=((M-1)/4)*3+1 do IIY=2,P-1 do IIX=2,M if (NN.eq.N)then print *, «ПЕРЕПОВНЮВАННЯ МАСИВУ Y «stop endif.

c————————————————————————————————- з перевірка кордону труби з рідиною з————————————————————————————————- if ((IIY.ge.KR1).and.(IIY.le.KR2).and.(IIX.ge.KR3)) then q (IIX, IIY)=200.

c————————————————————————————————- з перевірка симетрії з————————————————————————————————- elseif (((IIY.lt.KR1).or.(IIY.gt.KR2)).and.(IIX.eq.M)) then q (IIX, IIY)=6.

NN=NN+1 y (1,NN)=IIX y (2,NN)=IIY y (3,NN)=2*HX y (4,NN)=KY y (5,NN)=0 y (6,NN)=KY.

c————————————————————————————————- з складання рівнянь у внутрішніх точках постаті з————————————————————————————————- else q (IIX, IIY)=5.

NN=NN+1 y (1,NN)=IIX y (2,NN)=IIY y (3,NN)=HX y (4,NN)=KY y (5,NN)=HX y (6,NN)=KY endif enddo enddo.

c————————————————————————————————- з присвоювання початкових значень за українсько-словацьким кордоном постаті c————————————————————————————————-;

KY=0.

KR1=P/2+1 do IIY=1,P if (IIY.le.KR1)then q (1,IIY)=0 else q (1,IIY)=500*KY-100 endif.

KY=KY+K enddo do IIX=1,M q (IIX, 1)=0 q (IIX, P)=100 enddo.

N=NN end.

ТЕСТ Для тестування складу разностную систему з кроком вдоли осі X і Y=0.05.

Невідомі значення вузлах матриці що є всередині постаті вираховуються за такою формулою: [pic].

Невідомі значення вузлах матриці що є на осі симетрії вираховуються по формуле:

[pic].

МЕТОД ЗЕЙДЕЛЯ.

Метод Зейделя належить до итерационных методів, у яких принципово відсутня чинник накопичення похибок. І він широко застосовується на вирішення великих систем рівнянь. Будемо розглядати коріння розв’язуваної системи як компоненти деякого вектора у. Основна ідея всіх итерационных методів у тому, що береться близьке значення вектора у і з формулам, складеним виходячи з розв’язуваних рівнянь, обчислюється нове близьке значення вектора у. Назвемо ці наближені значення y (k) і y (k+1) відповідно. Оскільки вихідне наближення вибиралося довільно, то у (k+1)в своє чергу може бути вихідним щоб одержати за тими самими формулам нового наближення y (k+2). Вочевидь, той процес можна продовжувати як завгодно довго. Кажуть, що процес ітерацій сходиться, якщо отримувана у своїй послідовність векторів у (k) (к=0,1,2,…} має своїм межею вектор y, являющийся точним рішенням системы:

[pic].

Насправді неможливо досягти цю межу, проте його можна наблизитися зв нього зі будь-який наперед заданої точністю. Ось і надходять задаються деякою похибкою, вектором початкового наближення й отримують послідовні наближення до того часу, поки справжня похибка коренів стане менше заданої. Різні методи відрізняються одна від друга способом обчислення чергового наближення, але у всіх методах є дві головні проблеми: забезпечення збіжності процесу ітерацій; оцінка досягнутої погрешности.

Нехай дана лінійна система.

[pic].

Припускаючи, що діагональні коефіцієнти aii0 (i=1,2,., n) дозволимо перше рівняння щодо y1, друге — щодо y2 тощо. Тоді одержимо еквівалентну систему.

[pic].

где.

[pic] при ij.

и.

[pic] при i=j (i, j=1,2,…, n).

Таку систему будемо надалі називати приведенной.

Метод Зейделя ось у чому. Вибравши вектор початкового наближення y (ср)=(y1,y2,…, yn) підставимо його компоненти в праву частина першого рівняння системи та обчислимо першу компоненту y`1 нового вектора y`(ср). У праву частина другого рівняння підставимо компоненти (y`1,y2,y3,…, yn) і обчислимо другу компоненту y`2 «нового вектора. У третє рівняння підставимо (y`1,y`2,y3,…, yn) тощо. Очевидно, подстановкой у кожне рівняння ми, дійшовши аж до останнього рівняння, обновим все компоненти вихідного вектора і одержимо перше наближення до вирішення y`(ср)=(y`1,y`2,y`3,…, y`n).

Далі, взявши у ролі вихідного вектор у`(ср), виконаємо другу ітерацію й одержимо y``(ср). Цей процес відбувається продовжуватимемо до заданої ступеня точности.

Оцінка похибки наближень процесу Зейделя Для оцінки похибки передусім обчислюють показник швидкості сходимости.

[pic].

То є кожної рядки матриці коефіцієнтів системи [pic] обчислюється сума модулів коефіцієнтів, лежачих правіше головною діагоналі [pic] :

[pic] з сумою модулів коефіцієнтів, лежачих лівіше головною диагонали:

[pic] Для кожної i-го рядки (і =1,2,…, n) обчислюється отношение.

[pic] і як [pic]берется максимальне з цих відносин. Чим менший виявиться [pic], тим більшої буде швидкість сходимости.

Для процесу Зейделя справедлива наступна оцінка похибки К-го наближення: [pic] (i, j=1,2,…, n).

то є модуль відхилення будь-якого іго кореня системи в К-м наближенні від точного значення тієї самої кореня [pic] максимум, ніж помножена на множник [pic] максимальне з збільшень коренів, які є результатом переходу від (K-1) -го наближення до К-му.

Якщо задатися абсолютної похибкою [pic]и зажадати виконання условия.

[pic] (j=1,2,…, n).

то виконане буде і условие.

[pic].

(i=1,2,3,…, n), тобто задана ступінь точності на К-й ітерації буде досягнуто. На практиці це означає, що після стількох кожної ітерації необхідно виділити той корінь, зміна якого з порівнянню з попереднім значенням виявилося найбільшим по модулю. Модуль збільшення цього кореня необхідно помножити на [pic] і порівняти результат з обраної абсолютної погрешностью[pic].

Достатні умови збіжності процесу Зейделя.

Якщо модулі коефіцієнтів системи задовольняють хоча б одного з умов [pic] (i, j=1,2,3,…, n).

то процес Зейделя для відповідної наведеної системи сходиться до її єдиному рішенню незалежно від виборі початкового вектсра y (ср) Такі системи називають системами з діагональним преобладанием.

Метод Зейдедя уміє, що дозволяє забезпечити відповідність процесу для будь-яких систем рівнянь з неособенной матрицею коэфициентов.

Якщо обидві частини систем з неособенной матрицею коэфициентов А=[aij] помножити зліва на транспонировнную матриць A*[aij], він отримана нова, рівносильна вихідної система, що називається нормальної. Процес Зейделя для наведеної системи, отриманою з нормальної, завжди сходиться незалежно від вибору нача льного приближения.

Блок схема.

Підпрограма методу Зейделя. з————————————————————————————————- cПОДПРОГРАММА РІШЕННЯ СИСТЕМИ РІВНЯНЬ МЕТОДОМ ЗЕЙДЕЛЯ з з integer N-входное кількість рівнянь з real y (6,N)-входной масив уравнений, содержащий такі поля: з y (1,N)-номер точки по осі X з y (2,N)-номер точки по осі Y з y (3,N)-коэфициен рівняння для Q (y (1,N)-1,y (2,N)) з y (3,N)=h2/(2*(h2+k2)) з y (4,N)-коэфициен рівняння для Q (y (1,N), y (2,N)-1) з y (4,N)=k2/(2*(h2+k2)) з y (5,N)-коэфициен рівняння для Q (y (1,N)+1,y (2,N)) з y (5,N)=h2/(2*(h2+k2)) з y (6,N)-коэфициен рівняння для Q (y (1,N), y (2,N)+1) з y (6,N)=k2/(2*(h2+k2)) з integer M-число вузлів по осі X з integer P-число вузлів по осі Y з real Q (M, P)-входной масив початкових значень Y з real Q (M, P)-выходной масив вычисленых значень Y з real E-погрешность обчислень з————————————————————————————————— subroutine zeidel (N, y, M, P, q, E) integer N, M, P, I, S real y (6,N), q (M, P), E, EI, NEXTQ.

c————————————————————————————————— з обчислення коэфициента збіжності процесу з mj=y (5,1)+y (6,1) з й вислови з km=mj/(1-mj) З АЛЕ Т.К. MJ=0.5 ТЕ KM=1 І ОТЖЕ ЙОГО МОЖНА ОПУСТИТИ з————————————————————————————————- з KM=(y (5,1)+y (6,1))/(1-y (5,1)+y (6,1)).

c————————————————————————————————— з ітерації з S-счетчик ітерацій c————————————————————————————————-;

S=0.

1 EI=0.

S=S+1 do I=1,N.

NEXTQ=y (3,i)*Q (y (1,i)-1,y (2,i))+.

+ y (4,i)*Q (y (1,i), y (2,i)-1)+.

+ y (5,i)*Q (y (1,i)+1,y (2,i))+.

+ y (6,i)*Q (y (1,i), y (2,i)+1).

c————————————————————————————————— з обчислення похибки на даної ітерації з————————————————————————————————— if (abs (NEXTQ-q (y (1,i), y (2,i))).gt.EI).

+ EI=abs (NEXTQ-q (y (1,i), y (2,i))) з print *, «x= «, y (1,i), «y= «, y (2,i) q (y (1,i), y (2,i))=NEXTQ enddo з print «(16h Ітерація номер, i5,13h погрешность=, E15.7) », S, EI if (EI.gt.E)goto 1.

c do i=P, 1,-1 з print «(21e10.3) » ,(q (j, i), j=1,M) з enddo end.

ТЕСТ.

Як тесту виконаємо одну ітерацію системі, отриманого попередньому пункте.

[pic].

при початкових условиях:

[pic] й інші Yij:=0.

Виходить: [pic].

Результат:

[pic].

Повний текст програми. з————————————————————————————————— з ПІДПРОГРАМА СКЛАДАННЯ СИСТЕМИ РІВНЯНЬ з МЕТОДОМ КІНЦЕВИХ РАЗНОСТЕЙ з з real H-шаг по осі X з real K-шаг по осі Y з real N-количество уравнений (примерное число, желательно N=M*P) з real y (6,N)-выходной масив уравнений, содержащий такі поля: з y (1,N)-номер точки по осі X з y (2,N)-номер точки по осі Y з y (3,N)-коэфициен рівняння для Q (y (1,N)-1,y (2,N)) з y (3,N)=h2/(2*(h2+k2)) з y (4,N)-коэфициен рівняння для Q (y (1,N), y (2,N)-1) з y (4,N)=k2/(2*(h2+k2)) з y (5,N)-коэфициен рівняння для Q (y (1,N)+1,y (2,N)) з y (5,N)=h2/(2*(h2+k2)) з y (6,N)-коэфициен рівняння для Q (y (1,N), y (2,N)+1) з y (6,N)=k2/(2*(h2+k2)) з integer M-число вузлів по осі X з integer P-число вузлів по осі Y з real Q (M, P)-массив значень Y з integer N-выходное кількість одержані рівнянь з————————————————————————————————— subroutine mkr (H, K, N, y, M, P, q) integer M, P, IIX, IIY, NN, N, KR1,KR2,KR3 real y (6,N), H, K, q (M, P), HX, KY.

c————————————————————————————————- з підраховую коэфициенты з h2/(2*(h2+k2)) з і з k2/(2*(h2+k2)) c————————————————————————————————;

HX=H**2/(2*(H**2+K**2)).

KY=K**2/(2*(H**2+K**2)).

c————————————————————————————————- з складання рівнянь з і з присвоювання початкових значень з з nn-счетчик уровнений з iix-номер поточного вузла по осі X з iiy-номер поточного вузла по осі Y c————————————————————————————————;

NN=0.

KR1=((P-1)/8)*3+1.

KR2=((P-1)/8)*5+1.

KR3=((M-1)/4)*3+1 do IIY=2,P-1 do IIX=2,M if (NN.eq.N)then print *, «ПЕРЕПОВНЮВАННЯ МАСИВУ Y «stop endif.

c————————————————————————————————- з перевірка кордону труби з рідиною з————————————————————————————————- if ((IIY.ge.KR1).and.(IIY.le.KR2).and.(IIX.ge.KR3)) then q (IIX, IIY)=200.

c————————————————————————————————- з перевірка симетрії з————————————————————————————————- elseif (((IIY.lt.KR1).or.(IIY.gt.KR2)).and.(IIX.eq.M)) then q (IIX, IIY)=6.

NN=NN+1 y (1,NN)=IIX y (2,NN)=IIY y (3,NN)=2*HX y (4,NN)=KY y (5,NN)=0 y (6,NN)=KY.

c————————————————————————————————- з складання рівнянь у внутрішніх точках постаті з————————————————————————————————- else q (IIX, IIY)=5.

NN=NN+1 y (1,NN)=IIX y (2,NN)=IIY y (3,NN)=HX y (4,NN)=KY y (5,NN)=HX y (6,NN)=KY endif enddo enddo.

c————————————————————————————————- з присвоювання початкових значень за українсько-словацьким кордоном постаті c————————————————————————————————-;

KY=0.

KR1=P/2+1 do IIY=1,P if (IIY.le.KR1)then q (1,IIY)=0 else q (1,IIY)=500*KY-100 endif.

KY=KY+K enddo do IIX=1,M q (IIX, 1)=0 q (IIX, P)=100 enddo.

N=NN end з————————————————————————————————- з ПІДПРОГРАМА РІШЕННЯ СИСТЕМИ РІВНЯНЬ МЕТОДОМ ЗЕЙДЕЛЯ з з integer N-входное кількість рівнянь з real y (6,N)-входной масив уравнений, содержащий такі поля: з y (1,N)-номер точки по осі X з y (2,N)-номер точки по осі Y з y (3,N)-коэфициен рівняння для Q (y (1,N)-1,y (2,N)) з y (3,N)=h2/(2*(h2+k2)) з y (4,N)-коэфициен рівняння для Q (y (1,N), y (2,N)-1) з y (4,N)=k2/(2*(h2+k2)) з y (5,N)-коэфициен рівняння для Q (y (1,N)+1,y (2,N)) з y (5,N)=h2/(2*(h2+k2)) з y (6,N)-коэфициен рівняння для Q (y (1,N), y (2,N)+1) з y (6,N)=k2/(2*(h2+k2)) з integer M-число вузлів по осі X з integer P-число вузлів по осі Y з real Q (M, P)-входной масив початкових значень Y з real Q (M, P)-выходной масив вычисленых значень Y з real E-погрешность обчислень з————————————————————————————————— subroutine zeidel (N, y, M, P, q, E) integer N, M, P, I, S real y (6,N), q (M, P), E, EI, NEXTQ.

c————————————————————————————————— з обчислення коэфициента збіжності процесу з mj=y (5,1)+y (6,1) з й точні висловлювання з km=mj/(1-mj) З АЛЕ Т.К. MJ=0.5 ТЕ KM=1 І ОТЖЕ ЙОГО МОЖНА ОПУСТИТИ з————————————————————————————————- з KM=(y (5,1)+y (6,1))/(1-y (5,1)+y (6,1)).

c————————————————————————————————— з ітерації з S-счетчик ітерацій c————————————————————————————————-;

S=0.

1 EI=0.

S=S+1 do I=1,N.

NEXTQ=y (3,i)*Q (y (1,i)-1,y (2,i))+.

+ y (4,i)*Q (y (1,i), y (2,i)-1)+.

+ y (5,i)*Q (y (1,i)+1,y (2,i))+.

+ y (6,i)*Q (y (1,i), y (2,i)+1).

c————————————————————————————————— з обчислення похибки на даної ітерації з————————————————————————————————— if (abs (NEXTQ-q (y (1,i), y (2,i))).gt.EI).

+ EI=abs (NEXTQ-q (y (1,i), y (2,i))) з print *, «x= «, y (1,i), «y= «, y (2,i) q (y (1,i), y (2,i))=NEXTQ enddo з print «(16h Ітерація номер, i5,13h погрешность=, E15.7) », S, EI if (EI.gt.E)goto 1.

c do i=P, 1,-1 з print «(21e10.3) » ,(q (j, i), j=1,M) з enddo end.

c————————————————————————————————— з ПІДПРОГРАМА АЛФАВИТНО-ЦИФРОВОГО, МОЗАИЧНОГО з ВИВЕДЕННЯ РЕЗУЛЬТАТУ з integer M-число вузлів по осі X з integer P-число вузлів по осі Y з real Q (M, P)-входной масив значень Y з з з————————————————————————————————— subroutine outdata (M, P, q) character a (11)/ «. », «+ », «* », «», «», «- «, «- «, «- «, «», «- «, «- «/ integer M, P, I, J real q (M, P) do J=P, 1,-1 print «(400A2) » ,(a (int (q (I, J)/21)+1), I=1,M),.

+ (a (int (q (I, J)/21)+1), I=M-1,1,-1) enddo do I=1,10 print *, «» «», a (I), «» «», «—-> від », 20*(I-1), «, до » ,.

+ 20*I, «(включно) «enddo end з————————————————————————————————— з ПІДПРОГРАМА ОБЧИСЛЕННЯ ПОМИЛКИ з real q-массив значень Y з кроком =2*h з real qq-массив значень Y з кроком =h з real E-значение похибки з з————————————————————————————————— subroutine mistake (M, P, q, qq, E) integer M, P, iq, jq, iqq, jqq real qq (M, P), q (int (M/2)+1,int (P/2)+1), max, E, other max=0 iq=0 do iqq=1,P, 2 iq=iq+1 jq=0 do jqq=1,M, 2 jq=jq+1 other=abs (q (jq, iq)-qq (jqq, iqq)) if (other.gt.max)max=other enddo enddo print *, M, «», P, «», max/3 if (max/3.lt.E) then call outdata (M, P, qq).

Stop endif end з————————————————————————————————— з ОСНОВНА ПРОГРАМА з з з————————————————————————————————— integer N/90 000/, M, P, flag/0/ real y (6,90 000), q (300,300), H/.05/, K/.05/, E/.5/, qq (300,300) real EZ/.01/ з print *, «Запровадьте крок вздовж осі X «з read (*,*)H з print *, «Запровадьте крок вздовж осі Y «з read (*,*)K з print *, «Запровадьте точність обчислень «з read (*,*)E.

M=.2/H+1.

P=.4/K+1 call mkr (H, K, N, y, M, P, q) call zeidel (N, y, M, P, q, EZ) 111 H=H/2.

K=K/2.

M=.2/H+1.

P=.4/K+1.

N=90 000 if (flag.eq.0)then flag=1 call mkr (H, K, N, y, M, P, qq) call zeidel (N, y, M, P, qq, EZ) call mistake (M, P, q, qq, E) else flag=0 call mkr (H, K, N, y, M, P, q) call zeidel (N, y, M, P, q, EZ) call mistake (M, P, qq, q, E) endif goto 111 end.

1. И. С. Березин, Н. П. Жидков 'Методи вычислений', том 1, М., 1966,632 стор. 2.' Чисельні на методи вирішення завдань на ЕОМ ', Навчальний посібник, Г. Н. Рубальченко, До., 1989, 148 стор. 3.'Справочник мови ФОРТРАН', М., 1996, 106 стор. ———————————- Т=100 0 С Т=200 0 С Т=0 0 С Т=0 0 С.

0,1.

0,4.

Вибір початкового шага.

Упорядкування системи ур-ний.

№ 1.

Рішення системи ур-ний.

№ 1.

Зменшення кроку 2 раза.

Flag=0.

Упорядкування системи ур-ний.

№ 2.

Рішення системи ур-ний.

№ 2.

Упорядкування системи ур-ний.

№ 1.

Рішення системи ур-ний.

№ 1.

Да Нет.

Flag=1.

Flag=0.

Помилка у системі № 2 щодо № 1.

Помилка у системі № 1 щодо № 2.

Точность не достигнута Точность не достигнута Вывод результату выход Ок.

Ок.

Hx=h*h/(2*(h*h+k*k)) Ky=k*k/(2*(h*h+k*k)) nn=0 kr1=((p-1)/8)*3+1 kr2=((p-1)/8)*5+1 kr3=((m-1)/4)*3+1.

iiy=2,p-1.

iix=2,m.

Iiy>=kr1&iiy=kr3.

q (iix, iiy)=200.

Да.

(IiyE.

Да Нет.

Показати весь текст
Заповнити форму поточною роботою