Введение
Внедрение ЭВМ во все сферы человеческой деятельности требует от специалистов разного профиля овладения навыками использования вычислительной техники. Повышается уровень подготовки студентов вузов, которые уже с первых курсов приобщаются к использованию ЭВМ и простейших численных методов, не говоря уже о том, при что выполнении курсовых и дипломных проектов применение вычислительной техники становится нормой в подавляющем большинстве вузов.
Вычислительная техника используется сейчас не только в инженерных расчетах и экономических науках, но и таких традиционно нематематических специальностях, как медицина, лингвистика, психология. В связи с этим можно констатировать, что применение ЭВМ приобрело массовый характер. Возникла многочисленная категория специалистов - пользователей ЭВМ, которым необходимы знания по применению ЭВМ в своей отрасли - навыки работы с уже имеющимся программным обеспечением, а так же создания своего собственного ПО, приспособленного для решения конкретной задачи. И здесь на помощь пользователю приходят описания языков программирования высокого уровня (далее ЯВУ) и численные методы (далее ЧМ).
ЧМ разрабатывают и исследуют, как правило, высококвалифицированные специалисты-математики. Для большинства пользователей главной задачей является понимание основных идей и методов, особенностей и областей применения.
Однако, пользователи хотят работать с ЭВМ не только как с высокоинтеллектуальным калькулятором, а еще и как с помощником в повседневной работе, хранилищем информации с быстрым и упорядоченным доступом, а так же с источником и обработчиком графической информации. Все эти функции современной ЭВМ я предполагаю продемонстрировать в настоящей курсовой работе.
В первой части работы представлена программа по нахождению корней системы из двух нелинейных уравнений методами Ньютона и простых итераций.
Во второй части моей работы представлена программа, демонстрирующая пользователю всю мощь и многообразие графических возможностей современных ПК на примере применения графических функций языка С++ с использованием VGA-графики.
В третьей части работы представлена программа «Электронной записной книжки», которая имеет и практическое значение для пользователей маломощных персональных компьютеров и ПК блокнотов с малым дисковым ресурсом для которых нерентабельна эксплуатация ПО типа Lotus Organizer и подобных ПО с мощным графическим интерфейсом.
К моему сожалению из-за отсутствия необходимого справочного материала мне не удалось продемонстрировать в третьей части SUPER VGA-графику, но это дело недалекого будущего. Первая и вторая части работы выполнены с применение языка С++ фирмы Borland версии 3.1 для DOS и WINDOWS, а третья часть выполнена на ЯВУ «Турбо Паскаль» версии 7.0 для DOS и WINDOWS фирмы Borland с применением средств TURBO VISION.
Теоретическая часть.
Этапы решения задачи на ЭВМ.
Наиболее эффективное применение ВТ нашла при проведении трудоемких расчетов в научных исследованиях и инженерных расчетах. При решении задачи на ЭВМ основная роль все-таки принадлежит человеку. Машина лишь выполняет его задания по разработанной программе. роль человека и машины легко уяснить, если процесс решения задачи разбить на перечисленные ниже этапы.
Постановка задачи. Этот этап заключается в содержательной (физической) постановке задачи и определении конечных решений.
Построение математической модели. Модель должна правильно (адекватно) описывать основные законы физического процесса. Построение или выбор математической модели из существующих требует глубокого понимания проблемы и знания соответствующих разделов математики.
Разработка ЧМ. Поскольку ЭВМ может выполнять лишь простейшие операции, она «не понимает» постановки задачи, даже в математической формулировке. Для ее решения должен быть найден численный метод, позволяющий свести задачу к некоторому вычислительному алгоритму. В каждом конкретном случае необходимо выбрать подходящее решение из уже разработанных стандартных.
Разработка алгоритма. Процесс решения задачи(вычислительный процесс) записывается в виде последовательности элементарных арифметических и логических операций, приводящей к конечному результату и называемой алгоритмом решения задачи.
Программирование. Алгоритм решения задачи записывается на понятном машине языке в виде точно определенной последовательности операций - программы. Процесс обычно производится с помощью некоторого промежуточного языка, а ее трансляция осуществляется самой машиной и ее системой.
Отладка программы. Составленная программа содержит разного рода ошибки, неточности, описки. Отладка включает контроль программы, диагностику (поиск и определение содержания) ошибок, и их устранение. Программа испытывается на решении контрольных (тестовых) задач для получения уверенности в достоверности результатов.
Проведение расчетов. На этом этапе готовятся исходные данные для расчетов и проводится расчет по отлаженной программе. при этом для уменьшения ручного труда по обработке результатов можно широко использовать удобные формы выдачи результатов в виде текстовой и графической информации, в понятном для человека виде.
Анализ результатов. Результаты расчетов тщательно анализируются, оформляется научно-техническая документация.
Математические модели.
Основное требование, предъявляемое к математической модели, - адекватность рассматриваемому процессу, явлению, т.е. она должна достаточно точно ( в рамках допустимой погрешности) отражать характерные черты явления. Вместе с тем она должна обладать сравнительной простотой и доступностью исследования.
Адекватность и сравнительная простота модели не исчерпывают предъявляемых к ней требований. Необходимо обратить внимание на правильность оценки области применимости математической модели. Например, модель свободно падающего тела, в которой пренебрегли сопротивлением воздуха, весьма эффективна для твердых тел с большой и средней плотностью и формой поверхности, близкой к сферической. Вместе с тем, в ряде других случаев для решения задачи уже не достаточно известных из курса физики простейших формул. Здесь необходимы более сложные математические модели, учитывающие сопротивление воздуха и прочие факторы. Отметим, что успех решения задачи в значительной степени определяется выбором математической модели; здесь в первую очередь нужны глубокие знания той области, к которой принадлежит поставленная задача. Кроме того, необходимы знания соответствующих разделов математики и возможностей ЭВМ.
Численные методы.
С помощью математического моделирования решение научно-технической задачи сводится к решению математической задачи, являющейся ее моделью. Для решения математических задач используются основные группы методов: графические, аналитические, численные.
Графические методы позволяют в ряде случаев оценить порядок искомой величины. Основная идея этих методов состоит в том, что решение находится путем геометрических построений. Например, для нахождения корней уравнения f(x)=0 строится график функции y=f(x), точки пересечения которого с осью абсцисс и будут искомыми корнями.
При использовании аналитических методов решение задачи удается выразить с помощью формул. В частности, если математическая задача состоит в решении простейших алгебраических или трансцендентных уравнений, дифференциальных уравнений и т.п., то использование известных из курса математики приемов сразу приводит к цели. К сожалению, на практике это слишком редкие случаи.
Основным инструментом для решения сложных математических задач в настоящее время являются численные методы, позволяющие свести решение задачи к выполнению конечного числа арифметических действий над числами; при этом результаты получаются в виде числовых значений. Многие ЧМ разработаны давно, однако при вычислениях вручную они могли использоваться лишь для решения не слишком трудоемких задач.
С появлением ЭВМ начался период бурного развития ЧМ и их внедрения в практику. Только вычислительной машине под силу выполнить за сравнительно короткое время объем вычислений в миллионы, миллиарды и более операций, необходимых для решения многих задач. При счете вручную человеку не хватило бы жизни для решения одной такой задачи. ЧМ наряду с возможностью получения результата за приемлемое время должен обладать и еще одним важным качеством - не вносить в вычислительный процесс значительных погрешностей.
Численные методы, используемые в данной работе.
При написании программы решения системы из двух нелинейных уравнений мною использовались два известных и широко применяемых численных метода. Это метод Ньютона и метод простых итераций.
Метод Ньютона. Этот метод обладает быстрой сходимостью и сравнительно хорошей точностью вычислений. В случае одного уравнения F(x)=0 алгоритм метода был легко получен путем записи уравнения касательной к кривой y=F(x). В основе метода ньютона для системы уравнений лежит использование разложения функций Fi(x1,x2,...xn) в ряд Тейлора, причем члены, содержащие вторые (и более высоких порядков) производные, отбрасываются.
Пусть приближенные значения неизвестных системы уравнений
F1(x1,x2,...xn)=0,
F2(x1,x2,...xn)=0,
................ (1)
Fn(x1,x2,...xn)=0,
(например, полученные на предыдущей итерации) равны соответственно a1,a2,...an. Задача состоит в нахождении приращений (поправок) к этим значениям ?x1,??x2,....,??xn, благодаря которым решение системы (1) запишется в виде:
xi=ai+??x1, x2=a2+??x2,...,xn,=an+??xn. (2)
Проведем разложение левых частей уравнений (1) в ряд Тейлора, ограничиваясь лишь линейными членами относительно приращений:
F1(x1,x2,...xn)??F1(a1,...an)+
F2(x1,x2,...xn)??F2(a1,...an)+
..............................................
Fn(x1,x2,...xn)??Fn(a1,...an)+.
Поскольку в соответствии с (1) левые части этих выражений должны обращаться в нуль, то приравняем нулю и правые части. Получим следующую систему линейных алгебраических уравнений относительно приращений:
=-F1
=-F2 (2)
............................
=-Fn
Значения F1,F2,...,Fn и их производные вычисляются при x1=a1, x2=a2,...xn=an.
Определителем системы (2) является якобиан:
J=
Для существования единственного решения системы (2) он должен быть отличным от нуля на каждой итерации.
Таким образом, итерационный процесс решения системы уравнений (1) методом Ньютона состоит в определении приращений ?x1,??x2,...??xn, к значениям неизвестных на каждой итерации. Счет прекращается, если все приращения становятся малыми по абсолютной величине: max|??xi|