Математические методы / Лабораторные / Лабораторная №1 Вариант №26
.docxМіністерство освіти і науки, молоді та спорту України
Національний авіаційний університет
Кафедра комп’ютерних та інформаційних технологій
Лабораторна робота №1
З дисципліни: «Математичні методи дослідження операцій»
За темою : «Лінеаризація нелінійної цільової функції»
Варіант 26
Виконала:
Студентка ТП-213 ІКІТ
Черняк К.С.
Київ 2017
Домашнее задание №1
по дисциплине “Математические методы исследования операций”.
Разработать линейную модель двумерной функции, которая задана в виде таблицы чисел, методами линейного программирования.
В процессе выполнения домашнего задания необходимо:
- построить графики для заданного массива чисел;
- минимизировать количество кусочно-линейных участков исходной двумерной поверхности, обеспечивающих допустимую погрешность аппроксимации равную 1% от максимального значения исходной функции;
- рассчитать значение коэффициентов системы линейных уравнений, описывающих двумерную поверхность;
- свести коэффициенты линейных уравнений в таблицу;
- разработать алгоритм вычислительного процесса для определения численного значения функции по любому промежуточному значению ее аргументов;
- написать и отладить программу на любом алгоритмическом языке программирования высокого уровня;
- выполнить контрольные расчеты, подтверждающие правильность работы программы;
- оформить отчет по выполнению домашнего задания №1.
Вариант №26
Таблица (М,)
М, град |
0 |
0,5 |
0,6 |
0,64 |
0,7 |
0,8 |
0,88 |
1 |
-0,002 |
-0,002 |
-0,002 |
-0,002 |
-0,0019 |
-0,002 |
-0,003 |
4 |
-0,0017 |
-0,0017 |
-0,0019 |
-0,002 |
-0,0027 |
-0,0025 |
-0,0035 |
14 |
-0,0012 |
-0,0012 |
-0,0018 |
-0,002 |
-0,0023 |
-0,003 |
-0,0035 |
18 |
-0,0010 |
-0,0010 |
-0,0019 |
-0,002 |
-0,0025 |
-0,0032 |
-0,0036 |
Завдання
Таблица R = fR (H, M)
М, град |
0 |
0,5 |
0,6 |
0,64 |
0,7 |
0,8 |
0,88 |
1 |
-0,002 |
-0,002 |
-0,002 |
-0,002 |
-0,0019 |
-0,002 |
-0,003 |
Встановлюємо межі для лінеаризації:
0,003*0.05 = 0.00015.
Розіб’ємо функцію на щонайменше проміжків, враховуючи похибку 5%.
Отримали три проміжки, рівняння яких наступні:
C1 = x*(6750-7600)/(0,625) + 7600
C2 = (x-0,625)*(7100-6750)/(1-0,625) + 6750;
C3 = (x-1)*(5700-7100)/(1,2-1) +7100;
Напишемо програму, яка б розраховувала значення Y(x) для нашої функції, при аргументі, що постійно змінюється.
Код програми:
Java
package math_methods;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Created by nifan on 15.02.2017.
*/
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 <= 0.5) {
System.out.println("C1 для данного х равняется " + (x * (6750 - 7600) / (0.625) + 7600));
} else if (x > 0.5 && x <= 1) {
System.out.println("C2 для данного х равняется " + ((x - 0.625) * (7100 - 6750) / (1 - 0.625) + 6750));
} else if (x > 1 && x <= 1.2) {
System.out.println("C3 для данного х равняется " + ((x - 1) * (5700 - 7100) / (1.2 - 1) + 7100));
} else System.out.println("x не попал в границы.");
} catch (NumberFormatException e) {
System.out.println("Caught NumberFormatException. More Info: " + e.getLocalizedMessage());
}
}
}
}
Результат роботи:
Схема алгоритму
Висновки: Я розробив лінійну модель двухмірної функції, яка задана у вигляді таблиці, мотодами лінійного програмування. Збудував графіки заданого масиву чисел. Розробив алгоритм обчислювального процесу для визначення чисельного значення функції.