Швыдкий В.С. Численные методы - файл n1.doc

Швыдкий В.С. Численные методы
скачать (1669.2 kb.)
Доступные файлы (3):
n1.doc2412kb.14.03.2000 23:28скачать
n2.doc1688kb.12.05.2000 15:18скачать
n3.doc2454kb.07.08.2000 16:12скачать

n1.doc

  1   2   3   4   5   6   7   8


Министерство общего и профессионального образования РФ

УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра "Теплофизика и информатика в металлургии"

Швыдкий Владимир Серафимович




ЧИСЛЕННЫЕ МЕТОДЫ




Екатеринбург 2000



ВВЕДЕНИЕ


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

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

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

Наиболее общие законы управления (объект управления, субъект управления, их взаимоотношения между собой и взаимодействие с окружающей средой) изучает наука кибернетика. Главными для кибернетики являются вопросы, связанные с формированием цели, программами достижения этой цели, принятием решений, выполнением этих решений в условиях воздействия окружающей среды. При этом управление рассматривается, прежде всего, как процесс преобразования информации о желаемом и фактическом состоянии объекта в управляющую информацию, обеспечивающую адекватность этих состояний. Управление немыслимо без использования информации; процессы управления неотделимы от информационных процессов. Поэтому понятие информации принадлежит к числу наиболее фундаментальных понятий кибернетики. Вместе с тем процессы управления включают в качестве важнейших по значению компонентов силовые воздействия, которые обеспечивают реализацию управляющей информации. Поэтому кибернетика рассматривает процесс управления в единстве материально-энергетических и информационных связей.

Информатика изучает информационные связи и относится к кибернетике

как информация к управлению. Как кибернетика в зависимости от объекта управления подразделяется на техническую, биологическую, экономическую и т.д., так и информатику в зависимости от вида информации можно делить (и она действительно уже делится) на биологическую, экономическую, медицинскую, научно-техническую и др.

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

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

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

В 70-х годах термин "информатика" был принят для обозначения частных наук. Однако в связи с основополагающим значением информации наряду с материей и энергией в последние годы термин "информатика" получил более

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

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

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

Технические и технологические объекты чёрной и цветной металлургии (а, в принципе, любые реальные объекты) характеризуются взаимосвязанностью и взаимообусловленностью различных параметров, определяющих процесс. Вследствие этого математические модели таких объектов в математическом и физическом планах являются существенно нелинейными, и уравнения этих моделей не могут быть решены средствами традиционной высшей математики. Рабочим инструментом информатика являются методы и средства вычислительной (или, как ещё говорят, прикладной) математики. Численные методы, рассматриваемые в данном курсе, составляют весьма значительную и наиболее распространённую часть этих средств.



1. ОСНОВНЫЕ ПОНЯТИЯ И ХАРАКТЕРИСТИКИ

ЧИСЛЕННЫХ МЕТОДОВ



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

1.1. Математические модели и численные методы

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

Одним из способов решения является эксперимент. Установим эти электронагреватели на стенках печи, построим печь или цех и измерим интересующую нас характеристику. Если характеристика оказалась неудачной, то изменим, проект и выберем другой тип нагревателей, построим другую печь и другой цех и т.д. Совершенно ясно, что таким путём мы получим достоверный ответ на вопрос (в идеале), но слишком медленным и дорогим способом.

Другим способом является математический анализ конструкции или явления. Поскольку, однако, математическое описание реальной конструкции или явления достаточно сложны, то такой анализ применяется не к реальным явлениям, а к некоторым математическим моделям этих явлений. Поэтому первая стадия численного анализа – это формулировка математической модели (постановка задачи). Для технологического процесса или технического объекта модель обычно состоит из уравнений, описывающих процесс или объект; в эти уравнения в виде коэффициентов входят характеристики тел или веществ, участвующих в процессе. Например, нагрев термически тонкого тела массой m потоком газа определяется уравнением

(1.1)

где с – удельная теплоёмкость вещества тела, F – поверхность тела,  - коэффициент теплообмена газа с поверхностью тела, зависящий от поля скорости газа вблизи поверхности тела и теплофизических свойств газа, tм() и tг() - - температуры тела и газа соответственно,  - время.

Любое изучаемое явление чрезвычайно сложно. Оно связано с другими явлениями природы, возможно, не представляющими интереса для рассматриваемой конкретной задачи. Математическая модель должна охватывать важнейшие для данной задачи стороны явления. Наиболее сложная и ответственная работа при постановке задачи заключается в выборе связей и характеристик явления, существенных для данной задачи и подлежащих формализации и включению в математическую модель.

Если математическая модель выбрана недостаточно тщательно, то, какие бы методы мы ни применяли для расчёта, все выводы будут недостаточно надёжны, а в некоторых случаях могут оказаться совершенно неправильными. Так, уравнение (1.1) непригодно для проектирования нагревательных печей, поскольку в нём не учтено наличие температурной неравномерности в объёме тела, существенного влияния излучения газов и стенок печи, геометрии рабочего пространства и многое другое.

Вторая стадия работы при анализе закономерностей развития того или иного процесса – это математическое исследование. В зависимости от сложности модели применяются различные математические методы. Для наиболее грубых и несложных моделей зачастую удаётся получить аналитическое решение. Например, уравнение (1.1) легко интегрируется при условии постоянства  и с:



где tм0 – температура тела в момент времени 0. Из-за грубости модели физическая точность такого подхода невелика: нередко такой подход позволяет оценить лишь порядки величин.

Для более точных и сложных моделей аналитические решения удаётся получить сравнительно редко. Обычно инженеры (в том числе и информатики) пользуются приближёнными математическими методами (например, методом Био, разложением по малому параметру и т.д.), позволяющими получить удовлетворительные качественные и количественные результаты. Наконец, для наиболее сложных и точных моделей основными методами решения являются численные; как правило, они требуют проведения расчётов на ЭВМ. Эти методы также приближённые, однако их погрешность можно контролировать изменением параметров метода, в силу чего удаётся добиться хорошего количественного описания явления, не говоря уже о качественном.

Во всех случаях математическая точность решения должна быть несколько (в 2 – 4 раза) выше, чем ожидаемая физическая точность модели. Более высокой математической точности добиваться бессмысленно, так как общую точность ответа это всё равно не повысит. Но более низкая математическая точность недопустима (часто для упрощения решения задачи в ходе работы принимают дополнительные математические упрощения; это снижает ценность результатов).

Наконец, третья стадия работы – это осмысливание математического решения и сопоставление его с имеющимися экспериментальными данными или с результатами решения модельных задач. Если расчёты хорошо согласуются с контрольными экспериментами, то это свидетельствует о правильном выборе модели, об адекватности модели реальному процессу; такую модель можно использовать для расчёта процессов данного типа. Если же расчёт и эксперимент не согласуются, то модель необходимо пересмотреть и уточнить.

Численные методы являются одним из мощных средств решения задачи. Простейшие численные методы мы используем всюду, например, извлекая квадратный корень на листке бумаги. Есть задачи, где без достаточно сложных численных методов не удалось бы получить ответа; классический пример – открытие Нептуна по аномалиям движения Урана.

В современной технике таких задач много. Более того, часто требуется выполнить огромное число действий за короткое время, иначе ответ будет не нужен. Например, суточный прогноз погоды должен быть вычислен за несколько часов, режим работы прокатного стана должен исправляться за секунды, а трубопрокатного – за доли секунды. Это немыслимо без мощных ЭВМ, выполняющих сотни тысяч и миллионы операций в секунду.

Современные численные методы и мощные ЭВМ дали возможность решать такие задачи, о которых полвека назад могли только мечтать. Но применять численные методы далеко не просто. Цифровые ЭВМ умеют выполнять только арифметические действия и логические операции. Поэтому помимо разработки математической модели, требуется ещё разработка алгоритма, сводящего все вычисления к последовательности арифметических и логических действий. Выбирать модель и алгоритм надо с учётом скорости и объёма памяти ЭВМ; чересчур сложная модель может оказаться машине не под силу, а слишком простая – не даст физической точности.

Сам алгоритм и программа для ЭВМ должны быть тщательно проверены. Даже проверка программы нелегка, о чём свидетельствует популярное утверждение: "В любой сколь угодно малой программе есть по меньшей мере одна ошибка". Проверка алгоритма ещё более трудна, поскольку для сложных алгоритмов не часто удаётся доказать сходимость классическими методами. Приходится использовать более или менее надёжные "экспериментальные" проверки, проводя пробные расчёты на ЭВМ и анализируя их.

Строгое математическое обоснование алгоритма редко бывает исчерпывающим исследованием. Например, большинство доказательств сходимости итерационных процессов справедливо только при точном выполнении всех вычислений; практически же число сохраняемых десятичных знаков при вычислениях на ЭВМ редко превосходит 10 –12. Плохо поддаются теоретическому исследованию "маленькие хитрости" – незначительные на первый взгляд детали алгоритма, сильно влияющие на его эффективность. Поэтому окончательную оценку метода можно дать только после опробования его в практических расчётах.

К чему приводит пренебрежение этими правилами – видно из принципа некомпетентности Питера: "ЭВМ многократно увеличивает некомпетентность вычислителя".

Для сложных задач разработка численных методов и составление прог –

рамм для ЭВМ очень трудоёмки и занимают от нескольких недель до нескольких лет. Стоимость комплекса отлаженных программ нередко сравнима со стоимостью полупромышленной экспериментальной установки. Зато проведение отдельного расчёта по такому комплексу много быстрей и дешевле, чем проведение отдельного эксперимента. Такие комплексы позволяют подбирать оптимальные параметры исследуемых конструкций, что не под силу эксперименту.

Однако численные методы не всесильны. Они не отменяют все остальные математические методы. Начиная исследовать проблему, целесообразно использовать простейшие модели, аналитические методы и прикидки. И только разобравшись в основных чертах явления, надо переходить к полной модели и сложным численным методам; даже в этом случае численные методы выгодно применять в комбинации с точными и приближёнными аналитическими методами.

Современный инженер-информатик для успешной работы должен одинаково хорошо владеть и "классическими" методами, и численными методами математики.

2. Приближённый анализ

Как уже отмечалось, численные методы – это приближённые методы математического анализа. Поэтому естественными представляются вопросы: какова погрешность результата, полученного численным методом, что имеется в виду, когда говорят, что численное решение близко к точному, и т.п. На все эти вопросы отвечает такой раздел математики, как функциональный анализ, отдельные элементы которого и составляют содержание данного параграфа.

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

Например, пусть надо вычислить Можно приближённо заме –

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

Но что такое "близко"? Очевидно, для двух чисел х1 и х2 надо требовать малости |x1x2|; а близость двух функций можно определить разными способами. Узловым понятием в этом плане является понятие о метрике пространства.

Множество элементов х любой природы называется метрическим пространством, если в нём введено расстояние (х1, х2) между любой парой элементов (метрика),удовлетворяющее следующим аксиомам:

а) (х1, х2) – вещественное неотрицательное число,

б) (х1, х2) = 0, только если х1 = х2, (1.2)

в) (х1, х2) = (х2, х1),

г) (х1, х3)  (х1, х2) + (х2, х3).

Последовательность элементов xn метрического пространства называется сходящейся (по метрике) к элементу х, если (xn, х)  0 при n  . Последовательность xn называется фундаментальной, если для любого   0 найдётся такое k(), что (xn, xm)   при всех n и mk.

Метрическое пространство называют полным, если любая фундаментальная последовательность его элементов сходится к элементу того же пространства. Примером неполного пространства является множество рациональных чисел x = (n/m) с метрикой (х1, х2) = |x1x2|. Последовательность xk = (1 + 1/k)k ему принадлежит, является фундаментальной, но сходится к иррациональному числу е, т.е. не к элементу данного пространства. Если переменные у, х принадлежат неполным пространствам, то обосновать сходимость численных методов очень трудно: даже если удаётся доказать, что при xnx последовательность yn фундаментальная, то отсюда ещё не следует, что она сходится к элементу данного пространства, т.е. к решению допустимого класса.

Элементами наших множеств в дальнейшем будут числа, векторы, матрицы, функции и т.п. Сами множества обычно являются линейными, так как в них определены операции сложения элементов и умножения их на число и введена норма каждого элемента ||x||, причём выполнены следующие аксиомы:

х1 + х2 = х2 + х1, (х1 + х2) + х3 = х1 + (х2 + х3);

существует единственный элемент  такой, что

х +  = х для любого х (будем использовать для

 обозначение 0); для всякого х существует

единственный элемент - х, такой, что х + (-х) = ; (1.3)

а(х1 + х2) = ах1 + ах2; (a + b)x = ax + bx;

a(bx) = (ab)x; 1x = x: 0x =  единственен;

||x||  0 – вещественное число; ||ax|| = |a|||x||;

||x|| = 0 только при х = 0; ||x1 + x2||  ||x1|| + ||x2||.

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

Рассмотрим некоторые примеры банаховых пространств, с которыми нам часто придётся встречаться. Выполнимость аксиом (1.3) и полноту читатели легко проверят сами.

Класс непрерывных функций часто ещё сужают, накладывая на функции дополнительные требования: липшиц-непрерывности, однократной и многократной дифференцируемости и т.д. Напомним некоторые определения, известные из курса высшей математики.

Функция х() называется равномерно-непрерывной на отрезке, если для сколь угодно малого   0 найдётся такое , что |x(1) – x(2)|   для любой пары точек отрезка, удовлетворяющих условию |1 - 2|  . Таким образом, устанавливается функциональная связь между  и . Величина () называется модулем непрерывности функции. Функция, непрерывная во всех точках замкнутого отрезка a    b, является на этом отрезке ограниченной и равномерно-непрерывной (теорема Кантора); следовательно, пространство С – множество ограниченных и равномерно-непрерывных функций. Если ()К, где К – некоторая константа, то функцию называют липшиц-непрерывной. Нетрудно видеть, что если функция имеет ограниченную производную, то она липшиц-непрерывна, причём K = sup|x'()|.



Сходимость в такой норме называют сходимостью в среднем. Пространство L2 называют гильбертовым, а сходимость в нём – среднеквадратичной.

Разницу между равномерной близостью и близостью в среднем иллюстрирует рис. 1.1. Функция х2 равномерно близка к функции х1, а функция х3 близка в среднем, т.е. мало отличается от х1 на большей части отрезка, но может сильно отличаться от неё на небольших участках.

Выбирая метрические пространства, т.е. выбирая множества X, Y и определяя в них метрики, мы тем самым уславливаемся, в каких классах функций можно брать начальные данные и искать решение. Поэтому в конкретной задаче выбор пространств должен в первую очередь определяться физическим смыслом задачи, и лишь во вторую – чисто математическими соображениями (такими, например, как возможность доказать сходимость). Например, при расчёте прочности элемента конструкции агрегата нужна равномерная близость приближённого решения к точному, а близости в среднем недостаточно: перенапряжение в маленьком участке может разрушить конструкцию. А в задаче о нагреве тела потоком теплоты даже норма L1 удовлетворительна, так как температура тела определяется интегралом от потока по времени.

Нетрудно показать, что между разными нормами (если они существуют) выполняются определённые соотношения. Если функции х() определены при 0    1, тогда

(1.4)

В самом деле, например:



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



а само пространство называют соответственно с или lp.



Для конечномерных векторов существует соотношение

(1.5)

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

Отметим, что если последовательность векторов xm не сходится, но xm/||xm|| сходится, то говорят о сходимости векторов по направлению.

(1.6)

где i – собственное значение эрмитовой матрицы AHA (здесь AH - матрица, эрмитово сопряжённая по отношению к А). Первые две нормы не имеют собственного названия, третья называется максимальной, четвёртая – сферической или евклидовой и пятая – спектральной. Между ними выполняются некоторые соотношения, аналогичные (1.5).

Интересна связь между нормами матриц и векторов, на которые матрицы действуют. Норма матрицы называется согласованной с нормой вектора, если ||Ax||  ||A||||x||. Наименьшая из норм матрицы, согласованных с данной нормой вектора: ||A|| = sup(||Ax||/||x||), называется нормой матрицы, подчинённой данной норме вектора.

Пример. Приведём пример подчинённой нормы. Из цепочки неравенств

(1.7)

следует, что ||A||c согласована с ||x||c. Кроме того, для любой матрицы А существует такой вектор х, что неравенство (1.7) обращается в равенство. Для его нахождения положим xj =  1; знаки выберем так, чтобы они совпадали со знаками элементов aij той строки матрицы i, в которой максимальна. Тогда именно сумма по этой строке будет максимальна в левой части (1.7), и неравенство превратится в равенство. Это означает, что ||A||c есть наименьшая из норм, согласованных с ||x||c; если мы возьмём ещё меньшую ||A||, то при этом векторе х для неё знак неравенства (1.7) будет обратным, т.е. она не будет согласованной. Следовательно, ||A||c подчинена ||x||c.

Без доказательства укажем, что ||A||1 подчинена ||x||1, и спектральная норма подчинена ||x||2. Сферическая норма согласована с ||x||2, а максимальная норма согласована со всеми рассмотренными ранее векторными нормами.

Структура погрешности. Есть четыре источника погрешности результата численного анализа: математическая модель, исходные данные, приближённый метод и ошибки при округлении. Погрешность математической модели обусловлена физическими допущениями и упрощениями и здесь рассматриваться не будет.

Исходные данные часто содержат определённую погрешность; например, это могут быть экспериментально измеренные величины. В прецизионных физических измерениях точность доходит до 10-12, но уже характерная погрешность измерения в технических задачах бывает равной 1 – 10 %. Погрешность исходных данных х приводит к так называемой неустранимой (она не зависит от вычислителя) погрешности решения у = А(х + х) – А(х). В ряде случаев неустранимая погрешность может стать недопустимо большой.

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

Погрешность метода целесообразно выбирать так, чтобы она была в 2 – 3

раза меньше неустранимой погрешности. Большая погрешность метода снижает точность ответа, а заметно меньшая – невыгодна, так как это обычно требует значительного увеличения объёма вычислений.

Вычисления как на бумаге, так и на ЭВМ выполняют с определённым числом значащих цифр. Это вносит в ответ погрешность округления, которая накапливается в ходе вычислений.

Рассмотрим накопление погрешности при простейших вычислениях. Пусть исходные данные xi известны с относительной погрешностью i  0, т.е. заключены между xi (1 - i) и xi (1 + i); их абсолютные погрешности равны i |xi|. Тогда при сложении или вычитании двух чисел результат равен х1х2 с абсолютной погрешностью не более 1|x1| + 2|x2|, т.е. при этих операциях абсолютные погрешности складываются. При умножении (делении) результат равен x1x2 (x1/x2) с относительной погрешностью не более 1 + 2, т.е. складываются относительные погрешности. На современных ЭВМ числа записываются с 10 – 12 знаками, поэтому в расчёте на них погрешность единичного округления  = 10-1010-12 обычно пренебрежимо мала по сравнению с погрешностью метода и неустранимой погрешностью.

При решении больших задач выполняются миллиарды действий. Казалось бы, начальные ошибки возрастут в 109 раз и погрешность ответа будет огромной. Однако при отдельных действиях фактические погрешности чисел могут иметь разные знаки и частично компенсировать друг друга. Согласно статистике при N одинаковых действиях среднее значение суммарной ошибки превышает единичную примерно в N1/2 раз, а вероятность заметного уклонения суммарной ошибки от среднего значения очень мала. Значит, если нет систематических причин, то случайное накопление ошибок не слишком существенно.

Систематические причины возникают, например, если алгоритм таков, что в нём есть вычитание близких по величине чисел: хотя абсолютная ошибка при этом невелика, относительная ошибка  = (1|x1| + 2|x2|)/(x1x2) может стать большой. Например, при нахождении корней квадратного уравнения по обычной формуле

x2 + px – q = 0, x1,2 = - 0,5p  (0,25p2 + q)1/2

в случае, когда 0 < q << p, относительная ошибка округления для положительного корня х1 велика. Это надо заранее предусмотреть и преобразовать формулу так, чтобы избавиться от подобных вычитаний:



Этот пример очень прост. Существуют гораздо более сложные алгоритмы, где ошибки округления очень опасны: например, нахождение корней многочлена очень высокой степени или итерационное решение разностных схем для эллиптических уравнений (см. далее). В этих случаях только после серьёзного исследования удалось так видоизменить алгоритм, чтобы довести ошибки округления до безопасного уровня.

Отметим, что в большинстве подобных задач неприятностей можно избежать, проводя расчёт с двойной или тройной точностью. Такая возможность реализована в хороших математических обеспечениях ЭВМ, например, в хорошо известной математической системе MATLAB или в языке программирования Си. Это в несколько раз увеличивает время расчёта, зато позволяет пользоваться уже известными алгоритмами, а не разрабатывать новые.

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

Корректность. Задача у = А(х) называется корректно поставленной, если для любых входных величин х из некоторого класса решение у существует, единственно и устойчиво по входным данным.

Рассмотрим это определение подробнее. Чтобы численно решить задачу y = A(x), надо быть уверенным в том, что искомое решение существует. Естественно также требовать единственности решения точной задачи: численный алгоритм – однозначная последовательность действий, и она может привести к одному решению. В этом плане инженерные задачи не представляют проблем, поскольку моделируемые процессы непрерывно реализуются в технологических аппаратах и, следовательно, имеют решение. Вопрос о единственности решения не столь определён, поскольку для техники характерны процессы гистерезиса. Типичными примерами гистерезисных явлений являются процессы теплообмена при кипении, турбулентность и т.п.

Однако существования и единственности решения мало. Нас интересует решение у, соответствующее входным данным х. Но реально мы имеем входные данные с погрешностью х + х и находим у + у = А(х + х). Следовательно, неустранимая погрешность решения равна у = А(х + х) – А(х). Если решение непрерывно зависит от входных данных, т.е. всегда ||y||  0 при ||x||0, то задача называется устойчивой по входным данным; в противном случае задача неустойчива по входным данным.

Рассмотрим классический пример неустойчивости – поведение тяжёлой жидкости, налитой поверх лёгкой (так называемая рэлей-тейлоровская неустойчивость). Математическая модель этого явления представляет собой задачу Коши для эллиптического уравнения в полуплоскости у  0:

(1.8)

Входными данными является (х). Если (х) = 0, то задача имеет только тривиальное решение Если же то решением будет



Очевидно, n(x) равномерно сходится к при n  , но при этом если у0, то n(x, y) не ограничено и никак не может сходиться к

Отсутствие устойчивости обычно означает, что даже сравнительно небольшой погрешности х соответствует весьма большое у, т.е. получаемое в расчёте решение будет далеко от искомого. Непосредственно к такой задаче численные методы применять бессмысленно, так как погрешности, неизбежно появляющиеся при численном расчёте, будут катастрофически нарастать в ходе вычислений.

Правда, сейчас развиты методы решения многих некорректных задач. Но все они основаны на решении не исходной задачи, а близкой к ней вспомогательной корректно поставленной задачи, содержащей параметр ; при 0 решение вспомогательной задачи стремится к решению исходной задачи. Это так называемые методы регуляризации мы рассмотрим позже.

На практике даже не всякую устойчивую задачу легко решить. Пусть ||y||C||x||, причём константа С очень велика. Задача формально устойчива, но фактическая неустранимая ошибка может быть большой. Этот случай называют слабой устойчивостью (или плохой обусловленностью). Примером является такая задача:

y''(x) = y(x), (1.9,a)

y(0) = 1, y'(0) = - 1. (1.9,б)

Общее решение дифференциального уравнения (1.9,а) есть:

у(х) = 0,5[y(0) + y'(0)]e x + 0,5[y(0) – y'(0)]e -x .

Начальным условиям (1.9,б) соответствует точное решение у(х) = ех, но небольшая погрешность начальных данные может привести к тому, что в решении добавится слагаемое вида е х, которое при больших аргументах много больше искомого решения.

Очевидно, для хорошей практической устойчивости расчёта константа С должна быть не слишком велика. Так, например, если начальные данные известны точно, т.е. могут быть заданы с точностью до ошибок округления  10-12, то необходимо, чтобы C << 1012. Если же начальные данные найдены из эксперимента с точностью х  0,001, а требуемая точность решения у  0,1, то допустимо С  100.

Даже если задача устойчива, то численный алгоритм может быть неустойчивым. Например, если производные заменяются отношениями конечных разностей, то приходится вычитать близкие числа и сильно теряется точность. Эти неточные промежуточные результаты используются в дальнейших вычислениях, и ошибки могут сильно нарастать.

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

2. АППРОКСИМАЦИЯ ФУНКЦИЙ
При использовании численных методов, как уже отмечалось ранее, часто приходится в целях упрощения расчётов заменять некоторые функции у(х) их упрощенными (приближёнными) зависимостями. Отсюда вытекает задача: выполнить эту замену таким образом, чтобы приближённая зависимость была как можно более близкой к исходной функции.

2.1. Интерполирование

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

Функция у(х) может участвовать в каких-либо инженерных или чисто математических расчётах, где её приходится многократно вычислять. В этих случаях выгодно заменить функцию у(х) (аппроксимировать) приближённой формулой, т.е. подобрать некоторую другую функцию (х), которая близка в некотором смысле к у(х) и просто вычисляется. Затем при всех значениях аргумента полагают у(х)  (х). Близость получают введением в аппроксимирующую функцию свободных параметров a = {a1, a2, . . . , an} и соответствующим их выбором.

Подбор удачного вида функциональной зависимости (х, a) – искусство, но определение наилучших (в требуемом смысле) параметров формулы выполняется стандартными методами, которые и будут рассмотрены в этой главе.
  1   2   3   4   5   6   7   8


Учебный материал
© bib.convdocs.org
При копировании укажите ссылку.
обратиться к администрации