Математические методы / Лабораторные / Лабораторная №1 Вариант №9
.docxМіністерство освіти і науки, молоді та спорту України
Національний авіаційний університет
Кафедра комп’ютерних та інформаційних технологій
Лабораторна робота №1
З дисципліни: «Математичні методи дослідження операцій»
За темою : «Лінеаризація нелінійної цільової функції »
Варіант 9
Виконав:
Студент ТП-213 ІКІТ
Жежерун Д.Отчество
Київ 2017
Домашнее задание №1
по дисциплине “Математические методы исследования операций”.
Разработать линейную модель двумерной функции, которая задана в виде таблицы чисел, методами линейного программирования.
В процессе выполнения домашнего задания необходимо:
- построить графики для заданного массива чисел;
- минимизировать количество кусочно-линейных участков исходной двумерной поверхности, обеспечивающих допустимую погрешность аппроксимации равную 1% от максимального значения исходной функции;
- рассчитать значение коэффициентов системы линейных уравнений, описывающих двумерную поверхность;
- свести коэффициенты линейных уравнений в таблицу;
- разработать алгоритм вычислительного процесса для определения численного значения функции по любому промежуточному значению ее аргументов;
- написать и отладить программу на любом алгоритмическом языке программирования высокого уровня;
- выполнить контрольные расчеты, подтверждающие правильность работы программы;
- оформить отчет по выполнению домашнего задания №1.
Вариант №9
Таблица R = fR (H, M),
МН, км |
0 |
0,125 |
0,25 |
0,375 |
0,5 |
0,625 |
0,75 |
0,875 |
1,0 |
1,3. |
0 |
6900 |
6050 |
5400 |
4750 |
4250 |
3800 |
3320 |
2850 |
2400 |
2200 |
2 |
6100 |
5500 |
4950 |
4400 |
4000 |
3600 |
3200 |
2830 |
2450 |
2000 |
4 |
5050 |
4750 |
4450 |
4130 |
3820 |
3550 |
3300 |
3050 |
2800 |
2700 |
6 |
4400 |
4170 |
3950 |
3720 |
3500 |
3300 |
3100 |
2900 |
2700 |
2600 |
8 |
3450 |
3350 |
3250 |
3150 |
3050 |
2950 |
2850 |
2730 |
2670 |
2500 |
10 |
2750 |
2750 |
2700 |
2650 |
2600 |
2570 |
2520 |
2450 |
2400 |
2200 |
12 |
2400 |
2350 |
2250 |
2200 |
2150 |
2050 |
2000 |
1930 |
1850 |
1600 |
Завдання
Таблица R = fR (H, M)
МН, км |
0 |
0,125 |
0,25 |
0,375 |
0,5 |
0,625 |
0,75 |
0,875 |
1,0 |
1,3. |
6 |
4400 |
4170 |
3950 |
3720 |
3500 |
3300 |
3100 |
2900 |
2700 |
2600 |
Встановлюємо межі для лінеаризації:
2600*0.05 = 130.
Розіб’ємо функцію на щонайменше проміжків, враховуючи похибку 5%.
Отримали три проміжки, рівняння яких наступні:
H1 = x/1*(2570-4530) + 4530
H2 = (x-1)/(1.3-1)*(2730-2570) + 2570
Напишемо програму, яка б розраховувала значення 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) {
System.out.println("H1 для данного х равняется " + ((x / 1) * (2570 - 4530) + 4530));
} else if (x > 1 && x <= 1.3) {
System.out.println("H2 для данного х равняется " + ((x - 1) / (1.3 - 1) * (2730 - 2570) + 2570));
} else System.out.println("Значение х не попало в границы.");
} catch (NumberFormatException e) {
System.out.println("Caught NumberFormatException. More Info: " + e.getLocalizedMessage());
}
}
}
}
Результат роботи:
Добавь скрин
Схема алгоритму
Висновки: Я розробив лінійну модель двухмірної функції, яка задана у вигляді таблиці, мотодами лінійного програмування. Збудував графіки заданого масиву чисел. Розробив алгоритм обчислювального процесу для визначення чисельного значення функції.