Построение и оценка математических моделей
Идентификация объектов методом наименьших квадратов. Анализ коэффициентов парной, частной и множественной корреляции. Построение линейной модели и модели с распределенными параметрами. Итерационный численный метод нахождения корня (нуля) заданной функции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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