Первый пример выполнения задания




 

1) Тема и название лабораторной работы:

Программирование алгоритмов итеративных циклических структур.

Вычисление с заданной точностью корня заданного уравнения.

2) Фамилия, имя студента, номер группы, номер варианта:

Иванов И., БИН1405, вариант 13.

3) Задание на разработку проекта:

Создайте проект с именем Проект-6-1 для вычисления с точностью
ε=10-5 корня уравнения f(x)=x3 - 2x2+x - 3=0, воспользовавшись

формулой

4) Формализация и уточнение задания:

Проверьте правильность решения подстановкой найденного корня в уравнение. Разработайте схему алгоритма и напишите программный код проекта в соответствии с заданием.

Вычислите производную f’(x)=3x2-4x+1 и обозначьте:

· x – текущее приближение к корню;

· a – предыдущее приближение;

· f – значение функции f(x) для предыдущего значения;

· p – значение производной f'(x) для предыдущего значения;

· i – номер итерации, совпадающий с номером текущего приближения к корню;

· y – значение функции f(x) для найденного с заданной точностью корня.

 

Будем считать, что заданная точность ε обеспечена, если модуль разности между текущим и предыдущим значениями корня меньше точности ε, то есть для нашего случая |x-a| < ε.

Для решения поставленной задачи необходимо реализовать процедуру
Kop(), которая в качестве входных параметров получает начальное значение x0=2.2 и точность ε=10-5, и возвращает найденный корень xl. Процедура для вычисления корня по заданной формуле должна использовать две процедуры Function: одна – Funy(), вычисляет значение f(x), а другая – Fproiz() – значение производной этой функции ’(x). Заметим, что процедуру Kop() можно было оформить как Function, так как она возвращает только одно значение – вычисленный корень уравнения.

5) Элементы, разрабатываемого проекта:

5.1) Графический интерфейс пользователя:

Разработанная форма проекта имеет вид, как на рис. 4.6.4-1.

Рис. 4.6.4-1. Форма проекта 1-го задания Проект 6-1:
Вычисление с заданной точностью корня уравнения x3-2x2+x-3=0

 

5.2) Таблица свойств объектов:

установите и сведите в табл. 4.6.4-2 свойства объектов.

 

Таблица 4.6.4-2

Имя объектов Свойство Значение свойства
Form1 Text Проект 4.6.1. Программирование алгоритмов итеративных циклических структур
Label1 Name Label1
Text Вычисление корня уравнения f(x)=x^3-2x^2+x-3=0
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 10 пунктов
Label2 Name Label2
Text E=
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
Label3 Name Label3
Text X0=
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
Label4 Name Label4
Text Итерация
ForeColor Черный
Font Microsoft Sans Serif, Обычный, 8 пунктов
Label5 Name Label5
Text Приближенный корень
ForeColor Черный
Font Microsoft Sans Serif, Обычный, 8 пунктов
Label6 Name Label6
Text Решение x= y=
ForeColor Черный
Font Arial, Жирный, 12 пунктов
TextBox1 Name TextBox1
ForeColor Черный
Font Microsoft Sans Serif, Обычный, 8 пунктов
TextBox2 Name TextBox2
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox3 Name TextBox3
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox4 Name TextBox4
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
ListBox1 Name ListBox1
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
ListBox2 Name ListBox2
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
Button1 Name Button1
Text Выполнить
Button2 Name Button2
Text Конец

5.3) Схемы алгоритмов процедур проекта:

схема алгоритма процедуры Kop() представлена на рис. 4.6.4-2.

 

Рис. 4.6.4-2. Схема алгоритма процедуры Kop(x) проекта Проект 6-1: Вычисление с заданной точностью корня уравнения x3-2x2+x-3=0

5.4) Программный код проекта:

разработанный программный код проекта приведен на
рис. 4.6.4-3.

 

Imports System.Math Public Class Form1 'Функция ввода исходных данных из TextBox Function vvod(ByVal T As TextBox) As Double Return Val(T.Text) End Function 'Процедура вывода вещественного результата в TextBox Sub vivod(ByVal Z As Double, ByVal T As TextBox) T.Text = CStr(Z) End Sub 'Процедура вывода вещественного результата в ListBox Sub vivodList(ByVal Z As Double, ByVal LB As ListBox) LB.Items.Add(CStr(Z)) End Sub ' Процедура вывода целого результата в ListBox Sub vivodListint(ByVal Z As Integer, ByVal LB As ListBox) LB.Items.Add(CStr(Z)) End Sub 'процедура-Function, вычисляющая производную Public Function FProiz(ByVal x As Double) As Double Dim p As Double p = 3 * x ^ 3 - 4 * x + 1 Return p End Function 'процедура-Function, вычисляющая заданную функцию Public Function Funy(ByVal x As Double) As Double Dim f As Double f = x ^ 3 - 2 * x ^ 2 + x - 3 Return f End Function ' Процедура решения задачи поиска корня Public Sub Kop(ByVal E As Double, ByVal x0 As Double, _ ByRef xe As Double) Dim x, a As Double Dim i As Integer i = 0 x = x0 Do a = x x = a - Funy(a) / FProiz(a) i = i + 1 vivodListint(i, ListBox1) vivodList(x, ListBox2) Loop Until Abs(x - a) < E xe = x End Sub Private Sub Button1_Click(sender As Object,e As EventArgs)_ Handles Button1.Click Dim EE, x0x0, xn, y As Double EE = vvod(TextBox1): x0x0 = vvod(TextBox2) Kop(EE, x0x0, xn) vivod(xn, TextBox3) y = Funy(xn) vivod(y, TextBox4) End Sub Private Sub Button2_Click(sender As Object,e As EventArgs)_ Handles Button2.Click End End Sub End Class

 

Рис. 4.6.4-3. Программный код проекта Проект 6-1:

Вычисление с заданной точностью корня уравнения x3-2x2+x-3=0

 

 

6) Результаты выполнения проектов:

Результаты выполнения проекта приведены на рис. 4.6.4-4.

 

 

Рис. 4.6.4-4. Результаты выполнения проекта Проект 6-1:

Вычисление с заданной точностью корня уравнения x3-2x2+x-3=0

7) Доказательство правильности работы программы:

Значение функции при подстановке корня в уравнение
f(x) = 0.00012315320113. Это говорит о том, что значение функции f(2.17457839205816) = 0.00012315320113 близко к нулю.

 

 



Поделиться:




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

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


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