Форсайт Дж., Малькольм М., Моулер К. - Машинные методы математических вычислений (1040536), страница 22
Текст из файла (страница 22)
Напечатайте соответствующие значения параметра (э)ОГ()Н и сравните число точек, необходимых для получения определенной точности, с аналогичными числами в а) и б). Поскольку данная задача довольно проста, задаваемые границы погрешностей не должны влиять на число точек. 5.3. Используя определение интеграла Римана и формулу среднего значения, докажите, что приближения, получаемые по составным формулам прямоугольников и трапеций, сходятся при )г-~0 к интегралу. Выделите отчетливо те предположения, которые вы делаете относительно подынтегральной функции. 5гЬ Предположим, что программу О()А?(С8 использовали для интегрирования функции, тождественно равной нулю, скажем, на интервале (О,!).
Результат, конечно, будет равен нулю. В каких точках О()АЫС8 потребует вы. числения подынтегральной функцииз Попробуйте ответить на этот вопрос, просто читая О()АМС8. Затем проверьте ваш ответ, пропустив программу со следующей подпрограммой-функцией: КЕАЬ КОНСТ(ОН РЬ1?((Х) КЕАЬ Х !ХГК!ТЕ(6,1) Х 2 РОК 1ЫАТ(512.8) ВОН = 0.0 КЕТУКН НЧЭ 5.5. (а) Какой результат будет получен па программе О1.1АКС8 для зп (1 — соз 32х) лх? о Каков правильный ответ? Каи можно было бы применить 1)()АКС8, чтобы получить лучший результат? Опять.
таки, попробуйте ответить на эти вопросы до реального выполнения программы. (б) Предположим, что вам дана какая-либо другая квадратурная программа. Объясните, как найти гладкую подынтегральную функцию без особенвостей, которая сможет одурачить эту программу. 5.5. Модифицируйте программу ОБА?(С8 так, чтобы она давала в качестве выходных параметров илн печатала общее количество вычислений функции и длину наименьшего элементарного отрезка, который она испо чьз уст. Пропустите эту программу с какой-нибудь дсхтаточно трудной задачей, например /(х)= )' х или /(х)=!/((х — с)е+е), где с принадлежит интервалу интегрирования, а г очень мало.
Сравните количество реально потребовавшихся вычислений функции с тем, которое понадобилось бы, если бы наименьший элементарный отрезок был использован по всему интервалу интегрирования. 57А Найдите веса формулы Ньютона — Котеса 8-го порядка, потребовав, чтобы приближенное равенство ! з ) / (х) Ых гз ~д'. шэ/ ( — ) о а=о было точным для /(х)=хл, р=-б, 1,, 8 Используйте для этого (?ЕСОМР и 5ОЗЛЕ. Покажите, что формула точна и для /(х) =х'. Покажите, что использо. 124 Э. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ванне СОК!1 в 41()АХС8 делает результат точным и з случае 1(х)=хте или х11 5.8. Напишите подпрограмму 5РС!ХТ, входом которой являются Х узлов Х(!), У(!), 1=1,..., Х, а выходом — сплайн-приближение к интегралу х 4м! у(х) Ых, Х 41! описанное в 45.2.
Ваша подпрограмма должна содержать обрашенне к БРЕ1ХЕ. 5хн Какая из следующих задач окажется трудна, т. е. потребует большого количества вычислений функции, для программы Я()АХ!С8 при значении параметра ((ЕСЕВК=10-«»Почему? Попробуйте ответить без реального вычисления интегралов. ! (а) ) е"' 4(х. е 2 (б) ) з!и 1Ох 4(х. о ! (в) ') """, бх. ,г х — 3 а э ! (х — 1)т~ы ! !е (д) ~ 1п х !(х. 4 ( 1, х=О, (е) ~ ((х) !(х. где )х= ( (е" — !)' — х ~ О.
о х» 4 5.10. Опишите эффективный и точный метод вычислення ) !(х)|(х, где о ех О~хм 2, г (х)= ! 2 < хм,4. 4 — ып!бнх ' 5.11. Характеристики адаптивной кзадратурной программы можно несколько улучшить посредством приема, предложенного Дэвидом Каханером и называемого «банкированиеик Банкирование использует то обстоятельство, что когда подынтервал приемлем, оценка ошибки для него обычно несколько меньше, чем заданвая граница.
Разность между границей и оценкой может быть «вложена в банк» н использована впоследствии для увеличения эффективной границы ошибок других подынтервалов. Критерий приемлемости подынтервала заменяется на ЕЗТЕВВ.СЕ,ТО(.ЕКВ+ТНЕТА»ВАХК. Значение параметра ТНЕТА выбирается между 0 и 1, чтобы ограничить максимальное «изъятие» из переменной ВАХК. УПРАЖНЕНИЯ Модифицируйте программу (с()АНС8, включив в нее банкирование.
Про. ведите эксперименты с различными значениями ТНЕТА и различными подынтеграл ьными фу нкци ими. Дли значений АВ5Е)!к=-О. и ЙЕ1.Е)«(1=1. П вЂ” !5 пропустите вашу модифицированную подпрограмму !41)АХС8 в варианте с двойной точностью для интегралов 1 (х — О. ! )»+ 0.000! о «(х (х — 0.1)'+О 0001 1 Вычислите каждый интеграл для следующих значений ТНЕТА: О, 1„2,..., 1, Заметьте, что в случае ТНЕТЛ=-О.
критерий приемлемости подыитервала тот же, что и для немодифицированной программы ! !ПЛНС8. Почему банкирование дает для второго интеграла лучшие результаты, чем для первого? Значения ТНЕТА, большие 1, »южно использовать для «кредитования», которое должно быть «погашено» банку последующими подыитервалами. Попробуйте использовать кредитование в укаэанных выше задачах, 5.!2. Типовой задачей прикладной математики является решение интегрального уравнения ! (х) + ~ К (х, !) р (!)«(! = р (х), а где функции 1(х) и К(х, !) заданы и задача состоит в вычислении у(х).
Если мы приблизим интеграл посредством квадратуриой формулы Ь а ] К(х. !)у(!) «(! ~~~~ игК(х, 1;)у(т!), а 1=! то интегральное уравнение превратится в систему линейных алгебраических уравнений: ) (!1)+ ~ ~и К (!П (!) у (!!) = р ((у), ! = 1, 2, ..., и. Ее решение д(!!), 1=-1,..., и, есть искомое дискретное приближение к функции у(0.
Используя формулу Симпсона, найдите приближенное ре!пение интегрального уравнения 1 0 Для полученного дисиретного приближения к функции у(!) псктройте сплайнфуикпию посредством подпрограммы ЗРЕ)ХЕ из гл. 4. Сравните вычислеину!о сплайн.функцию с точным решением р (х) = (1 -1- х) — » в различных (табулированных и нетабулированных) точках интервала (0,1]. 6.
ЗАДА~А НАШИ ДЛВ йВЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 6Л. Постановка задачи Дифференциальное уравнение первого порядка можно записать в виде р'=г(р, 1). Это уравнение имеет семейство решений у(1). Например, если )(у, С)=у, то для произвольной константы С функция у(1)= .г Нзнзяьн значен Рис. 6Л. Семейство решений уравнения И'=р. =Се' является решением. Выбор начального значения, скажем у(0), служит для выделения одной из кривых семейства, как показано на рис.
6.1. Начальное значение зависимого переменного б.ь ПОСТАНОВКА ЗАДАЧИ !27 может быть задано для любого значения 1, независимого переменного. Однако часто считают, что выполнено преобразование, обеспечивающее, чтобы 1,=0. Зто не влияет на решение или методы, используемые для приближения решения. Зачастую имеется более чем одно зависимое переменное, и тогда задача заключается в решении системы уравнений первого порядка; например, у'=/(у, г, 1), г' =д(у, г, 1). Предположим, что производные д//ду, 4/дг, 2(д/2(у, дд/дг существуют во всем интервале интегрирования. Решение этой системы содержит две постоянные интегрирования, и, следовательно, нужны два дополнительных условия, чтобы определить этн константы.
Если значения д и г указаны при одном и том же значении независимой переменной 1„то система будет иметь единственное решение. Задача определения значений у и г для (будущих) значений 1-»2, называется задачей Коши. Любое обыкновенное дифференциальное уравнение порядка и, которое можно записать так, что его левая часть есть производная наивысшего порядка, а в правой части эта производная не встречается, может быть записано и в виде системы из и уравнений первого порядка путем введения и — 1 новых переменных. Например, и"= — а(и, и', 1/ можно записать как систему г' =д(п, г, 1), и =-2, где г'(1)=и" (1).
В векторных обозначениях это выглядит так: у'=1(у 1). где При обсуждении методов для задачи Коши удобно представлять себе единственное уравнение у'=/(д, 1) у (10) = уо. Однако методы с равным успехом применимы и к системам уравнений. Г28 б.
ЗАДАЧА КОШИ 6.2. Численные решения Лишь очень немногие дифференциальные уравнения могут быть решены точно, н потому обычно необходимо приближать решения численными методами. Это требует задания следующей дополнительной информации: !. Указание ошибки, которую пользователь готов допустить в решении. Если потребовать бесконечной точности, то мы ие сможем, за исключением немногих игрушечных задач, ничего сделать. 2. Указание того, что пользователь готов заплатить за такое решение.
Это зачастую функция допускаемой ошибки. Подход, который мы опишем, связан с аошаговыми методами (называемыми также разностными методами или методоми дискрвтного переменного). Генерируется последовательность точек 1„, 1„1„..., возможно, с переменной длиной шага й„=1„„— 1„. В каждой точке 1, решение у(1„) аппроксимнруется числом у„, которое вычисляется по предыдущим значениям. Разностный метод, дающий формулу для вычисления у„, по й предыдущим ЗНаЧЕНИЯМ У„, У„„..., У„хе„иаЗЫВавтеи й-ШвгОВЫМ Мгтвдом.
Если и=1, то зто одношоговый метод, а при й)1 это многошаговый метод. Примером одношагового метода является метод Зйлвра. В методе Эйлера значение у„, вычисляется посредством прямолинейной экстраполяции из предыдущей точки у„. Рассмотрим уравнение УО=-1Ь, 1) и пусть задано у (1,) =у,. Наклон решения у(1) в начальной точке можно вычислить по формуле у,'=-1(У„1,). Тогда приближение у, к у(1,) можно найти, беря два первых члена ряда Тейлора: у(11)=У1=ув —' ,йо1(уо, 1о). Полагаем затем 1,=1,+и, и находим у(1.)=у.=у.+й1Ь., 1.) и т.