Построение и оценка математических моделей

Идентификация объектов методом наименьших квадратов. Анализ коэффициентов парной, частной и множественной корреляции. Построение линейной модели и модели с распределенными параметрами. Итерационный численный метод нахождения корня (нуля) заданной функции.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 20.03.2014
Размер файла 893,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки, молодежи и спорта Украины

Государственное высшее учебное заведение

Приазовский государственный технический университет

Факультет информационных технологий

Кафедра автоматизации и компьютерных технологий

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

по курсовой работе по дисциплине “Идентификация и моделирование объектов автоматизации”

Выполнил: студентка группы МА-10 Адамова О.С.

Мариуполь 2013 г.

Реферат

Пояснительная записка содержит 42 страницы, 12 рисунков, 3 таблицы.

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

При выполнении работы необходимо предварительно ознакомиться с соответствующим методом и его алгоритмом. Выполнение программы на ЭВМ и анализ получения результатов составляют заключительную стадию работы. Реализация программы должна быть показана на контрольном примере с выдачей выходных документов на принтер.

Введение

Цель работы ? получение практических навыков в построении математических моделей технических объектов, написании программ для решении задач моделирования с использованием языка программирования С/С++ и математических пакетов MathCad или MatLab, изучение теоретических основ и особенностей выполнения параметрической идентификации различных моделей, реализации алгоритмов линейного и нелинейного регрессионного анализа, планирования эксперимента.

Задачи курсовой работы включают:

? получение студентами навыков самостоятельной работы;

? освоение технологии разработки и отладки программ, реализующих модели технических объектов;

? более качественное изучение нормативных материалов - государственных стандартов и технических условий;

? более полное изучение базовых средств языков программирования и получение навыков постановки и решения различных задач с помощью ПЭВМ;

? изучение и использование сред численного моделирования и статистического анализа (MatLab, StatGraph и т.п.).

Постановка задачи

В ходе выполнения курсовой работы необходимо разработать программы на Scilab, Matlab, C++, которая позволит:

? оценить построенную математическую модель;

? найти выходные параметры, описывающие математическую модель, и построить зависимости между входными и выходными характеристиками объекта;

? установить математическое соотношение между измеряемыми входами и выходами при заданных их измерениях во времени.

Входные и выходные данные

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

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

1. Идентификация объектов методом наименьших квадратов

Вариант задания - 1

Матрица X

x1

x2

x3

8

5

1

2

4

3

4

9

7

2

2

4

2

3

1

Матрица Y

y

20,8

14,2

32,3

11,5

8,2

Для линейных уравнений вида:

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

Постановка задачи:

1. Построить линейную модель множественной регрессии. Записать стандартизированное уравнение множественной регрессии. На основе стандартизированных коэффициентов регрессии и средних коэффициентов эластичности ранжировать факторы по степени их влияния на результат.

2. Найти коэффициенты парной, частной и множественной корреляции. Проанализировать их.

3. Найти скорректированный коэффициент множественной детерминации. Сравнить его с нескорректированным (общим) коэффициентом детерминации.

4. С помощью F-критерия Фишера оценить статистическую надежность уравнения регрессии и коэффициента детерминации

5. С помощью t-критерия Стьюдента оценить статистическую значимость коэффициентов чистой регрессии.

6. Составить уравнение линейной парной регрессии, оставив лишь один значащий фактор.

Для наших данных система нормальных уравнений имеет вид:

Расчет коэффициентов множественной линейной регрессии методом определителей (по формуле Крамера):

Уравнение множественной регрессии:

Оценка значимости уравнения регрессии в целом производится не основе F-критерия Фишера, которому предшествует дисперсионный анализ. Согласно основной идее дисперсионного анализа, общая сумма квадратов отклонений переменной от среднего значения раскладывается на две части - объясненную и необъясненную:

- общая сумма квадратов отклонений;

- сумма квадратов отклонений, объясненная регрессией (факторная сумма квадратов отклонений);

- остаточная сумма квадратов отклонений, характеризующая влияние неучтенных в модели факторов.

Сопоставляя факторную и остаточную дисперсии в расчете на одну степень свободы, получим величину F-критерия Фишера:

Фактическое значение F-критерия Фишера сравнивается с табличным значением при уровне значимости и степенях свободы и При этом, если фактическое значение F-критерия Фишера больше табличного, то уравнение признается статистически значимым:

Качество модели, исходя из относительных отклонений по каждому наблюдению, признается хорошим, т.к. средняя ошибка аппроксимации не превышает 10 %.

Средние коэффициенты эластичности для линейной регрессии:

Средние коэффициенты эластичности показывают, на сколько процентов в среднем изменится результат при изменении соответствующего фактора на 1 %. Таким образом, подтверждается большее влияние на результат фактора чем факторов

Показателем интенсивности связи служит значение коэффициента корреляции. Считается, если он равен 1, то взаимозависимость признаков является строгой (полной); если его значение находится в интервале от 1 до 0,8, то это свидетельствует о сильной их взаимозависимости; если в интервале от 0,7 до 0,3 - об умеренной (не ярко выраженной) взаимозависимости, а если же оно лежит в интервале от 0,2 до 0,0, то мы имеем дело со слабой или нулевой взаимозависимостью.

Коэффициенты парной корреляции:

Коэффициент парной корреляции указывает на сильную взаимозависимость фактора и результата При такой зависимости рекомендуется исключить из рассмотрения факторы с не ярко выраженной взаимозависимостью.

Коэффициент множественной корреляции определим через матрицы парных коэффициентов корреляции:

? определитель матрицы парных коэффициентов корреляции

? определитель матрицы межфакторной корреляции

Нескорректированный коэффициент множественной детерминации оценивает долю дисперсии результата за счет представленных в уравнении факторов в общей вариации результата и рассчитывается как квадрат коэффициента множественной корреляции:

Эта доля составляет 99,9 % и указывает на высокую степень обусловленности вариации результата вариацией факторов (тесную связь факторов с результатом).

Скорректированный коэффициент множественной детерминации определяет тесноту связи с учетом степеней свободы общей и остаточной дисперсий:

Оба коэффициента указывают на высокую детерминированность результата в модели факторами

Оценка статистической значимости параметров регрессии проводится по t-критерию Стьюдента:

Для уравнения множественной регрессии средняя квадратическая ошибка коэффициента регрессии может быть определена по формуле:

2. Исследование разомкнутой линейной системы

Вариант задания - 1

Значения коэффициентов дифференциального уравнения объекта

-4

2

3

1

5

6

12

0

Объект описан дифференциальным уравнением:

Постановка задачи:

1. Записать модель объекта в форме передаточной функции.

2. Записать модель объекта в пространстве состояний.

3. Определить нули и полюса передаточной функции.

4. Определить коэффициент усиления системы в установившемся режиме и полосу пропускания системы.

5. Построить карту расположения нулей и полюсов, импульсную и переходную характеристики, частотные характеристики.

6. Построить процесс на выходе системы при произвольном входном сигнале.

7. Использовать модуль LTI-Viewer для построения различных характеристик.

Для описания линейных систем могут применяться несколько способов:

? дифференциальные уравнения;

? модели в пространстве состояний;

? передаточные функции;

? модели вида «нули-полюса».

Первые два способа называются временными, поскольку описывают поведение системы во временной области и отражают внутренние связи между сигналами. Передаточные функции и модели вида «нули-полюса» относятся к частотным способам описания, т.к. непосредственно связаны с частотными характеристиками системы и отражают свойства объекта «вход-выход».

Модель объекта в форме передаточной функции:

Текст программы

clear all;

clc;

% Ввод передаточной функции %

num=[0 12 6 5]

den=[1 3 2 -4]

w=tf(num,den)

% Построение модели объекта в пространстве состояний %

w_ss=ss(w)

% Нахождение нулей и полюсов передаточной функции %

z=zero(w)

p=pole(w)

% Нахождение коэффициента усиления системы %

% в установившемся режиме %

k=dcgain(w)

% Определение полосы пропускания системы %

b=bandwidth(w)

% Построение модели системы в форме "нули-полюса" %

w_zpk=zpk(w)

% Расположение нулей и полюсов системы на графике %

pzmap(w);grid;

print -dmeta;

% Построение переходной функции %

step(w);grid;

print -dmeta;

% Построение импульсной переходной функции %

impulse(w);grid;

print -dmeta;

% Создание массива частот для построения %

% амплитудно-частотной характеристики %

freq=logspace(-4,4,500);

r=freqresp(w,freq);

r=r(:);

semilogx(freq,abs(r));grid;

print -dmeta;

% Создание массива частот для построения %

% фазо-частотной характеристики %

freq=logspace(-4,4,500);

r=freqresp(w,freq);

r=r(:);

phi=angle(r)*180/pi;

semilogx(freq,phi);grid;

print -dmeta;

% Диаграмма Боде %

bode(w);grid;

print -dmeta;

% Частотный годограф Найквиста %

nyquist(w);grid;

print -dmeta;

% Сигнал, имитирующий прямоугольные импульсы %

% единичной амплитуды %

% (период - 4 секунды, количество - 5 импульсов) %

[u,t]=gensig('square',4);

lsim(w,u,t);grid;

print -dmeta;

Результаты работы программы

num = 0 12 6 5

den = 1 3 2 -4

w = 12 s^2 + 6 s + 5

---------------------

s^3 + 3 s^2 + 2 s - 4

Continuous-time transfer function.

w_ss =

a =

x1 x2 x3

x1 -3 -1 2

x2 2 0 0

x3 0 1 0

b =

u1

x1 4

x2 0

x3 0

c =

x1 x2 x3

y1 3 0.75 0.625

d =

u1

y1 0

Continuous-time state-space model.

z =

-0.2500 + 0.5951i

-0.2500 - 0.5951i

p =

-1.8982 + 1.1917i

-1.8982 - 1.1917i

0.7963 + 0.0000i

k =

-1.2500

b =

0.3819

w_zpk =

12 (s^2 + 0.5s + 0.4167)

---------------------------------

(s-0.7963) (s^2 + 3.796s + 5.023)

Continuous-time zero/pole/gain model.

Рис. 2.1. Расположение нулей и полюсов системы на графике

Рис. 2.2. Переходная функция

Рис. 2.3. Импульсная переходная функция

Рис. 2.4. Амплитудно-частотная характеристика

Рис. 2.5. Фазо-частотная характеристика

Рис. 2.6. Диаграмма Боде

Рис. 2.7. Частотный годограф Найквиста

Рис. 2.8. Сигнал, имитирующий прямоугольные импульсы единичной амплитуды (период ? 4 секунды, количество ? 5 импульсов)

3. Построение модели с распределенными параметрами

3.1 Исходные данные

Рассмотрим стержень из теплопроводящего материала с коэффициентом теплопроводности k. Предположим, что температура на концах стержня задана, а боковая поверхность стержня теплоизолирована. Пусть ось x направлена вдоль оси стержня, а его концы расположены в точках x=0 и x=L.

3.2 Общие теоретические сведения

Задача сводится к определению зависимости от времени t температуры u в точках стержня, то есть функции двух переменных u(x,t). Функция u(x,t) должна удовлетворять уравнению теплопроводности

(0<x<L),(3.1)

начальному условию

u(x,0)=f(x), (0<x<L),(3.2)

и условиям на концах стержня

u(0,t)=j1(t), u(L,t)=j2(t), (tV0).(3.3)

Значения u(0,0) и u(L,0), полученные из (2) и (3), должны совпадать. Это будет если j1(0)=f(0), j2(0)=f(L).

Следует отметить, что путем замены переменных t^=a2t уравнение (1) можно преобразовать к виду:

(3.4)

Это означает, что решение задачи (3.1?3.3) путем замены переменных сводится к решению задачи (3.4). Далее будем полагать а=1.

Построим на плоскости (x,t) сетку с шагом h по переменной x (xi=(i-1)h; i=1, …, n+1; h=L/n) и с шагом t по переменной t (tj=(j-1)t). Обозначим uij=u(xi,tj). Производные в уравнении (1) аппроксимируем следующим образом:

(3.5)

(3.6)

Подставляя (3.5) и (3.6) в (3.1) при a=1, получим разностное уравнение:

(3.7)

В соответствии с (3.2) и (3.3) значения

ui0=f(xi), u0j=j1(tj), unj=j2(tj)(3.8)

являются известными. Тогда, подставляя в (3.7) j=0, получим систему n-1 линейных уравнений, решив которую можно определить ui1 (i=1, …, n-1). При этом, поскольку u01=j1(t1), …, un1=j2(t1), известными оказываются все значения временного слоя j=1, (t=t1). Затем, подставляя в (3.7) j=2, решаем систему уравнений относительно ui2 и т.д. для всех j=2, …, m.

Из (3.7) следует, что в каждое i-тое уравнение (i=1, …, n-1) с ненулевыми коэффициентами входят только три неизвестных (ui-1,j, uij, ui+1,j). Величина ui,j-1 к этому моменту является известной и потому отнесена в правую часть уравнения. Таким образом, матрица системы уравнений является трехдиагональной и эту систему можно решить методом прогонки. Для этого представим ее в стандартном виде:

(3.9)

Для данной задачи xi=uij, ai=l, gi=l, bi=1-2l, b0=1, g0=0, j0=u0j=j1(tj), jn=unj=j2(tj), ji=-ui,j-1 (i=1, …, n-1).

Пусть на j-том шаге заданными являются параметры ui,j-1 (i=1, …, n-1), u0j, unj, l. Все неизвестные значения uij можно разместить в массиве xi (xi=uij; i=0, …, n). Ищем связь xi-1 с xi в виде рекуррентного соотношения:

xi-1=ci-1xi+ni-1, i=1, …, n.(3.10)

Подставляя (3.10) в (3.7), получаем:

lci-1xi-(1+2l)xi+lxi+1 = -ui,j-1-lni-1.(3.11)

Отсюда

(3.12)

Сравнивая (3.12) с (3.10), находим рекуррентные соотношения:

,

(3.13)

c0=0, n0=u0j.

Таким образом, алгоритм определения значений uij по известным ui,j-1 состоит из двух этапов: прямого хода прогонки по формулам (3.13) при (i=1, …, n-1) и обратного хода прогонки по формуле (3.10) при (i=n, …, 2).

а) б)

Рис. 3.1. Шаблоны неявной (а) и явной (б) разностных схем

Необходимо отметить, что разностное уравнение (7) связывает одно известное значение Ui,j-1 (из предыдущего j-1 временного слоя) и три неизвестных (Ui,j, Ui-1,j, Ui+1,j). Поэтому найти значения Ui,j (i=1, …, n-1) можно только все сразу путем решения системы уравнений. Такая схема связи переменных в разностном уравнении называется неявной. Шаблон неявной разностной схемы представлен на рис. 3.1 (а).

Наряду с неявной возможна организация явной разностной схемы. Для этого вместо выражения (5) для первой разностной производной по времени используют формулу:

(3.14)

Тогда разностное уравнение запишется в виде:

(3.15)

В этом случае связываются три неизвестные значения, относящиеся к предыдущему временному слою (здесь j-тому) и только одно неизвестное Ui,j+1. Шаблон явной разностной схемы представлен на рис. 3.1 (б).

При использовании этой схемы неизвестные параметры определяются путем последовательного применения формулы (2.14) при i=1, …, n-1. Поскольку при этом не надо решать системы уравнений, то процесс определения параметров одного временного слоя требует меньших затрат времени, чем в случае неявной схемы.

Однако, неявная схема устойчива (ошибка не возрастает от шага к шагу) при любых значениях ?=?/h2. Явная схема является устойчивой только при ? <1/2. В противном случае развивается экспоненциальный рост погрешности так, что обычно происходит аварийная остановка ЭВМ по переполнению порядка. Поэтому при использовании явной схемы вычисления приходится вести с очень малым шагом по времени.

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

При выполнении данной работы будем предполагать, что температура на концах стержня поддерживается постоянной

j1(t)Tf(0), j2(t)Tf(L).

3.3 Решение задачи для исходных данных

Решить смешанную задачу для уравнения теплопроводности с начальными u(x,0)=f(x) и граничными условиями u(0,t)=f(0), u(1,t)=b, L=1.

Табл. 3.1. Вариант задания

а

b

c

d

f(x)

1

1,1

3

0,05

Текст программы

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

#define a 14

#define b 16

#define c 0.25

#define d 0.5

#define N 20

#define L 1

#define tau 60

#define ro 7800

#define lam 46

#define c_f 460

#define t_max 3000

float T[N+1],alpha[N+1],beta[N+1],time1=0,h;

float A[N+1],C[N+1],B[N+1],F[N+1];

float h_iav,tau_iav,a_iav,T_iav[N+1],TT_iav[N+1],time_iav=0;

float funkf(float x)

{

float m;

if(x>=0)

{

if(x<c)

{

m=a-(x/c)*a;

}

else

if(x<d)

{

m=0;

}

else

if(x<=1)

m=((1-x)*b)/(1-d);

}

return(m);

}

void start_heat_field(float h)

{

for(int i=1;i<=N;i++)

T[i]=funkf(h*(i-1));

}

void neiavnii_metod_start(){

h=(float)L/(float)(N);

start_heat_field(h);

for(int i=1;i<=N;i++)

Form1->Series1->AddXY(h*i,T[i]);

}

void neiavnii_metod_calc(){

time1=time1+tau;

alpha[1]=0;

beta[1]=funkf(0);

for (int i=2;i<=N-1;i++){

A[i]=C[i]=lam/(h*h);

B[i]=(2*lam)/(h*h)+(ro*c_f)/tau ;

F[i]=-((ro*c_f)/tau)*T[i];

alpha[i]=A[i]/(B[i]-C[i]*alpha[i-1]) ;

beta[i]=(C[i]*beta[i-1]-F[i])/(B[i]-C[i]*alpha[i-1]);

}

T[N]=funkf(L-0.0000001);

for (int i=N-1;i>=2;i--){

T[i]=(A[i]/(B[i]-C[i]*alpha[i]))*T[i+1]+(C[i]*beta[i-1]-F[i])/(B[i]-C[i]*alpha[i-1]);

Form1->Series1->Clear();

T[0]=funkf(0.0000001);

for(int i=1;i<=N;i++)

Form1->Series1->AddXY(h*i,T[i]);

}

}

void iavnii_metod_start(){

a_iav=lam/(ro*c);

tau_iav=(h*h)/(4*a_iav);

for(int i=1;i<=N;i++)

T_iav[i]=funkf(h*(i-1));

for(int i=1;i<=N;i++)

Form1->Series2->AddXY(h*i,T_iav[i]);

T_iav[1]=funkf(0.0000001);

T_iav[N]=funkf(L-0.0000001);

}

void iavnii_metod_calc(){

time_iav=time_iav+tau_iav;

for(int i=1;i<=N+1;i++)

TT_iav[i]=T_iav[i];

for(int i=2;i<=N-1;i++)

T_iav[i]=TT_iav[i]+((lam*tau_iav)/(ro*c))*((TT_iav[i+1]-2*TT_iav[i]+TT_iav[i-1])/(h*h));

Form1->Series2->Clear();

for(int i=1;i<=N;i++)

Form1->Series2->AddXY(h*i,T_iav[i]);

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

neiavnii_metod_start();

iavnii_metod_start();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

time1=0;

neiavnii_metod_start();

iavnii_metod_start();

while (time1<t_max){

neiavnii_metod_calc();

iavnii_metod_calc();

}

Label1->Caption="Time= "+FloatToStr(time1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

time1=0;

neiavnii_metod_start();

iavnii_metod_start();

while (time1<TrackBar1->Position*tau){

neiavnii_metod_calc();

iavnii_metod_calc();

}

Label1->Caption="Time= "+FloatToStr(time1);

}

//---------------------------------------------------------------------------

Результаты работы программы

Вывод:

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

корреляция модель итерационный функция

4. Численные процедуры оценивания параметров нелинейных регрессионных моделей

Вариант задания - метод Ньютона.

Метод Ньютона, алгоритм Ньютона (также известный как метод касательных) ? это итерационный численный метод нахождения корня (нуля) заданной функции. Поиск решения осуществляется путем построения последовательных приближений и основан на принципах простой итерации. Метод обладает квадратичной сходимостью. Улучшением метода является метод хорд и касательных. Также метод Ньютона может быть использован для решения задач оптимизации, в которых требуется определить нуль первой производной либо градиента в случае многомерного пространства.

Основная идея метода заключается в следующем: задается начальное приближение вблизи предположительного корня, после чего строится касательная к исследуемой функции в точке приближения, для которой находится пересечение с осью абсцисс. Эта точка и берется в качестве следующего приближения. И так далее, пока не будет достигнута необходимая точность.

Пусть ? определена на отрезке и дифференцируемая на нем вещественно-значная функция. Тогда формула итеративного исчисления приближений может быть выведена следующим образом:

где ? угол наклона касательной в точке .

Следовательно, искомое выражение для имеет вид:

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

Алгоритм:

1. Задается начальное приближение .

2. Пока не выполнено условие остановки, в качестве которого можно взять или (т.е. погрешность в нужных пределах), вычисляют новое приближение: .

Недостатки:

1. Если начальное приближение недостаточно близко к решению, то метод может не сойтись.

2. Если производная не непрерывна в точке корня, то метод может расходиться в любой окрестности корня.

3. Если не существует вторая производная в точке корня, то скорость сходимости метода может быть заметно снижена.

4. Если производная в точке корня равна нулю, то скорость сходимости не будет квадратичной, а сам метод может преждевременно прекратить поиск, и дать неверное для заданной точности приближение.

Текст программы

//---------------------------------------------------------------------------

#include <vcl.h>

#include <math.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

double e=0.00000000000001,xz[4]={0,0,0,0};

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

StringGrid1->Cells[0][0]="Y";

StringGrid1->Cells[1][0]="X1";

StringGrid1->Cells[2][0]="X2";

StringGrid1->Cells[3][0]="X3";

StringGrid1->Cells[0][1]="20,8";

StringGrid1->Cells[1][1]="8";

StringGrid1->Cells[2][1]="5";

StringGrid1->Cells[3][1]="1";

StringGrid1->Cells[0][2]="14,2";

StringGrid1->Cells[1][2]="2";

StringGrid1->Cells[2][2]="4";

StringGrid1->Cells[3][2]="3";

StringGrid1->Cells[0][3]="32,3";

StringGrid1->Cells[1][3]="4";

StringGrid1->Cells[2][3]="9";

StringGrid1->Cells[3][3]="7";

StringGrid1->Cells[0][4]="11,5";

StringGrid1->Cells[1][4]="2";

StringGrid1->Cells[2][4]="2";

StringGrid1->Cells[3][4]="4";

StringGrid1->Cells[0][5]="8,2";

StringGrid1->Cells[1][5]="2";

StringGrid1->Cells[2][5]="3";

StringGrid1->Cells[3][5]="1";

}

//---------------------------------------------------------------------------

double f(double b0,double b1,double b2,double b3){

double m;

m=(xz[0]-(b0+xz[1]*b1+xz[2]*b2+xz[3]*b3)) ;

m=m*m;

return m;

}

bool check(double f,double xl1,double xl2,double xl3,double xl4,double x1,double x2,double x3,double x4)

{

if (f<e)

return true;

return false;

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

double h=0.00000001,x1=-1.5397,x2=1.4183,x3=1.8612,x4=1.647;

double Xl1,Xl2,Xl3,Xl4,proizv1,proizv2,proizv3,proizv4;

xz[0]=0;xz[1]=0;xz[2]=0;xz[3]=0;

for (int i=1;i<6;i++){

xz[0]=xz[0]+StrToFloat(StringGrid1->Cells[0][i]);

xz[1]=xz[1]+StrToFloat(StringGrid1->Cells[1][i]);

xz[2]=xz[2]+StrToFloat(StringGrid1->Cells[2][i]);

xz[3]=xz[3]+StrToFloat(StringGrid1->Cells[3][i]);

}

xz[0]=xz[0]/5;xz[1]=xz[1]/5;xz[2]=xz[2]/5;xz[3]=xz[3]/5;

do{

proizv1=(f(x1,x2,x3,x4)-f(x1-h,x2,x3,x4))/h;

proizv2=(f(x1,x2,x3,x4)-f(x1,x2-h,x3,x4))/h;

proizv3=(f(x1,x2,x3,x4)-f(x1,x2,x3-h,x4))/h;

proizv4=(f(x1,x2,x3,x4)-f(x1,x2,x3,x4-h))/h;

Xl1=x1;Xl2=x2;Xl3=x3;Xl4=x4;

x1=Xl1-f(x1,x2,x3,x4)/proizv1;

x2=Xl2-f(x1,x2,x3,x4)/proizv2;

x3=Xl3-f(x1,x2,x3,x4)/proizv3;

x4=Xl4-f(x1,x2,x3,x4)/proizv4;

// Memo1->Lines->Add(FloatToStr(x1)+" "+FloatToStr(x2)+" "+FloatToStr(x3)+" "+FloatToStr(x4));

}while (check(f(x1,x2,x3,x4),Xl1,Xl2,Xl3,Xl4,x1,x2,x3,x4)) ;

Label1->Caption="b0= "+FloatToStr(x1);

Label2->Caption="b1= "+FloatToStr(x2);

Label3->Caption="b2= "+FloatToStr(x3);

Label4->Caption="b3= "+FloatToStr(x4);

double y;

Series1->Clear();

Series2->Clear();

for(int i=1;i<6;i++){

y=x1+StrToFloat(StringGrid1->Cells[1][i])*x2+StrToFloat(StringGrid1->Cells[2][i])*x3+StrToFloat(StringGrid1->Cells[3][i])*x4;

Series1->AddXY(i,y);

Series2->AddXY(i,StrToFloat(StringGrid1->Cells[0][i]));

}

}

//---------------------------------------------------------------------------

Результаты работы программы

Вывод:

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

Заключение

В ходе выполнения курсовой работы были получены практические навыки в построении математических моделей технических объектов, написании программ для решения задач моделирования с использованием математического пакета MATLAB, изучены теоретические основы и особенности выполнения параметрической идентификации различных моделей, реализации алгоритмов линейного и нелинейного регрессионного анализа, планирования эксперимента.

Перечень ссылок

1. Автоматизированные системы управления технологическими процессами. Идентификация и оптимальное управление / Под ред. Салнги В.И. ? Харьков: «Вища школа», 1976 г. ? 180 с.

2. Брикман М.С., Кристинков Д.С. Аналитическая идентификация управляемых систем. ? Рига: «Зинатне», 1974 г. ? 206 с.

3. Гельфандбейн Я.А. Методы кибернетической диагностики динамических систем. Идентификация функционирующих систем математическими моделями. ? Рига: «Зинатне», 1967 г. ? 542 с.

4. Дрейпер Н., Смит Г. Прикладной регрессионный анализ. ? М.: «Статистика», 1973 г. ? 391 с.

5. Демиденко Е.З. Линейная и нелинейная регрессии. - М.: «Финансы и статистика», 1981 г.

Размещено на Allbest.ru


Подобные документы

  • Идентификация объектов методом наименьших квадратов, построение линейной модели для неравноточных измерений входной величины. Численные процедуры оценивания параметров нелинейной регрессии; аналитическая модель химического реактора; линеаризация.

    курсовая работа [1,2 M], добавлен 12.12.2010

  • Анализ матрицы коэффициентов парной корреляции. Выбор факторных признаков для построения двухфакторной регрессионной модели. Оценка параметров регрессии по методу наименьших квадратов. Нахождение определителей матриц. Применение инструмента Регрессия.

    контрольная работа [1,0 M], добавлен 13.01.2013

  • Анализ методов идентификации, основанных на регрессионных процедурах с использованием метода наименьших квадратов. Построение прямой регрессии методом Асковица. Определение значения дисперсии адекватности и воспроизводимости, коэффициентов детерминации.

    курсовая работа [549,8 K], добавлен 11.12.2012

  • Построение эмпирических формул методом наименьших квадратов. Линеаризация экспоненциальной зависимости. Элементы теории корреляции. Расчет коэффициентов аппроксимации, детерминированности в Microsoft Excel. Построение графиков функций, линии тренда.

    курсовая работа [590,9 K], добавлен 10.04.2014

  • Определение недостатков итерационного численного способа нахождения корня заданной функции (метод Ньютона). Рассмотрение основ математического и алгоритмического решения поставленной задачи, ее функциональной модели, блок-схемы и программной реализации.

    курсовая работа [364,8 K], добавлен 25.01.2010

  • Аппроксимация эмпирических данных линейной и квадратичной зависимостью. Теория корреляции: расчет коэффициентов детерминированности. Построение алгоритма и вычисление приближённых функций методом наименьших квадратов в среде программирования Turbo Pascal.

    курсовая работа [766,6 K], добавлен 26.12.2011

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

    курсовая работа [2,3 M], добавлен 21.10.2014

  • Определение параметров линейной зависимости из графика. Метод парных точек. Метод наименьших квадратов. Блок-схема программного комплекса в Microsoft Visual Studio и Microsoft Excel. Инструкция пользователя, скриншоты. Общий вид программного кода.

    курсовая работа [2,1 M], добавлен 29.11.2014

  • Построение эмпирических формул методом наименьших квадратов. Линеаризация экспоненциальной зависимости. Элементы теории корреляции. Расчет аппроксимаций в табличном процессоре Excel. Описание программы на языке Turbo Pascal; анализ результатов ее работы.

    курсовая работа [390,2 K], добавлен 02.01.2015

  • Построение корреляционного поля, гипотеза связи исследуемых факторов. Определение коэффициента корреляции. Оценка статистической значимости вычисленных коэффициентов корреляции. Параметры уравнения линейной парной регрессии, коэффициента эластичности.

    реферат [526,7 K], добавлен 10.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.