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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ddXY(x[i],f(x[i]),,clRed);:=4;(abs(x[4]-x[1])/2)>Eps doy[3]>y[2] then[4]:=x[3]; y[4]:=y[3];[3]:=x[2]; y[3]:=y[2];[2]:=x[4]-Tau*(x[4]-x[1]);[2]:=f(x[2]);.Series[0].AddXY(x[2],y[2],,clRed);(N)[1]:=x[2]; y[1]:=y[2];[2]:=x[3]; y[2]:=y[3];[3]:=x[1]-Tau*(x[4]-x[1]);[3]:=f(x[3]);.Series[0].AddXY(x[3],y[3],,clRed);(N);.Series[1].AddXY((x[1]+x[4])/2,f((x[1]+x[4])/2),,clBlue);:=FloatToStr((x[4]+x[1])/2)+; Количество итераций = +IntToStr(N);TMyForm.OptPoisk(XMax,XMin,Eps,D:Real):string;fb: array[byte] of word;: array[1..4] of real;: array[byte] of real;: byte;: word;[1]:=XMin;

fb[0]:=1;[4]:=XMax;[1]:=1;:=1;

f(x[2])then[4]:=x[3];[3]:=x[2][1]:=x[2];[2]:=x[3];;.Series[1].AddXY((x[1]+x[4])/2,f((x[1]+x[4])/2),,clRed);:=FloatToStr((x[4]+x[1])/2)+;=+IntToStr(N);TMyForm.ExitClick(Sender:TObject);;TMyForm.btExecClick(Sender:TObject);:=StrToFloat(edMin.Text);:=StrToFloat(edMax.Text);:=StrToFloat(edEps.Text);:=0.25*Epsilon();;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Width:=500;.Height:=310;.Show;.Show;rbM1.Checked=truethenlbX.Caption:=lbX.Caption+(PasPoisk(XMax,XMin,Epsilon,Delta));rbM2.Checked=truethenlbX.Caption:=lbX.Caption+(Dihotomy(XMax,XMin,Epsilon,Delta));rbM3.Checked=truethenlbX.Caption:=lbX.Caption+(GoldSection(XMax,XMin,Epsilon,Delta));rbM4.Checked=truethenlbX.Caption:=lbX.Caption+(OptPoisk(XMax,XMin,Epsilon,Delta));;.">while (fb[N]f(x[2]) then[4]:=x[3];[3]:=x[2][1]:=x[2];[2]:=x[3];;.Series[1].AddXY((x[1]+x[4])/2,f((x[1]+x[4])/2),,clRed);:=FloatToStr((x[4]+x[1])/2)+; Количество итераций = +IntToStr(N);TMyForm.ExitClick(Sender: TObject);;TMyForm.btExecClick(Sender: TObject);:=StrToFloat(edMin.Text);:=StrToFloat(edMax.Text);:=StrToFloat(edEps.Text);:=0.25*Epsilon(Данные некорректны);;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Enabled:=False;.Width:=500;.Height:=310;.Show;.Show;rbM1.Checked=true then lbX.Caption:=lbX.Caption+(PasPoisk(XMax,XMin,Epsilon,Delta));rbM2.Checked=true then lbX.Caption:=lbX.Caption+(Dihotomy(XMax,XMin,Epsilon,Delta));rbM3.Checked=true then lbX.Caption:=lbX.Caption+(GoldSection(XMax,XMin,Epsilon,Delta));rbM4.Checked=true then lbX.Caption:=lbX.Caption+(OptPoisk(XMax,XMin,Epsilon,Delta));;.

Динамическое программирование

 

Метод динамического программирования - широко известный и мощный математический метод современной теории управления.

Рассмотрим управляемую систему, состояние которой в каждый момент времени характеризуется n-мерным вектором x с компонентами x1 , …, xn . Предполагаем, что время t изменяется дискретно и принимает целочисленные значения 0, 1, …. Так, для процессов в экономике и экологии дискретным значениям времени могут отвечать дни, месяцы или годы, а для процессов в электронных устройствах интервалы между соседними дискретными моментами времени равны времени срабатывания устройства. Предполагаем, что на каждом шаге на систему оказывается управляющее воздействие при помощи m-мерного вектора управления u с компонентами u1 , …, um . Таким образом, в каждый момент времени t состояние системы характеризуется вектором x(t), а управляющее воздействие - вектором u(t). На выбор управления обычно бывают наложены ограничения, которые в достаточно общей форме можно представить в виде

 

u(t) k U, t = 0, 1, …

 

Здесь U - заданное множество в n-мерном пространстве.

Под влиянием выбранного в момент t управления (принятого решения) система переходит в следующий момент времени в новое состояние. Этот переход можно описать соотношением

 

x(t + 1) = f (x(t), u(t)), t = 0, 1, …

 

Здесь f (x, u) - n-мерная функция от n-мерного вектора x и m-мерного вектора u, характеризующая динамику рассматриваемой системы. Эта функция предполагается известной (заданной) и отвечает принятой математической модели рассматриваемого управляемого процесса.

Зададим еще начальное состояние системы

(0) = x0,

 

где x0 - заданный n-мерный вектор. Таким образом, многошаговый процесс управления описывается соотношениями (1)-(3). Процедура расчета конкретного процесса сводится к следующему. Пусть в некоторый момент t состояние системы x(t) известно. Тогда для определения состояния x(t + 1) необходимо выполнить две операции:

1)выбрать допустимое управление u(t), удовлетворяющее условию (1);

2)определить состояние x(t + 1) в следующий момент времени согласно (2). Так как начальное состояние системы задано, то описанную процедуру можно последовательно выполнить для всех t = 0, 1, … Последовательность состояний x(0), x(1), … часто называется траекторией системы.

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

 

Задача оптимального управления

 

Пусть задан некоторый критерий качества процесса управления (критерий оптимальности) вида

Здесь R(x, u) и F (x) - заданные скалярные функции своих аргументов, N - момент окончания процесса, N > 0. При этом функция R может отражать расход средств или энергии на каждом шаге процесса, а функция F - характеризовать оценку конечного состояния системы или точность приведения в заданное состояние.

Задача оптимального управления формулируется как задача определения допустимых управлений u(0), u(1), …, u(N - 1), удовлетворяющих ограничениям (1), и соответствующей траектории, то есть последовательности x(0), x(1), …, x(N ), которые в совокупности доставляют минимальное значение критерию (4) для процесса (2), (3).

Минимизация критерия (4) обычно отвечает выбору управления, обеспечивающего наименьшие затраты средств, ресурсов, энергии, наименьшее отклонение от заданной цели или заданной траектории процесса. Наряду с этим часто ставится также задача о максимизации критерия вида (4), например о максимизации дохода или объема производства. Однако нетрудно видеть, что максимизация критерия J эквивалентна минимизации критерия (- J ). Поэтому простая замена знака ?/p>