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

86-1

.pdf
Скачиваний:
5
Добавлен:
08.01.2021
Размер:
521.05 Кб
Скачать

31

5.4. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ Пример 5.1. Найти уравнение линейной и нелинейной регрессий для

функции, заданной таблично:

x

1

2

3

4

5

 

 

 

 

 

 

y

4

5

3,5

1,5

2

 

 

 

 

 

 

Решение:

а) Вычислить коэффициенты a и b уравнения линейной регрессии можно, воспользовавшись системой:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M x2

=

 

 

xi

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

M

x

2

a +

M

x

b

=

M

xy

,

 

M x

=

xi ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

a +b =

 

M

 

;

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

M

 

 

 

 

 

 

 

 

 

 

M xy

=

 

xi

yi ,

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

yi ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M y

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

или формулами:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a =

M xy M x M y

,

b =

 

M

x

2 M y

M x M xy

.

 

 

 

 

 

 

M

x

2

M

x

2

 

 

 

 

 

 

M

x

2

M

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

В командном окне программы MATLAB наберем следующую

последовательность операторов:

 

 

 

 

 

 

 

 

 

 

 

 

>> x=[1;2;3;4;5];

 

 

 

% задание исходных данных

 

 

 

 

 

 

>>y=[4;5;3.5;1.5;2];

>>x2=[x.^2];

>>xy=[x.*y];

>> Mx=1/5*sum(x);

% вычисление элементов матриц М и d

>>My=1/5*sum(y);

>>Mx2=1/5*sum(x2);

>>Mxy=1/5*sum(xy);

>> M(1,1)=Mx2;

% задание матрицы М

>> M(1,2)=Mx;

 

>> M(2,1)=Mx;

 

 

32

>> M(2,2)=1;

 

>> d(1,1)=Mxy;

% задание матрицы d

>> d(2,1)=My;

 

>> Coeff=M^-1*d

% решение системы линейных уравнений

Coeff =

 

-0.7500

 

5.4500

 

>>a=(Mxy-Mx*My)/(Mx2-Mx^2) % вычисление коэффициентов с помощью формул

a = -0.7500

>>b=(Mx2*My-Mx*Mxy)/(Mx2-Mx^2)

b=

5.4500

%вычисление суммы квадратов отклонений

>>y1=a*x+b;

>>e2=(y-y1).^2;

>>S=sum(e2)

S = 2.6750

%построение графика полученной функции и исходных данных

>>plot(x,y1,x,y,'*')

Получили уравнение линейной регрессии у=-0,75х+5,45, сумму квадратов отклонений S=2,675 и график.

б) Для нахождения гиперболической регрессии воспользуемся заменой u = 1x и рассмотрим таблицу

U

u1

u2

un

y

y1

y2

yn

для функции F(u,a,b) = au +b .

Вкомандном окне программы MATLAB введем следующее:

>>x=[1;2;3;4;5];

33

>> u=(1./x);

% введение замены переменной х

>>y=[4;5;3.5;1.5;2];

>>u2=[u.^2];

>>uy=[u.*y];

>>Mu=1/5*sum(u);

>>My=1/5*sum(y);

>>Mu2=1/5*sum(u2);

>>Muy=1/5*sum(uy);

>>M(1,1)=Mu2;

>>M(1,2)=Mu;

>>M(2,1)=Mu;

>>M(2,2)=1;

>>d(1,1)=Muy;

>>d(2,1)=My;

>>Coeff=M^-1*d Coeff =

2.6967

1.9685

>>a1=(Muy-Mu*My)/(Mu2-Mu^2) a1 =

2.6967

>>b1=(Mu2*My-Mu*Muy)/(Mu2-Mu^2) b1 =

1.9685

>>y2=a1./x+b1

>>e2=(y-y2).^2;

>>S=sum(e2)

S = 5.2393

>> plot(x,y2,x,y,'*')

Получили уравнение гиперболической регрессии у=2,6967/х+1,9685, сумму квадратов отклонений S=5,2393 и график.

34

5.4.ВОПРОСЫ К ЗАЩИТЕ РАБОТЫ

1.Общая постановка задачи нахождения приближающей функции.

2.В чем суть приближения таблично заданной функции по методу наименьших квадратов?

3.Какие функции могут быть использованы в качестве приближающих?

4.Как находятся отклонения измеренных значений Y от вычисленных по формуле приближающей функции?

5.Как найти приближающую функцию в виде линейной функции

F (x,a,b) = ax + b ?

6.Как найти приближающую функцию в виде квадратичной функции

F( x, a, b, c) = ax2 +bx +c ?

7.Как привести показательную, степенную, логарифмическую функции к линейной?

8.Что такое коэффициент корреляции и как он находится?

9.Каковы границы значения коэффициента корреляции и что они показывают?

10.Что такое отклонение?

11.Как можно определить правильность вида выбранной функции.

5.5.ЗАДАНИЕ

1.Используя данные индивидуального задания и применяя стандартные замены переменных, найти уравнения следующих видов регрессий:

линейной,

гиперболической,

степенной,

показательной,

логарифмической.

2.Сравнить качество полученных приближений путем сравнения их отклонений.

3.Построить графики получившихся зависимостей и табличных значений аргументов и функции.

35

Лабораторная работа № 6

Тема: Численное решение нелинейных уравнений

6.1. ЦЕЛЬ РАБОТЫ

Сформировать представление о подходе к численному решению нелинейных уравнений с одним неизвестным, выработать навыки работы в среде пакета МАТLAB.

6.2.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Изучить теоретическую часть. Выполнить задания, соответствующие номеру варианта, и продемонстрируйте их преподавателю.

2.Оформите отчет по лабораторной работе, который должен содержать:

титульный лист;

исходные данные варианта;

решение задачи;

результаты решения задачи.

6.3. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Задача нахождения корней нелинейных уравнений встречается в различных областях научно-технических исследований. Проблема формулируется следующим образом. Пусть задана непрерывная функция f(x) и требуется найти корень уравнения

f(x) = 0.

(6.1)

Будем предполагать, что имеется интервал изменения х [a; b], на котором необходимо исследовать функцию f(x) и найти значение х0, при котором f(x0) равно или весьма мало отличается от нуля.

Данная задача в системе MATLAB может быть решена следующим образом. Вначале необходимо построить график функции f(x) на заданном интервале и убедиться в существовании корня или нескольких корней. Затем применить программы поиска корней. Если существует один корень и график f(x) пересекает ось OX, то можно применить программу fzero. Если f(x) имеет больше одного корня и может касаться и пересекать ось OX, то следует

36

применить более мощную программу fsolve из пакета Optimization Toolbox, которая решает задачу методом наименьших квадратов. Программа fzero использует известные численные методы: деление отрезка пополам, секущей и обратной квадратичной интерполяции.

Пример 6.1. Найти корень нелинейного уравнения 10х+2х–100= 0 на интервале [1.0; 2.0].

Протокол программы

>>% Строим график заданной функции

>>x = 1.0:0.001:2.0;

>>y = 10.0.^x + 2.0*x - 100.0;

>>рlot (x, y) ; grid on

Появляется окно с графиком функции y=10х+2х–100(см. рис. 6.1), из которого следует, что корень функции на заданном интервале существует. Для точного определения корня применяем fzero и fsolve.

>>f = @(x)10.0.^x + 2.0*x - 100.0 % определение функции

>>X1 = fzero (f, [1.0 2.0])

Результат решения

X1 =

1.9824

>> X2 = fsolve(@(x) 10.0.^x + 2.0*x - 100.0,1.0:2.0)

Результат решения Х2 = 1.9824 1.9824

37

Рис. 6.1. График функции y=10х+2х–100

6.4.ВОПРОСЫ К ЗАЩИТЕ РАБОТЫ

1.Из каких этапов состоит численное решение нелинейных уравнений и в чем они заключаются?

2.В чем заключается отличие метода хорд от метода половинного деления и что в них общего?

3.Почему в методе хорд не применимо условие окончания итерационного процесса, использующееся в методе половинного деления?

4.Каковы условия применимости метода Ньютона?

5.Как выбирается начальное приближение в методе Ньютона?

6.Каковы условия сходимости итерационной последовательности в методе простых итераций?

7.Какое условие является критерием достижения заданной точности в методах Ньютона и простых итераций?

6.5.ЗАДАНИЕ

1.Для индивидуального задания построить график функции на заданном интервале.

2.Уточнить корень уравнения на заданном интервале.

38

Лабораторная работа № 7

Тема: Численное решение оптимизационных задач

7.1. ЦЕЛЬ РАБОТЫ

Сформировать представление о подходе к нахождению безусловных экстремумов функции; выработать навыки работы в среде пакета МАТLAB.

7.2.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Изучить теоретическую часть. Выполните задания, соответствующие номеру варианта, и продемонстрируйте их преподавателю.

2.Оформите отчет по лабораторной работе, который должен содержать:

титульный лист;

исходные данные варианта;

решение задачи;

результаты решения задачи.

7.3. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Под оптимизацией понимают процесс выбора наилучшего варианта из всех возможных. С точки зрения инженерных расчетов методы оптимизации позволяют выбрать наилучший вариант конструкции, наилучшее распределение ресурсов, минимальный урон природной среде и т. п. В процессе решения задачи оптимизации необходимо найти оптимальные значения некоторых параметров, их называют проектными параметрами. Выбор оптимального решения проводится с помощью некоторой функции, называемой целевой функцией. Целевую функцию можно записать в виде

u = f ( x1, x2 ,..., xn ) ,

(7.1)

где х1, х2, … , хn – проектные параметры.

Выделяют два типа задач оптимизации – безусловные и условные. Безусловная задача оптимизации состоит в отыскании максимума или минимума функции (7.1) от n действительных переменных и определении соответствующих значений аргументов на некотором множестве G n-мерного пространства. Задачи минимизации можно свести к задачам на поиск максимума путем замены знака целевой функции на противоположный и

39

наоборот. Условные задачи оптимизации – это такие, при формулировке которых задаются некоторые условия (ограничения) на множестве G. В данной работе рассмотрим только безусловные задачи оптимизации.

7.4.МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

7.4.1.Поиск минимума функции одной переменной

Для решения этой задачи используются методы золотого сечения или параболической интерполяции (в зависимости от формы задания функции), реализованные в программе fminbnd.

Пример 7.1. Найти и вывести на печать минимальное значение функции f ( x) = 24 2x / 3 + x2 / 30 на [5; 20].

Строим график этой функции, чтобы убедиться в наличии минимума на заданном интервале.

Протокол программы

>>x = 5.0 : 0.001 : 20.0 ; y = 24 - 2* x/3 + x.^2/30 ;

>>plot(x, y) ; grid on

Появляется окно с графиком этой функции (рис. 7.1), где отмечаем наличие минимума.

Рис. 7.1. График функции f ( x) = 24 2x / 3 + x2 / 30

Далее, для точного определения координаты и значения минимума привлекаем программу fminbnd.

40

>> [x, y] = fminbnd ('(24.0 - 2* x/3 + x.^2/30) ', 5.0, 20.0)

Результат поиска х =

10.0000

у =

20.6667

7.4.2. Поиск минимума функций нескольких переменных

Данная задача значительно сложнее первой. Рассмотрим ее решение на примере функции двух переменных. Алгоритм может быть распространен на функции большего числа переменных. Для минимизации функций нескольких переменных MATLAB использует симплекс – метод Нелдера-Мида. Данный метод является одним из лучших методов поиска минимума функций многих переменных, где не вычисляются производные или градиент функции. Он сводится к построению симплекса в n-мерном пространстве, заданного n+1 вершиной. В двухмерном пространстве симплекс является треугольником, а в трехмерном – пирамидой. На каждом шаге итераций выбирается новая точка решения внутри или вблизи симплекса. Она сравнивается с одной из вершин симплекса. Ближайшая к этой точке вершина симплекса заменяется этой точкой. Таким образом, симплекс перестраивается и позволяет найти новое, более точное положение точки решения. Алгоритм поиска повторяется, пока размеры симплекса по всем переменным не станет меньше заданной погрешности решения. Программу, реализующую симплекс-методы НелдераМида, удобно использовать в следующей записи

[x, min f] = f min search ( ),

где х – вектор координат локального минимума; min f – значение целевой функции в точке минимума.

Саму целевую функцию удобно представить с помощью дескриптора @ в m-файле.

Пример 7.2. Найти и вывести на печать координаты и значение минимума функции двух переменных f(x, y) = (x2+ y2–3)2 + (x2 +y2– 2x – 3)2 +1, если начальная точка поиска имеет координаты М0 (1; 1). Анализ функции показывает, что min f = 1 x = 0, y = 3 =1.73205.

Строим трехмерный график этой функции, чтобы убедиться в наличии минимума. Возьмем интервал х [-1; 1]; y [1; 3].

Протокол программы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]