№8 лабораторная МП
.docxФедеральное агентство связи Ордена
Трудового Красного Знамени
федеральное бюджетное образовательное учреждение высшего образования
«Московский Технический Университет Связи и Информатики»
(МТУСИ)
Кафедра Информатики
Предмет: Введение в математические пакеты прикладных программ
Лабораторная работа по ВвМППП № 8
Тема:
«Технология решения задач одномерной оптимизации средствами Scilab»
Вариант 00
Выполнил:
Великий преподователь
__________________________
Москва 0000
Общее задание
Изучите материал Темы 2.5 (п. 2.5.1).
Выберите индивидуальное задание из табл. 2.5.2-1.
Постройте график функции f(x) и выберете отрезок, содержащий единственный минимум;
Проверьте на выбранном отрезке условие унимодальности функции, получив таблицу значений первой или второй производной.
Создайте функцию costf() для формирования значений целевой функции и ее производной.
Найдите координаты точки минимума f(x) с использованием встроенной функции Scilab optim().
Сохраните текст рабочего окна на внешнем носителе.
Предоставьте результаты работы преподавателю, ответьте на поставленные вопросы.
//Лабораторная работа №8 по теме "Технология решения задач одномерной оптимизации средствами Scilab"
// Выполнил:
//Вариант ---
//Описание функции f(x)
deff('y=f(x)','y=x.^2-3.4.*log(1+x)-1')
//Построение графиков функции f(x)
xgrid()
xtitle('Построение графиков функции f(x)','X','Y')
x=0:0.1:2;zeroline=x*0;
plot(x,f(x))
mtlb_hold('on')
plot(x,zeroline,'k-')
//Описание функций f1(x) и f2(x)-первой и второй производных функций f(x)
deff('y=f1(x)','y=2.*x-3.4./(1+x)')
deff('y=f2(x)','y=2+3.4./(1+x).^2')
//Получение таблицы значений f(x),f1(x),f2(x) на интервале [0.89:0.9]
t=0.89:0.001:0.9;
z=[t;f(t);f1(t);f2(t)]'
z =
0.89 -2.3722612 -0.0189418 2.9518211
0.891 -2.3722787 -0.0159905 2.9508146
0.892 -2.3722932 -0.0130402 2.9498098
0.893 -2.3723048 -0.0100909 2.9488066
0.894 -2.3723134 -0.0071426 2.9478049
0.895 -2.3723191 -0.0041953 2.9468049
0.896 -2.3723218 -0.0012489 2.9458064
0.897 -2.3723215 0.0016964 2.9448095
0.898 -2.3723184 0.0046407 2.9438142
0.899 -2.3723123 0.007584 2.9428204
0.9 -2.3723032 0.0105263 2.9418283
//Создание вспомогательной функции для функции optim()
//Для минимума:
function [fp,g,ind]=costf1(t,ind)
> fp=f(t)
> g=numderivative(f,t)
> endfunction
//Поиск координат точки минимума f(x) на интервале [0.89:0.9] с использованием встроенной функции в Scilab optim()
x0=0.89;
[fmin,xmin]=optim(costf1,x0)
xmin =
0.896424
fmin =
-2.372322