Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математические методы / Лабораторные / Лабораторная №1 Вариант №26

.docx
Скачиваний:
38
Добавлен:
25.05.2017
Размер:
130.64 Кб
Скачать

Міністерство освіти і науки, молоді та спорту України

Національний авіаційний університет

Кафедра комп’ютерних та інформаційних технологій

Лабораторна робота №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());

}

}

}

}

Результат роботи:

Схема алгоритму

Висновки: Я розробив лінійну модель двухмірної функції, яка задана у вигляді таблиці, мотодами лінійного програмування. Збудував графіки заданого масиву чисел. Розробив алгоритм обчислювального процесу для визначення чисельного значення функції.

Соседние файлы в папке Лабораторные