Математические методы / Лабораторные / Лабораторная №1 Вариант №5
.docxМіністерство освіти і науки, молоді та спорту України
Національний авіаційний університет
Кафедра комп’ютерних та інформаційних технологій
Лабораторна робота №1
З дисципліни: «Математичні методи дослідження операцій»
За темою : «Лінеаризація нелінійної цільової функції »
Варіант 5
Виконав:
Студент ТП-213 ІКІТ
Говтва Данило
Київ 2017
Домашнее задание №1
по дисциплине “Математические методы исследования операций”.
Разработать линейную модель двумерной функции, которая задана в виде таблицы чисел, методами линейного программирования.
В процессе выполнения домашнего задания необходимо:
- построить графики для заданного массива чисел;
- минимизировать количество кусочно-линейных участков исходной двумерной поверхности, обеспечивающих допустимую погрешность аппроксимации равную 1% от максимального значения исходной функции;
- рассчитать значение коэффициентов системы линейных уравнений, описывающих двумерную поверхность;
- свести коэффициенты линейных уравнений в таблицу;
- разработать алгоритм вычислительного процесса для определения численного значения функции по любому промежуточному значению ее аргументов;
- написать и отладить программу на любом алгоритмическом языке программирования высокого уровня;
- выполнить контрольные расчеты, подтверждающие правильность работы программы;
- оформить отчет по выполнению домашнего задания №1.
Вариант №5
Таблица R = fR (H, M)
мН, км |
0 |
0,125 |
0,25 |
0,375 |
0,5 |
0,625 |
0,75 |
0,875 |
1,0 |
1,5 |
0 |
9850 |
8850 |
8070 |
7370 |
6850 |
6330 |
5800 |
5270 |
4750 |
4500 |
2 |
8300 |
7750 |
7200 |
6670 |
6250 |
5850 |
5450 |
5050 |
4650 |
4000 |
4 |
6630 |
6380 |
6120 |
5850 |
5600 |
5370 |
5170 |
4950 |
4750 |
3800 |
6 |
5350 |
5230 |
5100 |
5000 |
4850 |
4750 |
4650 |
4550 |
4450 |
3500 |
8 |
4000 |
4000 |
4000 |
4000 |
4000 |
4000 |
4000 |
4000 |
4000 |
3200 |
10 |
3700 |
3620 |
3600 |
3550 |
3450 |
3400 |
3350 |
3270 |
3200 |
2800 |
12 |
2160 |
2220 |
2280 |
2340 |
2400 |
2470 |
2530 |
2620 |
2710 |
2600 |
Завдання
Таблица R = fR (H, M)
МН, км |
0 |
0,125 |
0,25 |
0,375 |
0,5 |
0,625 |
0,75 |
0,875 |
1,0 |
1,5 |
4 |
6630 |
6380 |
6120 |
5850 |
5600 |
5370 |
5170 |
4950 |
4750 |
3800 |
Встановлюємо межі для лінеаризації:
3800*0.05 = 190.
Розіб’ємо функцію на щонайменше проміжків, враховуючи похибку 5%.
Отримали 1 проміжок, рівняння якого:
H1 = x/1.5*(3610-6820) + 6820
Напишемо програму, яка б розраховувала значення Y(x) для нашої функції, при аргументі, що постійно змінюється.
Код програми:
Java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class lab1 {
public static void main(String[] args) throws IOException {
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
String input = "";
while (!(input.equalsIgnoreCase("выход"))) {
System.out.println("Введите x.\n\"Выход\" для выхода.");
input = read.readLine();
try {
float x = Float.parseFloat(input);
if (x >= 0 && x <= 1.5) {
//H1 = x/1.5*(3610-6820) + 6820
System.out.println("H1 для данного х равняется " + ((x / 1.5) * (3610 - 6820) + 6820));
} else System.out.println("Значение х не попало в границы.");
} catch (NumberFormatException e) {
System.out.println("Caught NumberFormatException. More Info: " + e.getLocalizedMessage());
}
}
}
}
Результат роботи:
Схема алгоритму:
Висновки: Я розробив лінійну модель двухмірної функції, яка задана у вигляді таблиці, мотодами лінійного програмування. Збудував графіки заданого масиву чисел. Розробив алгоритм обчислювального процесу для визначення чисельного значення функції.