подпись, дата инициалы, фамилия




ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

 

к курсовому проекту (работе) по Информатике

наименование учебной дисциплины

 

На тему: Использование методов структурного программирования на примере
1.1Приближённого вычисления алгебраических и трансцендентных уравнений
методом золотого сечения
1.2 Решение системы линейных уравнений методом Зейделя
1.3 Умножение вектора на число

 

Автор проекта (работы) Гордеев А.А. Группа CРБ-11

подпись, дата, инициалы, фамилия

 

Специальность 210303 – «Бытовая радиоэлектронная аппаратура»
 

номер, наименование

 

Обозначение курсового проекта (работы) ТГТУ.210303.04
Руководитель проекта (работы) В.Н. Шамкин.
     

подпись, дата инициалы, фамилия

Проект (работа) защищен (а)   Оценка  
Члены комиссии  
  подпись. дата инициалы, фамилия
   
  подпись. дата инициалы, фамилия
   
  подпись. дата инициалы, фамилия
Нормоконтролер  
  подпись. дата инициалы, фамилия

Тамбов 2011 г

 

 


 

Аннотация

 

Курсовая работа по информатике на тему объектно-ориентированное программирование на примере численных методов: метод золотого сечения, метод Зейделя, умножение вектора на число; выполнена студентом группы СРБ-11 Гордеевым А.А., под руководством Шамкина В.Н.

Разработаны программы для нахождения корней уравнения методом золотого сечения, нахождения произведения вектора на число, нахождение корней системы линейных уравнений методом Зейделя.

 

 
 

 
СОДЕРЖАНИЕ

Введение……………………………………………………………………...2

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

Математическое описание методов………………………………………...4

2.1 Метод золотого сечения…………………………………………………4

2.2 Метод Зейделя……………………………………………….…...............5

2.3 Умножение вектора на число……………………………….…………...6

3Блок-схемы программ………………………………..…………….……….7

3.4 Главная программа……………………………………………………….7

3.1Метод золотого сечения ……………………….………………………..8

3.2 Метод Зейделя…………………………………………………...............9

3.3 Умножение вектора на число ………………………………..................11

Описание стандартных процедур и функций……………………...………12

Описание нестандартных процедур и функций…………………...………13

Описание интерфейса……………………………………………….............14

Численные примеры………………………………………………....………15

Заключение……………………………………………………………….......17

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

Приложение

Главная программа…………………………………………………….......20

2 Glav………………………………………………………………………21

3 Метод золотого сечения………………………………………...............22

4 Метод Зейделя…………………………………………………..............23

5 Умножение вектора на число …………………………….....................24

 

 
 

 

 


 
Введение

 

 

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

Подобные задачи решаются с помощью численных методов, разработанных для решения математических задач при помощи вычислительной техники на таких языках программирования, как: QBASIC, TURBO PASCAL, C++, DELPHI, VISUAL BASIC и д.р. пакеты программ. В частности, математические пакеты MathCAD, Maple, MathLab также дают возможность решения подобных задач, а так же оптимизации технологического процесса.

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

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

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

 

 

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

1.1 Составить программу для решения методом золотого сечения.

 

1.2 Составить программу для нахождение корня уравнения в точке методом Зейделя

 

1.3 Составить программу для нахождения произведения вектора на число

 

 
 

 

 

 


 
2 Математическое описание методов

Метод золотого сечения

Метод золотого сечения применяется для поиска минимума функции одного переменного на отрезке. Метод использует следующее свойство непрерывных функций: если точки g и h (g < h) расположены на (a, b) и f(g) <= f(h), то на отрезке [a, h] есть хотя бы один минимум функции. Аналогично, если f(g) >= f(h), то на отрезке [g, b] есть хотя бы один минимум.

Метод золотого сечения выбирает на отрезке две симметричные точки: g = A+(B-A)*(3-Sqrt(5))/2 и h = A+(B-A)*(Sqrt(5)-1)/2. Применяется указанная выше процедура, приводящая к отрезку [A, h] или [g, B] (для определенности рассмотрим первый вариант). Если повторить указанную процедуру, то можно опять уменьшить отрезок. Важным свойством алгоритма является то, что на каждом шаге можно использовать одно значение функции из предыдущего шага, т.к. при новом разбиении отрезка [A, h] точками h' и g', мы увидим, что h' = g. Т.е. на каждом шаге вычисляется только одно значение функции (и ещё два в самом начале работы). Суть метода ясна из рисунка 1.

Рис. 1

 
Метод обладает стабильной линейной скоростью сходимости, не зависящей от рельефа функции [1].

 

2.2МЕТОД ЗЕЙДЕЛЯ

Метод Зейделя, иногда называемый методом Гаусса-Зейделя, является модификацией метода простой итерации. Последний может применяться для решения систем линейных уравнений вида

d11x1+d12x2+…+d1nxn+b1=0

d21x1+d22x2+…+d2nxn+b2=0 /1/

……………………………

dn1­x1+dn2x2+…+dnnxn+bn=0

Приведём систему (1) к виду

x1=a11x1+a12x2+…+a1nxn+b1

x2=a21x1+a22x2+…+a2nxn+b2 /2/

…………………………….

xn=an1x1+an2x2+…+annxn+bn

, где aij=dij, i j, i, j=1, 2, 3,..., n, aii=dii+1,

или , где i=1,2,…,n, k=0,1,2,…,n.

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

или , i=1,2,…,n /3/

 
Целесообразно за компоненты начального вектора x0={ } выбирать приближенные значения корней системы, находимые грубой прикидкой, или вектор b={b1,b2,b3,…,bn}.

Основная идея метода Зейделя заключается в том, что при вычис­лении к+1 -го приближения неизвестной xi учитываются уже вычис­ленные ранее к+1 -е приближения неизвестных.

Пусть дана приведенная линейная система /2/. Выберем произ­вольно начальные приближения корней

.

Далее, предполагая, что к -е приближения корней известны, со­гласно методу Зейделя будем строить к+1 -е приближения корней по следующим формулам:

…………………………

………………………….

или , где i,k=1,2,…, n.

Указанные выше условия сходимости для метода простых итера­ций /3/ остаются верными для итерации по методу Зейделя.

Обычно метод Зейделя дает лучшую сходимость, чем метод про­стой итерации, однако возможны случаи, когда процесс Зейделя, сходится медленнее процесса итераций [3,4].

2.3УМНОЖЕНИЕ ВЕКТОРА НА ЧИСЛО

По определению, произведением вектора ={b1; b2;…; bn} на число λ называется вектор {λ*b1; λ*b2;…; λ*bn}. Для умножения вектора, то есть одномерного массива размерности n (b[1..n]), на число необходимо произвести n -ое количество вычислений [2].

 

 
 

 


Блок-схема программы GLAV

 

3.1Блок-схема модуля mygold1(процедура mugold)

3.2 Блок-схема модуля muzed1 (процедура myzed)

 
 

 

 

 


 

 

 
 

 

 


 

3.3 Блок-схема модуля mygold1 (функция vekt)

 

 
 

 

 


 
 

 


 
4 Описание стандартных процедур и функций

 

ClrScr – очищает экран.

Write – вывод значений на стандартное устройство (консоль) и в файл.

WriteLn – вывод значений на стандартное устройство (консоль) и в файл + перевод каретки.

Read – считать один или несколько символов после нажатия Enter.

ReadLn – считать один или несколько символов после нажатия Enter + перевод каретки.

ReadKey – считать один символ без нажатия Enter.

 

5 ОПИСАНИЕ НЕСТАНДАРТНЫХ ФУНКЦИЙ

MUGOLD- метод золотого сечения.

MUZED – метод Зейделя

VEKT– умножение вектора на число.

 

 

 
 

 

 


 
6 Описание интерфейса
 

 

╔═════════════════════════════════════╗ ║ Меню ║ ╠═════════════════════════════════════╣ ║ 1 - Метод Золотого сечения ║ ║ 2 - Умножение вектора на число ║ ║ 3 - Метод Зейделя ║ ║ 0 - Выход ║ ╚═════════════════════════════════════╝  
После запуска программы GLAV.exe на экране появляется меню,

 

 

в котором указаны пункты: 1, 2, 3, 0 они соответственно вызывают методы.При нажатии кнопки 1, 2, 3 вызывается метод, при нажатии 0 осуществляется выход в меню. После выполнения выбранного метода выводится меню повторить (y) или нет (n)

Повтор (y/n)

при нажатии «y» программа повторяется, а при нажатии «n» программа завершается.

 

Пример решения задания методом золотого сечения:

 
 

 


Пример решения задания методом Зейделя:

Пример решения задания умножения вектора на число:

 

 

 
7 Численные примеры

7.1 МЕТОД ЗОЛОТОГО СЕЧЕНИЯ

Корень уравнения 2x+2*x2-3=0 на отрезке [0;2] равен 0.795.

Проверяем полученный корень с помощью программы

x y
-1,8 3,767175
-1,6 2,449877
-1,4 1,298929
-1,2 0,315275
-1 -0,5
-0,8 -1,14565
-0,6 -1,62025
-0,4 -1,92214
-0,2 -2,04945
  -2
0,2 -1,7713
0,4 -1,36049
0,6 -0,76428
0,8 0,021101
   
1,2 2,177397
1,4 3,559016
1,6 5,151433
1,8 6,962202

MicrosoftExel2003. E

В таблице и на графике функции видно, что корень 0.795..

7.2 МЕТОД ЗЕЙДЕЛЯ

Корни системы линейных уравнений 3x1-0.01x2+0.5x3=-2

0.28x1+4x2+0.03x3=3

0.06x1-0.8x2-2x3=0,1

равны x1=-0.59969, x2=0.79487, x3=-0.38594. Проверяем полученные корни с помощью программы Maple V Release 4.00a.

> restart: with(linalg): A:=matrix([[3,-0.01,0.5],[0.28,4,0.03],[0.06,-0.8,-2]]);

3 -0.01 0.5

A:= 0.28 4 0.03

0.06 -0.8 -2

> b:=vector([-2,3,0.1]);

b:= [-2, 3, 0.1]

> x:=linsolve(A,b);

x:= [-0.5996937467, 0.7948731129, -0.3859400575]

7.3 УМНОЖЕНИЕ ВЕКТОРА НА ЧИСЛО

Умножаем вектор на число 4.

Получаем произведение вектора на число равное . Проверяем полученный ответ при помощи программы Maple V Release 4.00a.

> b:=vector([-2,3,0.1]);

b:= [-2, 3,.1]

> x:=4;

x:= 4

> for i from 1 do b[i]:=b[i]*x od: print(b);

 
[-8, 12, 0.4]

так как ответы сходятся то полученное произведение вектора на число верно.

Итак, ответы сходятся, что свидетельствует о правильности программы.

 

       
   
 
 
 

 


 

Заключение

 

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

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

В процессе создания программы приобретен навык работы с процедурами, функциями, объектами и модулями.

Недостатки программы: метод золотого сечения разработан только для определённого уравнения (y=2x+2x2-3), изменение уравнения требует перепрограммирования и перекомпилирования программы. Метод Зейделя работает только с системой 3 линейных уравнений, изменение функции требует перепрограммирования и перекомпилирования программы.

 

 

 

 

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

 

 

1.Воробьев Г.Н., Бахвалов Н.С. «Численные методы». М.: Наука, 1973. 231с.

2. Ефимов А.В., Демидович Б.П. «Линейная алгебра и основы математического анализа». М.: Наука, 1981. 386с.

3. Бараненков Г.С., Демидович Б.П. «Задачи и упражнения по математическому анализу для ВТУЗОВ». М.: Наука, 1980. 184с.

4. Абрамов С.А., Зима Е.В. «Начало программирования на языке Паскаль». М.: Наука, 1987. 8с.

5. Епанешников А.Е., Красильников Ю.И. «Программирование в среде турбо Паскаль». М.: Центр МИФИ СП Диалог, 1990. 3-6с.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-02-24 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: