Компьютерное моделирование вычислительных задач в различных средах программного обеспечения

Волжский государственный инженерно–педагогический университет



Институт дизайна















Курсовая работа

Тема:

“Компьютерное моделирование вычислительных задач в различных средах программного обеспечения”













Выполнил: Чесноков Д.С.

Проверил: Ершов В.Н.













Нижний Новгород

2010г


Содержание



Введение

1. Постановка задачи

2. Метод отделения корней

2.1. Графический метод

2.2. Аналитический метод

3. Метод уточнения корней

3.1 Метод половинного деления

3.2 Метод последовательных приближений

3.3 Метод Ньютона

4. Анализ результатов

Заключение

Список используемой литературы




Введение



Существует значительное число различных программных продуктов (Mathcad, Excel и т.д.), с помощью которых можно решать различные математические задачи.

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

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

Pascal - высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в промышленном программировании, а также очень часто в обучении программированию в высшей школе, является базой для большого числа других языков. Был создан Никлаусом Виртом в 1968-69 годах.




1. Постановка задачи



Нам дано уравнение , нужно найти корни этого уравнения на интервале x[1;3], с шагом h=0,2. Точные значения корней уравнения можно найти лишь в простейших случаях таких как (ax2+bx+c=0; cos(x)=a и т.д.). В нашем случае это вызывает затруднения. Кроме того, коэффициенты некоторых уравнений есть приближённые числа, поэтому нельзя говорить о нахождении точных коней.

Будем считать что наше уравнение  имеет только действительные корни. Тогда нахождение этих корней с заданной точностью необходимо проводить в два этапа:

Отделение корней, т.е. нахождение достаточно малых промежутков, в которых содержится только один корень уравнения; Методы отделения корней весьма удобны и просты. Однако они дают только ответ на вопрос локализации корня и позволяют найти его грубое приближённое значение. В методы отделения корней входят графический метод, т.е построение графика функции y= f(x) и аналитический метод.

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

В данной курсовой работе все методы будут выполнены в специальных программах таких как: Excel, MathCAD и на языке программирования высокого уровня Pascal.




2. Метод отделения корней



2.1 Графический метод



Графический метод основан на построении графика функции y=f(x). Он может быть реализован в два способа. Корнем уравнения будет отрезок оси абсцисс, содержащий точку пересечения графика с этой осью. Во втором способе исходную функцию можно представить в виде двух более простых функций f(x)=g(x)-g1(x) и строить два графика.









Реализация графического метода в пакете Excel.

Реализация графического метода в пакете MathCAD.

Таким образом, искомый корень уравнения находится на отрезке [1,8;2]



2.2 Аналитический метод





Начало

Ввод x0, xn, h

	a:=x0

	b:=a+h

f(a)*f(b)<0

Печать a,b

	a:=b

a<=xn

Печать «конец интервала поиска»

Конец

Да

Да

Нет

НетБлок-схема

















Pascal.






3. Метод уточнения корней



Методы отделения корней весьма удобны и просты. Однако они дают ответ только на вопрос локализации корня и позволяют найти приближённое значение. Если же требуется найти более точное значение корня, то используют различные методы уточнении.



3.1 Метод половинного деления



Для данного метода нужен отрезок [a;b] с корнем непрерывной функции f(x) внутри и точность определения корня, которая задаётся “e”



Реализация метода в пакете Excel.




Реализация метода в пакете MathCad.





Реализация метода половинного деления в Pascal

Блок-схема





Начало

Ввод a ,b, eps

	Xср= 

f(a)*f(xср)<0

Печать  

	a:=Xср

|a-b|<eps

Конец

Да

Да

Нет

Нет

	b:=Xср








3.2 Метод последовательных приближений



Наше уравнение  преобразуем к виду x=. Если на рассматриваемом интервале изоляции корня [1,8;2] ||<1 ,то расчётная формула примет такой вид :  , и при этом итерационный процесс приближения к корню будет сходящимся. В нашем случае выбор расчётной формулы исходного выражения очень затруднителен, поэтому воспользуемся следующим приёмом. Введём в рассмотрение произвольный параметр л>0. Тогда функция  можно представить как  .

Затем просто варьируем параметр л, добиваемся условия сходимости: ||<1 на интервале изоляции корня [1,8 ; 2]. . Для выполнения сходимости  на интервале изоляции корня [1,8; 2]. Производная исходного уравнения равна:.

Для этого примера запишем следующее:



.



Расчётная формула метода итерации примет вид:









Реализация метода в Pascal.



Печать “корень не найден”

	n:=n+1

	x0:=x1

Нет

Печать x1, n

Да

|f(x1)|<E

	x0: 

	n:=1

Нет

Да

Конец

n≤k

Ввод x0,k

Начало









































3.2 Метод последовательных приближений



Реализация метода в MathCad





Реализация метода в Excel






3.3 Метод Ньютона



Этот метод можно рассматривать как частный случай метода простой итерации и рекуррентной формулой  и тем же принципом выбора начального приближения x0. Процесс интеграции идёт до тех пор, пока. В случае неудачного выбора рекуррентной формулы получается расходящийся процесс, и условие сравнения с точностью не достигается. Для исключения подобной ситуации введём счётчик итерации n , увеличивающийся каждый раз на единицу, и поставим искусственное условие продолжения итерации в случае n<=k. В противной случае завершим алгоритм с выводом текстового сообщения о невозможности получения корня за заданное количество k шагов.

Реализация метода в MathCad







Реализация метода в Excel






Реализация метода в Pascal

Блок-схема.





Начало

Ввод x0,k

n≤k

Конец

Да

Нет

	n:=1

	x0:= 

|f(x1)|<E

Да

Печать x1, n

Нет

	x0:=x1

	n:=n+1

Печать “корень не найден”




Программа на Pascal.






4. Анализ результатов



Таким образом как видно из выше представленной таблицы более точные результаты корня получены в средах Excel и Pascal, хотя сам процесс уточнения был более прост и быстр в среде MathCAD. В среде MathCAD уже заложены специальные формулы, которые позволяют найти более точное значение уже со второго приближения. Уточнение корня напрямую зависит от точности его нахождения Е, чем меньше, тем точнее будет корень.








Заключение



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




Список используемой литературы



Методическая рекомендация к выполнению курсовой работы по информатике. В.Н. Ершов

Общедоступная энциклопедия http://ru.wikipedia.org

Учебно-методическое пособие к выполнению курсовой работы “Численные методы”. В.Н. Ершов