Численные методы в визуальном программировании
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ
Кафедра прикладной математики
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по курсу "Информатика"
для самостоятельной работы студентов
всех специальностей
ЧИСЛЕННЫЕ МЕТОДЫ
в визуальном программировании
ЧАСТЬ 3
Казань
Составитель: И.Н.Гатауллин
УДК 621.313
Методические указания по курсу "Информатика" для самостоятельной работы студентов всех специальностей. Численные методы в визуальном программировании. Часть 3. /Казанский государственный архитектурно-строительный университет. Сост.: И.Н.Гатауллин. Казань, 2008. -35 с.
Методические указания состоят из трёх частей и предназначены для самостоятельной работы студентов всех специальностей и используются при выполнении лабораторных и контрольных работ по курсу "Информатика" на языке Visual Basic. В данной работе приводятся численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов, методы аппроксимации дискретных функций и методы решения задач линейного программирования.
Табл. нет, библиогр. назв. 8
Рецензент - Р.Б.Салимов, доктор физ.-мат. наук, профессор
© Казанский государственный
архитектурно - строительный
университет, 2008 г.
1. Численное решение нелинейных уравнений
.1 Метод деления отрезка пополам
Пример 1-1: Найти решение уравнения x3+x-1=0 c точностью e=0.001 методом деления отрезка пополам.
Решение: Работа выполняется в следующей последовательности:
. Запустить VISUAL BASIC. В окне New Project выбрать Стандартный.EXE вкладки New (новый) и кликнуть по кнопке «Открыть».
. На экране появится новый проект и форма Project1 - Form1 (Form), содержание которой нужно заполнить необходимыми компонентами, с помощью которых можно будет выполнить необходимые вычисления.
. Во-первых, необходимы элементы, которые будут использоваться для ввода данных A, B и E. Используем для этой цели элементы Text1, Text2 и Text3. Во-вторых, необходимы элементы, в которых будут отражены результаты вычисления xn и yn. Используем для этой цели элементы Text4 и Text5.
. Для оформления надписей для обозначения текстовых окон Text1, Text2, Text3, Text4 и Text5 можно использовать метки Label1, Label2, Label3, Label4 и Label5 соответственно.
. Чтобы процедура пользователя была доступна на всех формах приложения, ее текст можно записать в специальном окне Module - модуль приложения. Программный код такой программы будет храниться в файлах приложения с расширением *.bas.
Function fnf(x As Single) As Single = x ^ 3 + x -1
End Function
. Для выполнения функций вычисления необходима одна кнопка Command1. Это будет «Старт». Вторая кнопка Command2 выполняет функцию завершения работы приложения - кнопка «Финиш».
. Теперь следует все указанные выше компоненты вынести на форму. Для этого на панели стандартных элементов находим значок одного из компонент, активизируем его и «переносим» на форму: рисуем условный прямоугольник в том месте формы, где будет предположительно находиться этот элемент, учитывая при этом его размеры.
. Аналогичные действия выполняем поочередно для каждого элемента, пока на форме не появятся все 12 элементов.
. Далее изменяем свойства объектов, используя страницу свойств Properties. Для изменения свойств элементов следует активизировать элемент - выделить его на форме. Далее для выделенного элемента в окне свойств можно вносить изменения: для Command1 изменить свойство Caption = Старт, для Command2 - свойство Caption = Финиш. Для остальных элементов задать значения свойств:
Text1.Text =
Text2.Text =
Text3.Text = .Text = .Text = 1.Caption = Введите значение A
Label2.Caption = Введите значение B
Label3.Caption = Введите значение E
Label4.Caption = Вывод значения xn
Label5.Caption = Вывод значения yn
Заготовку формы для примера 1-1 с измененными свойствами смотрите на рис. 2.3.
. Для создания программного кода в проводнике проекта или в меню View выбрать команду Code.
В окне Project1 - Form1 (Code) выбрать в списке General название кнопки 1 и кликнуть по ней. В результате появится заготовка записи программного кода для Command1 с инициированием для нее события Click. Значения A, B, E пользователь должен ввести в окна Text1, Text2, Text3. Но в текстовом окне данные получаются также текстовые, типа Single. Поэтому используем функцию Val( ) для перевода в числовой тип Single, который объявлен для переменных A, B, E в начале программы в операторе Dim. Для вывода значений xn, yn используется функция Round( ), которая округляет количество знаков после запятой до четырёх.
. Аналогичные действия выполняем в отношении кнопки 2. Для Command2 будет выполняться одно действие - закрыть приложение. Это выполняет команда End.
Рис. 2.3. Заготовка формы для примера 1-1 с измененными свойствами.
Программный код для примера нахождения корней уравнения методом деления отрезка пополам будет иметь вид:
Private Sub Command1_Click()
Rem Лабораторная работа 1-1, вариант 13
A=0, B=1, E=0.001A, B, E, YA, YB, xn, yn As Single
A = Val(Text1.Text)= Val(Text2.Text)= Val(Text3.Text)= fnf(A / 1): YB = fnf(B / 1)YA * YB > 0 Then GoTo 1"xn", "yn"
xn = (A + B) / 2: yn = fnf(xn / 1)xn, ynYA * yn < 0 Then B = xn Else A = xn(B - A) > E Then GoTo 2.Text = Round(xn, 4).Text = Round(vn, 4)SubSub Command2_Click()
End Sub
. Для сохранения проекта надо выполнить команду меню File (файл) ? Save Project As (Сохранить проект как). В диалоговом окне Save File As (Сохранить файл как) выбрать название диска, на котором должна быть создана папка для хранения файлов нового проекта. Далее для сохранения формы, следует набрать имя файла в поле ввода File Name (Имя файла), например Primer1-1, и нажать клавишу «Enter». Форма Form1 будет сохранена в файле с расширением Primer1-1.frm.
. После сохранения формы следует сохранить проект. В VISUAL BASIC это происходит автоматически, после чего должно появиться диалоговое окно Save Project As -Сохранить проект. Следует набрать то же имя Primer1-2 и нажать клавишу «Enter». Файл проекта будет сохранен с расширением Primer1-1.vbp.
. Теперь запустить проект на выполнение. Выбираем команду Run ? Start или Shift+F5. В поле Text1 нужно ввести значение A, в поле Text2 - значение B, в поле Text3 - значение E - после чего нажать кнопку «Старт». В окнах Text4, Text5 появились значения xn, yn. Для завершения работы приложения следует нажать кнопку «Финиш».
1.2 Метод Ньютона (метод касательных)
численный метод линейный программирование
Пример: Решить уравнение F(x)=x3+x-1=0 на отрезке [0;1] методом Ньютона c точностью e=0.01.
Решение:
На рис. 1.5 приведена программа решения данного уравнения методом Ньютона.
CLSLR-1-2, m=13, n=5FNF(X)=X^3+X-1FNP(X)=3*X+1X, E
X=X- FNF(X)/FNP(X)X, FNF(X)ABS(FNF(X)/FNP(X))>E THEN 1
END
Рис. 1.5. Программа нахождения корней методом Ньютона.
1.3 Метод простой итерации
Пример: Решить уравнение F(x)=x3+x-1=0 на отрезке [0;1] методом простой итерации c точностью e=0.01.
Решение:
LR-1-3, m=13, n=5FNF(X)= X^3+X-1X, E, M
X = X - FNF(X)/MX, FNF(X)ABS(FNF(X)/M)>E THEN 1
END
Рис.1.7. Программа решения уравнения методом простой итерации.
2. Методы решения систем линейных алгебраических уравнений
.1 Метод Гаусса
Пример: Решить систему уравнений методом Гаусса:
+ 4x2 + 3x3 = 10
x1 + x2 - x3 = -1
x1 - x2 +x3 = 11
Решение:
2.2 Метод прогонки
Пример: Решить систему уравнений методом прогонки:
10x1 + x2 = m+5
x1 + 9x2 + x3 = n+9 m -1
,1x2 +4x3 -x4 = 4 n+0,1 m -5
-x3 +8x4 - x5 = 40 -n - L
x5 = L,
где значения m - номер варианта, n - номер группы, L - номер факультета.
Решение:
На рис. 2.1 приведена программа решения методом прогонки.
REM LR-2-2, m=13, n=5A(5), B(5), C(5), D(5), U(5), V(5), X(6), R(5)0, 10, 1, 5-2, 9, 1, -10.1, 4, -1, -5-1, 8, -1, 400, 1, 0, 0I =1 TO 5A(I), B(I), C(I), D(I)(I) = -C(I) / (A(I)*U(I-1) + B(I))(I) =(D(I)-A(I)*V(I-1)) / (A(I)*U(I-1) + B(I))I(5) = V(5)I =4 TO 1 STEP -1(I) = U(I)*X(I+1) + V(I)II =1 TO 5(I) = D(I)-A(I)*X(I-1)-B(I) *X(I)-C(I)*X(I+1)²X ²; I; ² = ²; X(I); ²R²; I; R(I)
NEXT I
Рис.2.1. Программа решения методом прогонки.
2.3 Метод простой итерации (метод Якоби)
Пример: Преобразовать систему уравнений:
x1 + 4x2 -x3= 7
x1+6x2+3x3=-2 (2.15)
x1+ x2 + 4x3=4
к виду, пригодному для построения итерационного процесса методом Якоби и выполнить три итерации.
Решение:
2.4 Метод Зейделя
Решение:
3. Численные методы решения систем нелинейных уравнений
.1 Метод простой итерации (метод Якоби)
Пример: Найти решение системы (3.7) методом Зейделя с точностью e=0,001.
(x,y)=2sin(x+1)-y-0.5 = 0
(3.7)(x,y)=10cos(y-1)-x+0.4 = 0
Решение:
Программа, реализующая решение данной задачи, представлена на рис.3.2.
CLSLR-3-2, m=13, n=5X,Y, M1,M2
X=X-(2*SIN(X+1)-Y - 0.5)/M1=Y-(10*COS(Y-1)-X+0.4)/M2X,YTT1
Рис.3.2. Программа решения методом Зейделя.
3.2 Метод Ньютона
Пример: Найти решение системы (3.7)
F(x,y)=2·sin(x+1)-y-0.5 = 0
G(x,y)=10·cos(y-1)-x+0.4 = 0 (3.13)
методом Ньютона с точностью e=0,001.
Решение:
Программа реализующая метод Ньютона для указанной задачи представлена на рис. 3.3.
REM LR-3-3, m=13, n=5X, Y
F = 2*SIN(X+1)-Y - 0.5= 10*COS(Y-1)-X+0.4=2*COS(X+1)=-1=-1=-10*SIN(Y-1)= Fx*Gy- Gx*Fy=(G*Fy-F*Gy)/D=(F*Gx-G*Fx)/D=X+DX=Y+DYX;Y; F;G;DX;DY;TT1
Рис.3.3. Программа, реализующая метод Ньютона
3.3 Приближение функции по методу наименьших квадратов (МНК)
Пример: Подобрать аппроксимирующий полином первой степени y}=ax+b для данных
0 1 2 30.1 0.9 2.1 3
Решение:
Пример: Используя МНК построить эмпирическую зависимость y=ax2+bx+c, аппроксимирующую следующие табличные значения:
-2 -1 0 1 26 2 -1 -2 -1
Решение:
.4 Интерполяционный полином в форме Лагранжа
Пример. Пусть задана таблица 4.4
Таблица 4.4
xi -1 0 1/2 1
yi 0 2 9/8 0
Решение.
4. Численное интегрирование
.1 Метод прямоугольников
Программа вычисления интеграла методом прямоугольников представлена на рис. 5.2.
REM LR-5-1, m=13, n=5FNF(X)=2*X^2+.10,1,8A,B,N=(B-A)/N=0: X=A
S=S +FNF(X)*H=X+HX<B THEN 1²S=²; S
Рис. 5.2. Программа вычисления интеграла методом прямоугольников.
4.2 Метод трапеций
Программа вычисления интеграла методом трапеций представлена на рис. 5.4.
REM LR-5-2, m=13, n=5FNF(X)=2*X^2+0.10,1,8A,B,N=(B-A)/N=(FNF(A)+FNF(B))/2= A+H
S=S+FNF(X)=X+HX<B THEN 1=S*H²S=²; S
Рис. 5.4. Программа вычисления интеграла методом трапеций.
Метод парабол (Симпсона)
Пример: Требуется вычислить определенный интеграл методами прямоугольников, трапеций и парабол:
I = (2x2+0,1) dx
Решение:
Программа вычисления интеграла методом парабол (Симпсона) представлена на рис. 5.6.
CLSLR-5-3, m=13, n=5FNF(X)=2*X^2+0.10,1,4A,B,N=(B-A)/N/2=0=A
S=S+H*(FNF(X)+4*FNF(X+H)+FNF(X+2*H))/3=X+2*HX<B-H THEN 1²S=²; S
Рис. 5.6. Программа вычисления интеграла методом парабол (Симпсона).
5. Решение задачи Коши для обыкновенных дифференциальных уравнений
.1 Метод Эйлера
Пример: Решить задачу Коши методом Эйлера для дифференциального уравнения
y¢=x2+y, y(0)= 1 на отрезке [0;0,3] с шагом 0,1.
Решение:
Программа решения задачи Коши методом Эйлера дана на рис. 6.2.
CLSLR-6-1, m=13, n=5FNY(X,Y)=X^2+Y0, 0.3, 1, 0.1A, B, Y0, HA;Y0=A: Y=Y0
Y=Y+ FNY(X,Y)*H=X+HX;YX<B THEN 1
Рис. 6.2. Программа решения задачи Коши методом Эйлера.
5.2 Модифицированный метод Эйлера
Пример: Решить задачу Коши модифицированным методом Эйлера для дифференциального уравнения
y¢=x2+y, y(0)= 1 на отрезке [0;0,3] с шагом 0.1.
Решение:
Программа решения задачи Коши модифицированным методом Эйлера дана на рис. 6.4.
CLSLR-6-2, m=13, n=5FNY(X,Y)=X^2+Y0, 0.3, 1, 0.1A, B, Y0, HA;Y0=A: Y=Y0
Y1=Y+ FNY(X,Y)*H=Y+H*(FNY(X,Y)+FNY(X+H,Y1))/2=X+HX;YX<B THEN 1
Рис. 6.4. Программа решения задачи Коши модифицированным методом Эйлера.
5.3 Метод Рунге-Кутта
Пример: Решить задачу Коши методом Рунге-Кутта для дифференциального уравнения
y¢=x2+y, y(0)= 1 на отрезке [0,0.3] с шагом 0.1.
Решение:
Программа решения задачи Коши методом Рунге-Кутта дана на рис. 6.5.
CLSLR-6-3, m=13, n=5FNY(X,Y)=X^2+Y0, 0.3, 1, 0.1A, B, Y0, HA;Y0=A: Y=Y0
K0 = H*FNY(X,Y)= H*FNY(X+H/2,Y+K0/2)= H*FNY(X+H/2,Y+K1/2)= H*FNY(X+H,Y+K2)=Y+(K0+2*K1+2*K2+K3)/6=X+HX;YX<B THEN 1
Рис. 6.5. Программа решения задачи Коши методом Рунге-Кутта.
6. Задачи линейного программирования
Пример. Имеется 300 кг металла, 100 м2 стекла и 160 - человеко-часов рабочего времени; из них изготавливают изделия двух наименований А и Б; стоимость одного изделия А равна 10 $, для его изготовления нужно 4 кг металла, 2 м2 стекла и 2 человеко-часа рабочего времени; стоимость одного изделия Б равна 12 $, для его изготовления нужно 5 кг металла, 1 м2 стекла и 3 человеко-часа рабочего времени; требуется спланировать производство так, чтоб произвести изделия с максимальной стоимостью.
Решение.
6.1 Симплекс метод решения задач линейного программирования
Пример. Имеется 300 кг металла, 100 м2 стекла и 160 - человеко-часов рабочего времени; из них изготавливают изделия двух наименований А и Б; стоимость одного изделия А равна 10 $, для его изготовления нужно 4 кг металла, 2 м2 стекла и 2 человеко-часа рабочего времени; стоимость одного изделия Б равна 12 $, для его изготовления нужно 5 кг металла, 1 м2 стекла и 3 человеко-часа рабочего времени; требуется спланировать производство так, чтоб произвести изделия с максимальной стоимостью.
Решение.
6.2 Симплекс-таблица
Пример. С помощью Симплекс-таблицы найти минимальное значение
целевой функции (7.15):
F(x1,x2)= -f(x1,x2)= -10·x1- 12·x2- 0·x3 - 0·x4 - 0·x5 ® min
при данных ограничениях (7.14)
·x1 + 5·x2 + x3 = 300
·x1+ x2 + x4= 100
·x1+ 3·x2+ x5= 160
x1,2,3,4,5³ 0
ЗАКЛЮЧЕНИЕ
Данные методические указания предназначены для самостоятельной работы студентов, имеющих начальные знания по программированию на языке Visual Basic. Для получения начальных знаний ниже прилагается дополнительная литература.
В этой работе были рассмотрены численные методы решения различных задач:
) методы решения нелинейных уравнений;
) методы решения систем линейных уравнений;
) методы решения систем нелинейных алгебраических уравнений;
) методы решения дифференциальных уравнений;
) методы решения определенных интегралов;
) методы аппроксимации дискретных функций;
) методы решения задач линейного программирования.
Дополнительная литература
. Калиткин Н.П. Численные методы. М.: Наука, 1978. - 512 с.
. Солодовников А.С. Введение в линейную алгебру и линейное программирование. М.: Просвещение, 1966. - 183 с.
. Монахов В.М. и др. Методы оптимизации. Применение математических методов в экономике. М., Просвещение, 1978. - 175 с.
. С.В.Симонович и др. Информатика. Базовый курс. Санкт-Петербург: Издательский дом Питер. 2002, - 640 с.
. А.В.Могилев, Н.И.Пак, Е.К.Хеннер. Информатика. - 3-е изд., перераб. и доп. - М.: Издательский центр «Академия», 2004, - 848 с.
. М.Д.Князева. Программирование на Visual Basic 6. Учеб. Пособие. -М.: КУДИЦ-ОБРАЗ, 2006. - 176с.
. И.К.Сафронов. Visual Basic в задачах и примерах. Санкт-Петербург: БХВ-Петербург, 2007, - 400 с.
. Методические указания к лабораторным работам по дисциплине: "Алгоритмизация и программирование". Основы визуального программирования. /Сост.: И.Н.Гатауллин, Ф.Г.Габбасов. - Казань, КГАСУ, 2008. 61 с.
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Методичка
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2019 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ