Научная литература
booksshare.net -> Добавить материал -> Математика -> Боглаев Ю.П. -> "Вычислительная математика и программирование " -> 39

Вычислительная математика и программирование - Боглаев Ю.П.

Боглаев Ю.П. Вычислительная математика и программирование — Высшая школа, 1990. — 546 c.
ISBN 5-06-00623-9
Скачать (прямая ссылка): vychmatiprog1990.djvu
Предыдущая << 1 .. 33 34 35 36 37 38 < 39 > 40 41 42 43 44 45 .. 168 >> Следующая

SUBROUTINE B6S1 (N,Y,X,H,R,D)
REAL Y (N),X,H,D (N),K (4,N),Y1 (N)
INTEGER N
С К (4,N)—РАБОЧИЙ МАССИВ, СОДЕРЖИТ
С КОЭФФИЦИЕНТЫ Kl, К2, КЗ, К4
С Y1(N)—РАБОЧИЙ МАССИВ
С .................................................
CALL R(X,Y,D)
DO 1 1 = 1,N K(l,l)=H*D(l)
Y1(I)=Y(I)+0.5*K(1,I)
X=X+0.5*H CALL R(X,Y1,D)
DO 2 1 = 1,N K(2,I) = H*D(I)
2 Y1 (I)=Y(I)+0.5 * K(2,I)
113
CALL R(X,Y1,D)
DO 3 1=1,N K(3,I) = H*D(I)
3 Y1 (I) = Y (I)+K(3,1)
X = X + 0.5*H CALL R(X,Y1,D)
DO 4 1=1,N
K(4,I) = H*D(I)
4 Y(I) = Y(I) + 0.166667 * (K( 1,1) + 2. * K(2,I) + 2.*K(3,I) + K(4,1)) RETURN
END
Чтобы проиллюстрировать применение программы B6S1 для интегрированиях постоянным шагом Л = 0,1 на интервале 0^д:^5 приведенной выше системы уравнений, следует сделать всего лишь одно исправление—заменить B6S0 на B6S1.
3.3.14. Краевая задача; метод прогонки. В основе решения линейных краевых задач для уравнений второго порядка разностными методами лежит алгоритм решения трехдиагональных систем линейных' алгебраических уравнений—метод прогонки (см. п. 10.4.2). Будем предполагать, что прогонка для заданной трехдиагональной системы осуществима и устойчива (см. теорему 10.6). В общем виде трехдиагональная система записывается в форме
+ 1=Л,; AV=B„ = 0,
где коэффициенты Аь Вь Сь Rt (заданные массивы) — входные параметры, у( (искомый вектор) — выходной параметр. Формулы прогонки можно представить в следующей форме: прямая прогонка:
«1=0, Pi =0,
_______Bj-i n _ Ai_1 pj-i — Rf-i
1 — (Q-i 1 “(Q-i +^i-iai-i)’
обратная прогонка:
У»= _(С^Млал)’ yj-i=*jyj+h> n<J<2-
В следующей программе реализованы формулы прогонки, коэффициенты af, рг размещаются в массивах Е, D соответственно:
SUBROUTINE A9S1(N,A,B,C,R,E,D,Y)
REAL A(N),B(N),C(N),R(N),E(N),D(N),Y(N),S INTEGER N, J С ПРЯМАЯ ПРОГОНКА E(1) = 0.
D(1)=0.
DO 1 1 = 2,N
S= —(C(I— 1)+A(I — 1)*E(I — 1))
114
V.
E(I)=B(I — 1)/S
1 D(I) = (A(I — 1)*D(I — 1)—R(I — 1))/S
С ОБРАТНАЯ ПРОГОНКА
Y(N)=(A(N) * D(N) - R(N))/(- C(N)+A(N) * E(N))
DO 2 I=2,N J=N+2—I
2 Y(J— 1) = E(J)*Y(J)+D(J)
RETURN
END
Рассмотрим разностную схему краевой задачи (10.4.9) с более простыми, чем (10.4.10), условиями
20 0, zm=0,
(zi+i~2zi + zi-i)lh2 + qizi=fi,
Здесь q^0, qi^q{xi), /,=/(*,), x—a + ih, h = (b-a)jm.
Программа решения этой разностной схемы состоит из вычисления элементов массива А, В, С, R и обращения к программе A9S1. Имеем соответствие
^=zf_l5 1</<го+1; п = т+1, п^2;
A-llh2, B^l/h2, С( = —l/h2 + qi_l, 2<*<и-1.
Краевые условия z0=zm —0 приводят к равенствам
A 1 = Bl = Bl=0, C1 = l; An=Bn = Rn=0, Ся = 1.
Входными параметрами задачи являются: п—размерность вектора у, левый а и правый b концы интервала решения краевой задачи, формула функций q(x), f(x)—коэффициента и правой части дифференциального уравнения.
SUBROUTINE B7S0(N,АО, ВО, Q, F,А, В, С, R, Е, D,Y)
»REAL АО, ВО,A(N), B(N), C(N), R(N), E(N),D(N), Y(N),
H,H2,X INTEGER N
С АО, ВО—ЛЕВЫЙ, ПРАВЫЙ КОНЦЫ ИНТЕРВАЛА
С РЕШЕНИЯ
С Q,F —ИМЕНА ВНЕШНИХ ФУНКЦИЙ-ПОДПРО-
С ГРАММ, ВЫЧИСЛЯЮЩИХ Q(X),F(X) СООТ-
С ВЕТСТВЕННО
С ВЫЧИСЛЕНИЕ ВХОДНЫХ ПАРАМЕТРОВ ПРО-
С ГРАММЫ A9S1
А(1)=0.
В(1)=0.
R(1)=0.
С(1) = 1.
A(N)=0.
B(N) = 0.
R(N)=0.
C(N) = 1.
115
H = (BO—AO)/(N — 1)
Н2=Н*Н DO 1 1 = 2, N-l X = A0 + (I— 1)*H A(I)= 1./H2 B(I)= 1./H2 C(I) = Q(X) — 2./H2 1 R(i) = F(X)
С ОБРАЩЕНИЕ К ПРОГРАММЕ A9S1
CALL A9S1(N,A,B,C,R,E,D,Y)
RETURN END '
A
# 3.4. Оптимизация программ
3.4.1. Введение. Программирование занимает в технологии вычислительного процесса определенное место. Оптимизация всего цикла вычислений от составления математической модели до получения числового результата — очень сложная задача. Под оптимизацией понимается, например, минимизация или максимизация некоторого критерия — целевой функции Ф. Критерием может быть стоимость, надежность, быстродействие вычислений. Решение задачи оптимизации необходимо проводить сразу по всей совокупности возможных элементов вычислительного процесса, т. е. искать оптимальные математическую модель (М), вычислительный алгоритм (ВАЛ), программу (П) для заданной вычислительной системы. Если е§ть возможность выбирать ЭВМ, то в число свободных элементов, подлежащих определению, включается архитектура ЭВМ (АР). Если имеется выбор операционной системы, то появляется еще свободный параметр — тип операционной системы (ОС).
Таким образом, для решаемой задачи может быть, в принципе, определена зависимость критерия качества решения задачи Ф от применяемых элементов вычислительного процесса
Ф = Ф(М, ВАЛ, П, ОС, АР) и тогда задача оптимизации состоит в определении ттф или
D
тахф на множестве D возможных значений элементов М, ВАЛ,
D
П, ОС, АР. Решение этой, как уже отмечалось выше, очень сложной задачи выходит за рамки данной книги. Однако следует всегда иметь в виду, что улучшение только программы или только вычислительного алгоритма представляет собой фактически попытку оптимизации Ф по одному элементу при фиксированных остальных. Поэтому и результат может быть весьма далек от оптимального по полному набору элементов.
Предыдущая << 1 .. 33 34 35 36 37 38 < 39 > 40 41 42 43 44 45 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed