Тема курсовой работы
Вид материала | Документы |
СодержаниеИсходные данные Результаты расчета Контрольный пример 2.1 Блок-схема алгоритма функции Calculate(метод хорд) Копии экранных форм программы |
- Методические указания по выполнению курсовой работы 11 Тема курсовой работы, 211.19kb.
- Методические рекомендации по организации и защите курсовой работы по дисциплине для, 794.15kb.
- Требования к написанию курсовой работы, 54.49kb.
- Методические указания к выполнению курсовой работы по дисциплине " информационные технологии, 233.79kb.
- 1. составление плана курсовой работы, 485.55kb.
- О. А. Иванова Методические указания по выполнению курсовых работ для студентов всех, 314.38kb.
- Учебно-методическое пособие содержит следующие структурные разделы: введение, цели, 335.07kb.
- Методические рекомендации по написанию курсовой работы, 95.34kb.
- Рекомендации по написанию Курсовой работы При выполнении данной Курсовой работы используйте, 92.33kb.
- Рекомендации по написанию Курсовой работы При выполнении данной Курсовой работы используйте, 80.88kb.
Тема курсовой работы
Метод хорд
Постановка задачи
Вычислить корень уравнения
![](images/188558-nomer-m650642a2.gif)
![](images/188558-nomer-m4133af86.gif)
![](images/188558-nomer-3799f239.gif)
Цель работы
Изучить метод нахождения корней уравнений методом хорд. Составить программу расчета корней уравнения
![](images/188558-nomer-m650642a2.gif)
Исходные данные
Функция
![](images/188558-nomer-m1f3ee7ad.gif)
Начальные приближения
![](images/188558-nomer-37bf437a.gif)
![](images/188558-nomer-4dfc5230.gif)
Значения параметра
![](images/188558-nomer-64a59783.gif)
![](images/188558-nomer-7295d3.gif)
Выходные данные
Значение функции на заданном отрезке. График функции в соответствующем интервале.
Математическая модель (краткая теория)
Метод хорд – итерационный метод нахождения корня уравнения.
Этот метод применяется при решении уравнений вида
![](images/188558-nomer-7d094728.gif)
![](images/188558-nomer-m3de9b354.gif)
1)
![](images/188558-nomer-5bdbbc50.gif)
![](images/188558-nomer-m650642a2.gif)
![](images/188558-nomer-m4133af86.gif)
2) производная
![](images/188558-nomer-50b4edd7.gif)
![](images/188558-nomer-m4133af86.gif)
![](images/188558-nomer-m650642a2.gif)
![](images/188558-nomer-485428b6.gif)
Идея метода состоит в том, что по двум точкам
![](images/188558-nomer-1e526115.gif)
![](images/188558-nomer-m21f5f648.gif)
![](images/188558-nomer-6131f8aa.gif)
![](images/188558-nomer-m4e483e11.gif)
![](images/188558-nomer-m76f287f8.gif)
![](images/188558-nomer-m6b4a6262.gif)
![](images/188558-nomer-m4adb8f81.gif)
![](images/188558-nomer-369ca30f.gif)
![](images/188558-nomer-13d7a51a.gif)
![](images/188558-nomer-20aebf10.gif)
![](images/188558-nomer-581f7e28.gif)
![](images/188558-nomer-m760ca436.gif)
![](images/188558-nomer-m4adb8f81.gif)
![](images/188558-nomer-13d7a51a.gif)
![](images/188558-nomer-20aebf10.gif)
В зависимости от того, лежат ли точки
![](images/188558-nomer-144cddfe.gif)
![](images/188558-nomer-78d63c01.gif)
![](images/188558-nomer-m4fc8ca2e.gif)
![](images/188558-nomer-23d20b7b.png)
Итак, очередное приближение будет зависеть от двух предыдущих:
![](images/188558-nomer-m491e7fde.gif)
![](images/188558-nomer-m254d097a.gif)
Интерполяционную линейную функцию
![](images/188558-nomer-m2d609dbe.gif)
![](images/188558-nomer-508f3f2.gif)
![](images/188558-nomer-13d7a51a.gif)
![](images/188558-nomer-20aebf10.gif)
![](images/188558-nomer-4d313bf8.gif)
![](images/188558-nomer-m344cad43.gif)
Решая уравнение
![](images/188558-nomer-4bc7b904.gif)
![](images/188558-nomer-m30456ced.gif)
![](images/188558-nomer-10255621.gif)
Заметим, что величина
![](images/188558-nomer-6b4a3cdb.gif)
![](images/188558-nomer-16359e0e.gif)
![](images/188558-nomer-78d63c01.gif)
Имеются две разновидности применения формулы (1).
Первая разновидность:
вычисления ведутся непосредственно по формуле (1) при
![](images/188558-nomer-m6b00b69f.gif)
![](images/188558-nomer-507c66af.gif)
![](images/188558-nomer-ec05477.gif)
![](images/188558-nomer-m4fc8ca2e.gif)
![](images/188558-nomer-m4fc8ca2e.gif)
![](images/188558-nomer-507c66af.gif)
![](images/188558-nomer-ec05477.gif)
![](images/188558-nomer-m650642a2.gif)
![](images/188558-nomer-507c66af.gif)
![](images/188558-nomer-ec05477.gif)
![](images/188558-nomer-507c66af.gif)
![](images/188558-nomer-ec05477.gif)
![](images/188558-nomer-m3ddcbc56.gif)
![](images/188558-nomer-m4fc8ca2e.gif)
![](images/188558-nomer-786dce66.gif)
![](images/188558-nomer-3bf45fa5.gif)
![](images/188558-nomer-196346fc.gif)
Вторая разновидность:
называется методом ложного положения. Предположим, что корень
![](images/188558-nomer-m4fc8ca2e.gif)
![](images/188558-nomer-507c66af.gif)
![](images/188558-nomer-ec05477.gif)
![](images/188558-nomer-3b3ff52.gif)
![](images/188558-nomer-4fe835ce.gif)
![](images/188558-nomer-m3ddcbc56.gif)
![](images/188558-nomer-m57280128.gif)
![](images/188558-nomer-144cddfe.gif)
![](images/188558-nomer-m3ddcbc56.gif)
![](images/188558-nomer-78d63c01.gif)
![](images/188558-nomer-m3ddcbc56.gif)
![](images/188558-nomer-4414851d.gif)
![](images/188558-nomer-144cddfe.gif)
![](images/188558-nomer-m3ddcbc56.gif)
![](images/188558-nomer-78d63c01.gif)
![](images/188558-nomer-144cddfe.gif)
![](images/188558-nomer-m57280128.gif)
![](images/188558-nomer-m4fc8ca2e.gif)
![](images/188558-nomer-78d63c01.gif)
![](images/188558-nomer-m3ddcbc56.gif)
![](images/188558-nomer-m211336ed.gif)
![](images/188558-nomer-196346fc.gif)
![](images/188558-nomer-m5af6f0c.gif)
Результаты расчета
При вычислении методом хорд функции
![](images/188558-nomer-m1f3ee7ad.gif)
![](images/188558-nomer-37bf437a.gif)
![](images/188558-nomer-4dfc5230.gif)
![](images/188558-nomer-64a59783.gif)
![](images/188558-nomer-7295d3.gif)
S | 1 | 2 | 3 |
X | 1 | 0,25 | 0,209064 |
Контрольный пример
Для оценки правильности полученный алгоритм и составленную программу проверяем на тестовом примере. В качестве примера берём интервал [-1; 0,7]. Полученные значения представлены в таблице:
S | 1 | 2 |
x | 1 | 0,25 |
Все вычисления были проверены в MS Excel. Вычисленные значения соответствуют действительности.
Описание алгоритма в псевдокодах
- Вводим интервал [a, b]
- Выбираем значение параметра s
- Проверяем правильность введённых данных
- Если данные введены неправильно, то выводится сообщение об ошибке.
- Вычисляем корень используя метод хорд.
- Строим график.
2. Блок-схема (Основной алгоритм):
![](images/188558-nomer-m3f1f43dd.gif)
2.1 Блок-схема алгоритма функции Calculate(метод хорд):
![](images/188558-nomer-m52c2ffb4.gif)
Код программы
Private Sub Form_Load()
cbx_s.AddItem ("1")
'Добавляем элементы S в CheckBox
cbx_s.AddItem ("2")
cbx_s.AddItem ("3")
cbx_s.ListIndex = 0
'Выбираем первым элемент 0
End Sub
Private Function func(x As Variant) As Double
'Вычисление значения функции
func = s * x - (Cos(pi * x) * Cos(pi * x))
End Function
Private Sub Draw()
picGraph.Cls
'Задание масштаба
picGraph.Scale (-3, 2)-(3, -2)
'Построение графика функции
For sngX = -3 To 3 Step 0.001
picGraph.PSet (sngX, func(sngX))
Next sngX
'Ось Х
picGraph.Line (-3, 0)-(3, 0)
For bytI = -3 To 3
picGraph.PSet (bytI, 0)
picGraph.Print bytI
Next bytI
'Ось Y
picGraph.Line (0, 2)-(0, -2)
For bytI = -2 To 2
picGraph.PSet (0, bytI)
picGraph.Print bytI
Next bytI
End Sub
Private Function Calculate(a As Variant, b As Variant) As Double
'Метод хорд
Dim eps As Double
eps = 0.0000001
s = cbx_s.Text
While (Abs(b - a) > eps)
'Проверяем достигнута ли точность
a = b - (b - a) * func(b) / (func(b) - func(a))
'новое значение а
b = a - (a - b) * func(a) / (func(a) - func(b))
'новое значение b
Wend
Calculate = b
'Возвращаем результат вычислений
End Function
Private Sub btnStart_Click()
Dim a As Double
Dim b As Double
On Error GoTo ErrorHandler
'Если ошибка(мы ввели буквы вместо цифр или "." вместо ",") то перейдем на метку ErrorHandler:
a = txtA.Text
b = txtB.Text
If a > b Then
'Проверка на корректность начальных значений
MsgBox "'A' не может быть больше 'B'", , "Error"
ElseIf a < -3 Then
MsgBox "'A' не может быть меньше -3", , "Error"
ElseIf a > 0 Then
MsgBox "'A' не может быть больше 0", , "Error"
ElseIf b > 3 Then
MsgBox "'B' не может быть больше 3", , "Error"
ElseIf b < 0 Then
MsgBox "'B' не может быть меньше 0", , "Error"
Else
'Если значения корректны, считаем и рисуем
lblResult.Caption = Format(Calculate(a, b), "0.000000")
'Вывод результата в заданном формате
Draw
'Рисуем график
End If
Exit Sub
ErrorHandler:
'Если произошла ошибка переходим сюда
MsgBox "Введите другие границы", , "Error"
End Sub
Private Sub mnuAutor_Click()
frmAutor.Show
End Sub
Private Sub mnuProgram_Click()
frmProgram.Show
End Sub
Private Sub mnuSave_Click()
Open "D:\example.txt" For Output As #1
Print #1, lblResult.Caption
Close #1
Print "Ваши данные в файле example.txt на диске D"
End Sub
'при нажатии мыши пишет значения x и y
Private Sub picGraph_MouseUp(Button As Integer, Shift As Integer, x As Single, F As Single)
picGraph.PSet (x, F)
picGraph.ForeColor = vbRed
picGraph.Print "x="; x; "F(x)="; F
End Sub
К
![](images/188558-nomer-36a6b3ba.png)
![](images/188558-nomer-m2652d050.png)
![](images/188558-nomer-45358e3d.png)
Список использованных источников
- Дэвид Дж.Луенбергер. Информатика. – «Техносфера», Москва, 2008г.
- ссылка скрыта.
- Кнут Д. Искусство программирования для ЭВМ. Т.1. Основные алгоритмы. – М.: Мир, 1976 г.
- Вирт Н. Алгоритмы+структуры данных = программы. М.: Мир, 1985 г.
- Линке М. Visual Basic 5. Справочник: Пер. с нем. – М.: ЗАО «Издательство БИНОМ», 1998 г.
- Шмидт В. Visual Basic 5.0. – М.: АБФ, 1997 г.
- Крис Паппас Visual С ++ 6 «Ирина», ВНV, – Киев 2000 г.
- Глаголев В.Б. Персональный сайт «Информатика» (ссылка скрыта).
- Шевченко А.Г. Сетевой обучающий курс «Основные информационные ресурсы WWW» (ссылка скрыта).
- Программа Visual Basic.