МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


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


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

Решение системы дифференциальных уравнений.





Существует огромное количество методов решения системы нелинейных дифференциальных уравнений: метод Эйлера, экстраполяционные методы Адамса, метод Милна и т.д. Также одним из распространенных методов решения системы дифференциальных уравнений является метод Рунге-Кутты, который рассмотрим в качестве примера более подробно.

Методы Рунге-Кутты— важное семейство численных алгоритмов решения обыкновенных дифференциальных уравнений и их систем. Формально, методом Рунге — Кутты является модифицированный и исправленный метод Эйлера, они представляют собой схемы второго порядка точности. Существуют стандартные схемы третьего порядка, не получившие широкого распространения. Наиболее часто используется и реализована в различных математических пакетах (Maple, MathCAD, Maxima) стандартная схема четвёртого порядка. Иногда при выполнении расчётов с повышенной точностью применяются схемы пятого и шестого порядков. Построение схем более высокого порядка сопряжено с большими вычислительными трудностями.

Классический метод Рунге — Кутты 4 порядка

Метод Рунге — Кутты 4 порядка столь широко распространён, что его часто называют просто методом Рунге — Кутты.

Рассмотрим задачу Коши

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

Вычисление нового значения проходит в четыре стадии:

где — величина шага по времени t.

Этот метод имеет четвёртый порядок точности, то есть суммарная ошибка на конечном интервале интегрирования имеет порядок .


 

Практическая часть

Программный модуль:

Программный модуль включает две управляющие кнопки:

- Решить - решает систему дифференциальных уравнений и выводит решение в виде графика временной реализации, x(t).

- Очистить - очищает поле для построения графиков.

 

Возможно интерактивное изменение диапазона времени, которое выводится на графике. M - количество шагов, до вывода точек на график, N - количество шагов, которые выводим на график.

Возможно интерактивное изменение управляющих параметров m и g.

 

Текст программы, написанный на языке программирования Delphi.

unit AA;

 

interface

 

uses

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

Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart,Math,

Buttons;

 

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

GroupBox2: TGroupBox;

Edit4: TEdit;

Edit5: TEdit;

Label4: TLabel;

Label5: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit2: TEdit;

Label7: TLabel;

Edit3: TEdit;

Chart1: TChart;

Series1: TLineSeries;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

//Const

//h=0.03;

var

Form1: TForm1;

i,N,M:integer;

mm,gg:extended;

xr,yr,zr,tt,xn,yn,zn,tn,dx,dy,dz,h:real;

implementation

 

{$R *.dfm}

function ll(x:real):real;

begin

if x<=0 then result:=0;

if x>0 then result:=1;

end;

 

function f1(t,x,y,z:real):real;

begin

result:=mm*x+y-x*z;

end;

function f2(t,x,y,z:real):real;

begin

result:=-x;

end;

function f3(t,x,y,z:real):real;

begin

result:=-gg*z+ll(x)*x*x;

end;

 

procedure RG(var tt,x,y,z:real);

var

k11,k12,k13,k14,k21,k22,k23,k24,k31,k32,k33,k34:real;

begin

k11:=h*f1(tt,x,y,z);

k21:=h*f2(tt,x,y,z);

k31:=h*f3(tt,x,y,z);

k12:=h*f1(tt+h/2,x+k11/2,y+k21/2,z+k31/2);

k22:=h*f2(tt+h/2,x+k11/2,y+k21/2,z+k31/2);

k32:=h*f3(tt+h/2,x+k11/2,y+k21/2,z+k31/2);

k13:=h*f1(tt+h/2,x+k12/2,y+k22/2,z+k32/2);

k23:=h*f2(tt+h/2,x+k12/2,y+k22/2,z+k32/2);

k33:=h*f3(tt+h/2,x+k12/2,y+k22/2,z+k32/2);

k14:=h*f1(tt+h,x+k13,y+k23,z+k33{/2});

k24:=h*f2(tt+h,x+k13,y+k23,z+k33{/2});

k34:=h*f3(tt+h,x+k13,y+k23,z+k33{/2});

dx:=(k11+2*k12+2*k13+k14)/6;

dy:=(k21+2*k22+2*k23+k24)/6;

dz:=(k31+2*k32+2*k33+k34)/6;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

Series1.Clear;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

DecimalSeparator:='.';

Series1.Clear;

h:=0.01;

M:=StrToInt(Edit2.Text);

N:=StrToInt(Edit3.Text);

mm:=StrToFloat(Edit4.Text);

gg:=StrToFloat(Edit5.Text);

tt:=0;

xr:=0.5; yr:=0.5; zr:=0.5;

i:=0;

While i<=M do

Begin

RG(tt,xr,yr,zr);

xn:=xr+dx; yn:=yr+dy; zn:=zr+dz;

tn:=tt+h;

if xn*xr<=0 then i:=i+1;

xr:=xn; yr:=yn; zr:=zn; tt:=tn;

end;

i:=0;

While i<=N do

begin

RG(tt,xr,yr,zr);

xn:=xr+dx; yn:=yr+dy; zn:=zr+dz;

tn:=tt+h;

Series1.AddXY(tt,xr);

if xn*xr<=0 then i:=i+1;

xr:=xn; yr:=yn; zr:=zn; tt:=tn;

end;

end;

 

end.





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.