Слаботочка Книги

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208

2 p

7-. / л / 1 + f <ч P pcosp-smp. 2(p) = J -у-ехр{1р}сгС = ---s-1.

При p -> 0 имеем

pcosp-suip g 3) ,o

p 3 p

Таким образом, jDi(p), (p) - 1 при p 0.

Пусть p -малое число. Функции ship и pcosp вычисляются в машине с погрешностями 0(2~*) и 0(р2~*) соответственно. Вследствие этого коэффициенты jDi(p), D2{p) приобретают погрешность 0(2~*/р). При п> 2 оказывается, что погрешность коэффициентов Dj{p), вычисляемых по формулам (1), может оказаться величиной порядка 2~*/р . Например, при i = 30, п = 5, р = 0,01 такая погрешность уже недопустима. Поэтому стандартные программы вычисления интегралов от быстро осциллирующих функций должны иметь специальный блок, предусматривающий изменение расчетных формул при малых р с тем, чтобы избежать существенного влияния вычислительной погрешности.

Если п не очень велико, например п = 2, то можно пойти по следующему пути: при р( > рп, где некоторое р подбираем экспериментально, вычисления производим по формулам (1), (2); если р Рп, то вычисляем исходный интеграл по формуле трапеций (3.7), рассматривая всю функцию /(ж) ехр{кох} как подынтегральную. В рассматриваемом случае (п = 2, di = -1, с?2 = 1) формула (3.7) приобретает вид

fix) ещ>{шх} dx -[exp{iwa}f{a) + exp{ia;fc}/(6)]. (3)

Формулы (1), (3) можно объединить в одну формулу

Jjix) exp{ia;a;} dx = ехр {i} [ii(p).f (а) + 7?2(р)/(Ь)], (4)

о - а

Г gcosp-ship. (5)

DiM = \ Р Р

[ exp{Tpi} при р р2.

В стандартных программах вычисления интегралов рассматриваемого типа применяются квадратуры вида (4), (5). Возникает вопрос: зачем усложнять

следующая неприятность, которую мы проиллюстрируем для п - 2, d\ - -1, 2 = 1- В этом случае

, , fl-f г. -1 , ship pcosp -sinp. Diip) = j -тгМЫ) d=-Z +---~



стандартную программу? Может быть, проще написать стандартную программу вычисления по формуле (2), стандартную программу вычисления по формуле трапеций и дать инструкцию: при больших \р\ обращаться к первой из стандартных программ, при малых \р\ - ко второй? Обсудим целесообразность такого подхода. Нашей целью является создание максимальных удобств пользователю ЭВМ. Если в описании правил использования стандартной программы написано слишком много, то пользователь может не понять того, что написано, и

1) обратиться к другой программе, худшей по качеству, но имеющей лучшее описание или более простое обращенпе;

2) воспользоваться программой неправильно и не получить результатов; например, в рассматриваемом случае, применив метод расчета по формулам (1), (2) при р = О, он получит аварийную остановку ЭВМ;

3) воспользоваться программой неправильно и получить неверный результат, предполагая, что он верный; например, так случится, если он воспользуется формулами (1), (2) при 2 7р ~ порядка 1.

Очевидно, что последний случай влечет за собой наиболее неприятные для пользователя последствия.

При выборе метода для стандартной программы надо стремиться к тому, чтобы описание программы, составляемой на базе этого метода, было по возможности простым и кратким. Надо иметь в виду, что всякое дополнительное высказывание может быть истолковано неправильно в ущерб для области применения программы.

Приведем Один поучительный реальный пример. В описании одной из стандартных программ вычисления кратных интегралов было написано: Применение настоящей программы нецелесообразно, если число узлов берется большим 100 ООО . Спустя короткое время программа была практически изъята из употребления. Оказалось, что среди первых пользователей программы подавляющее большинство сразу задавались числом узлов 100000, при этом на вычисление простого интеграла уходило слишком много машинного времени. Весть об этом распространилась повсюду, и вскоре к программе перестали обращаться. На самом деле при ее испопьзовашп! большинство реальных интегралов вычислялось с приемлемой точностью при числе узлов порядка 1000. Число 100 ООО было указано .яишь как ориентировочная верхняя граница значений, при которых вычислительная погрешюсть еще не оказывает катастрофического влияния на результат.

§ 8. Повышение точности интегрирования за счет разбиения отрезка на равные части

Из оценки (2.1) вытекает, что погрешность квадратуры оценивается через погрешность, с которой функция /(ж) может быть приближена многочленами степени т. Поэтому может показаться естественным добиваться увеличения точности за счет повышения степени многочленов, для которых эта квадратура точна. Однако такой путь содержит свои подвод-



\R{f)\ =

при п оо.

jj{x)dx~Sn{f)

Рассмотрим случай, когда отрезок интегрирования есть [-1, 1], и сформулируем общую теорему, указывающую на необходимость осторожного обращения с формулами, точными для многочленов очень высокой степени. Пусть при каждом п мы имеем квадратуру

f f{x)dxJ2c\-f(df, (1)

точную для многочленов степени п-1. Обозначим через Wn{x\, ж-г) число узлов квадратуры (1), принадлежащих отрезку [ж1, ж-а].

Теорема (без доказательства). Пусть существует отрезок [xi, жг] € [-1, 1] такой, что

Wn{xi, Ж2) . dx

-/ -=== при п оо.

Тогда можно указать Ь ф Q и а такие, что для одной из аналитических

(--г-) или 1ш I ---г- )

\х-{а + Ь\)) \х-{а-\- Ь\))

дет выполняться соотношение

lim \Rn{f)\ = 00.

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

ные камни . При неудачном выборе узлов может оказаться, что величина

Ellji растет вместе с п. Тогда в оценке (2.1) величина V также ра-

стет вместе спи может оказаться, гго уменьшение Emif) с ростом п не компенсирует увеличение V.

Например, для простейшего равномерного распределения узлов

dW= H-fcil, j = l,...,n. Kb]==[-l,l] n - 1

оказывается, что при m = и - 1 имеем log2 У ~ п. В результате этого, например, для аналитической функции /(ж) = (1 + 25а;)~




1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
Яндекс.Метрика