Формирование математической модели

Автор работы: Пользователь скрыл имя, 06 Июня 2013 в 23:54, курсовая работа

Описание работы

Абстрактное моделирование с помощью компьютеров - вербальное, информационное, математическое - в наши дни стало одной из информационных технологий, в познавательном плане исключительно мощной. Изучение компьютерного математического моделирования открывает широкие возможности для осознания связи информатики с математикой и другими науками - естественными и социальными.
Говоря о математических моделях, имеется в виду сугубо прикладной аспект. В современной математике есть достаточно формализованный подход к понятию «математическая модель». Внутри него вполне допустимо игнорировать вопрос о связи математики с реалиями физического мира. В этом подходе моделями являются, например, система целых чисел, система действительных чисел, евклидова геометрия, алгебраическая группа, топологическое пространство и т.д

Содержание работы

1

2


3
4
4.1


4.2

4.3


4.3.1

4.3.2

4.3.3
4.4

4.4.1
4.4.2
5
5.1
5.2
5.3
5.4
Введение…………………………….…..
Основные понятия теории моделирования…………………………
Этапы и цели компьютерного математического моделирования…………………..……..
Принципы моделирования……..…….
Моделирование в физике……….……
Электрические цепи с внешним периодическим воздействием…………………….…….
Формирование математической модели……..........................................
Анализ и параметрическая оптимизация электрической цепи………………………………...........
Задача параметрической оптимизации………………………..….
Методы параметрической оптимизации………………………..….
Метод координатного спуска…..….
Методы поиска стационарных решений………………………...............
Непосредственный метод………..…
Метод установления………………...
Описание программы…………............................
Блок-схема……………………………..
Текст программы……………………..
Работа с программой………………..
Результаты работы программы……………………………...
Заключение……………………………..
Список использованных источников……………………………..

Файлы: 1 файл

Моделирование.doc

— 348.00 Кб (Скачать файл)

В обобщенном виде задача параметрической  оптимизации формулируется следующим образом. Пусть D - область в пространстве параметров  и пусть в этой области определена скалярная функция W(P), удовлетворяющая условию

при ограничениях типа равенств

и типа неравенств

Требуется найти минимум (максимум) W(P) в области D при указанных ограничениях. Если ограничения отсутствуют, имеет место безусловная оптимизация, оптимизация при наличии ограничений носит название условной. Наиболее просто осуществляется безусловная оптимизация. Путем применения специальных приемов оптимизация с ограничениями может быть сведена к задаче безусловной оптимизации, но с числом переменных, большим, чем т. В зависимости от размерности пространства параметров (значения т) выделяют одномерную (т=1) и многомерную (т>1) оптимизацию.

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

Точка Р' называется точкой локального минимума функции f(P), если существует -окрестность данной точки, такая, что ). Значение f(P') носит название локального минимума функции f(P).

Точка локального минимума называется точкой глобального минимума, если для всех других точек локального минимума (k = 1,2,...)

выполняется условие  . Значение при этом носит название глобального минимума.

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

 

      1. Методы параметрической 

         оптимизации

 

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

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

 

      1. Метод координатного 

         спуска

 

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

Рассмотрим сущность метода координатного спуска на примере  минимизации функции двух переменных W(P)=W(p1,p2).

Предположим, что известна прямоугольная область на плоскости P=(p1,p2), где находится точка минимума функции (р1*,р2*), то есть p1* € (p1L,p1P), p2* € (p2L,p2P). Вначале в прямоугольной области выберем начальную точку ( ) и зафиксируем координату , тогда функция W(р1, ) , будет зависеть от одной переменной р1. Методом минимизации функции одной переменной определяем точку р11 минимума функции W(р1, ). Затем фиксируем координату р1= и определяем точку минимумам функции W( ,р2) относительно координаты р2. Аналогичным образом от точки ( ) переходим к точке ( ) и т.д. Алгоритм определения точки максимума аналогичен.

В качестве критерия окончания  итерационного процесса координатного  спуска можно использовать выполнение неравенств:

  (13)

 

  1. Методы поиска

               стационарных решений

 

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

Решение системы дифференциальных уравнений, удовлетворяющее начальным  условиям X(t0 )-Q, будем обозначать X (t , tg, Q).

Решение таких систем имеет вид

                                            (14)

 

 где Xn(t) - стационарное  решение периодического типа, представляющее собой частное решение системы неоднородных дифференциальных уравнений.

 

 

 

 

 

  1. Непосредственный метод

 

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

    или                                (15)

где - решение задачи Коши с нулевыми начальными условиями.

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

Xn(t0) = Xn(t0 + T),

 Из (15) находим

                                   (16)

 

Так как решение является периодическим с периодом Т, то начальный момент времени tg достаточно выбирать на интервале [0,Т), то есть О t0 <T . Без ущерба для общности будем выбирать начальный момент времени , тогда выражение для начальных условий периодического решения (2. 12) примет вид

                                                    (17)

 

где Х(Т,0) - решение задачи Коши с начальными условиями Х(0) = 0 .

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

решить задачу Коши на одном периоде с нулевыми начальными условиями одним из численных методов; в результате определяется вектор Х(Т,0) ;

2) вычислить матричную  экспоненту  ;

3) определить вектор  начальных условий периодического  решения  по формуле (17);

4) решить задачу Коши для исходной системы дифференциальных уравнений на одном периоде с начальными условиями Х(0) = .

 

  1. Метод установления

 

Полагая начальный момент времени t0 = 0 и учитывая условие периодичности, поиск периодического решения системы дифференциальных уравнений можно свести к решению системы трансцендентных уравнений относительно вектора начальных условий Q:

 

Q=X(T,Q)    (18)

 

Наиболее простой и  естественный путь решения системы (18) - метод простой итерации:

 

q(s+d = x(T,&S)), s = 0,1,2,...,      (19)

 

где вектор начального приближения    задается произвольным образом.

Каждое последующее  приближение  находится решением задачи Коши на интервале (О, Т) с начальным условием, задаваемым предыдущим приближением . С другой стороны, учитывая периодичность правой части системы дифференциальных уравнений, Q(S+1) определяется решением задачи Коши на интервале с условием X(sT)= Qs, то есть реализация итерационного процесса (19) эквивалентна решению задачи Коши с начальным условием, задаваемым вектором Q , на временном интервале, длительность которого определяется условиями сходимости. Поэтому метод поиска вектора начальных условий периодического решения по численной схеме (19) называют еще методом установления или поиском периодического решения через переходный процесс.

Если норма вектора  определяется как  , то в качестве критерия сходимости выбирают выполнение неравенства:

 

.         
                       (20)

 

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

 

.                      (21)

 

  1. ОПИСАНИЕ ПРОГРАММЫ

 

  1. Блок-схема


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

unit Unit_main;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, abfComponents, abfDialogs, Menus, ExtCtrls, StdCtrls,

  VasGroupBox, VasLabel, Grids, ValEdit;

 

type

  TForm_main = class(TForm)

    Panel1: TPanel;

    Image1: TImage;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    abfWinAboutDlg1: TabfWinAboutDlg;

    VasGroupBox1: TVasGroupBox;

    VasLabel1: TVasLabel;

    VasLabel2: TVasLabel;

    VasLabel3: TVasLabel;

    VasLabel4: TVasLabel;

    VasLabel5: TVasLabel;

    VasLabel6: TVasLabel;

    VasLabel7: TVasLabel;

    VasLabel11: TVasLabel;

    VasLabel12: TVasLabel;

    VasLabel13: TVasLabel;

    VasLabel14: TVasLabel;

    VasLabel15: TVasLabel;

    Image2: TImage;

    VasLabel16: TVasLabel;

    ValueListEditor1: TValueListEditor;

    VasLabel8: TVasLabel;

    ValueListEditor2: TValueListEditor;

    Button1: TButton;

    Timer1: TTimer;

    procedure N4Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form_main: TForm_main;

  r12,  r23,  r13,  Xl,  Xc,  L,  C,  Ur4,  Et,  t:real;

 

implementation

 

uses Unit_graph;

 

{$R *.dfm}

 

procedure TForm_main.N4Click(Sender: TObject);

begin

  abfWinAboutDlg1.Execute;

end;

 

procedure TForm_main.Button1Click(Sender: TObject);

begin

 

r12:=strtofloat(ValueListEditor2.Values['R1'])*strtofloat(ValueListEditor2.Values['R2'])/

  (strtofloat(ValueListEditor2.Values['R1'])+

   strtofloat(ValueListEditor2.Values['R2'])+

   strtofloat(ValueListEditor2.Values['R3']));

 

  r23:=strtofloat(ValueListEditor2.Values['R2'])*strtofloat(ValueListEditor2.Values['R3'])/

  (strtofloat(ValueListEditor2.Values['R1'])+

   strtofloat(ValueListEditor2.Values['R2'])+

   strtofloat(ValueListEditor2.Values['R3']));

 

  r13:=strtofloat(ValueListEditor2.Values['R1'])*strtofloat(ValueListEditor2.Values['R3'])/

  (strtofloat(ValueListEditor2.Values['R1'])+

   strtofloat(ValueListEditor2.Values['R2'])+

   strtofloat(ValueListEditor2.Values['R3']));

 

  L:=strtofloat(ValueListEditor1.Values['Ln']);

  c:=strtofloat(ValueListEditor1.Values['Cn']);

 

  Timer1.Enabled:=true; Timer1.Enabled:=true;

  Form_graph.ShowModal;

  Timer1.Enabled:=false;

end;

 

procedure TForm_main.Timer1Timer(Sender: TObject);

begin

t:=t+1;

L:=L+(strtofloat(ValueListEditor1.Values['Lk'])-strtofloat(ValueListEditor1.Values['Ln']))/10;

if L>strtofloat(ValueListEditor1.Values['Lk']) then

   begin

    L:=strtofloat(ValueListEditor1.Values['Ln']);

    c:=c+(strtofloat(ValueListEditor1.Values['Ck'])-strtofloat(ValueListEditor1.Values['Cn']))/10;

   end;

 

 

Ur4:=Ur4+sqrt(strtofloat(ValueListEditor2.Values['Ec'])*

strtofloat(ValueListEditor2.Values['Ec'])+

strtofloat(ValueListEditor2.Values['Es'])*

strtofloat(ValueListEditor2.Values['Es']))*

sqrt(R23*R23+Xc*Xc)/((R12+R23)*((R12+R23)+

(Xl-Xc)*(Xl-Xc))*(R23+sqrt(R12*R12+Xl*Xl)*

sqrt(R23*R23+Xc*Xc)/(sqrt(R12*R12+Xl*Xl)+

sqrt(R23*R23+Xc*Xc))+strtofloat(ValueListEditor2.Values['R4'])));

Et:=sin(t)*10; Xl:=2*pi*l/strtofloat(ValueListEditor2.Values['T']);

Xc:=1/(2*pi*c/strtofloat(ValueListEditor2.Values['T']));

form_graph.Chart1.Series[0].Add(L);

form_graph.Chart2.Series[0].Add(C);

form_graph.Chart3.Series[0].Add(Ur4);

form_graph.Chart4.Series[0].Add(Et);

 

if c > strtofloat(ValueListEditor1.Values['Ck']) then timer1.enabled:=false;

end;

 

end.

 

program Elekric;

 

uses

  Forms,

  Unit_main in 'Unit_main.pas' {Form_main},

  Unit_graph in 'Unit_graph.pas' {Form_graph};

 

{$R *.res}

 

begin

  Application.Initialize;

  Application.CreateForm(TForm_main, Form_main);

  Application.CreateForm(TForm_graph, Form_graph);

  Application.Run;

end.

 

unit Unit_graph;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

 

type

  TForm_graph = class(TForm)

    Chart2: TChart;

    Series1: TLineSeries;

    Chart1: TChart;

    Series2: TLineSeries;

    Chart3: TChart;

    LineSeries1: TLineSeries;

    Chart4: TChart;

    LineSeries2: TLineSeries;

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form_graph: TForm_graph;

 

implementation

 

{$R *.dfm}

 

end.

 

  1. Работа с программой

 

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

После запуска программы  доступным становится главное окно программы «Моделирование физических процессов».

 

 

Рисунок 6 – Главное  окно программы.

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

После этого необходимо нажать на кнопку «Выполнить расчет». В результате этого появится диалоговое окно программы «Графики», содержащее 4 графика:

  • Изменение варьируемого параметра L;
  • Задающее напряжение;
  • Изменение варьируемого параметра C;
  • Падение напряжения на сопротивлении R4.

Информация о работе Формирование математической модели