Метод позволяет решать системы обыкновенных дифференциальных уравнений (оду) первого порядка следующего вида


FunArray - вектор функций (правых частей уравнений системы); First, Last



Download 24,79 Kb.
bet2/2
Sana23.02.2022
Hajmi24,79 Kb.
#173502
TuriРешение
1   2
Bog'liq
Runge Kutta

FunArray - вектор функций (правых частей уравнений системы);

  • First, Last - начальная и конечная точки расчетного интервала;

  • Steps - число шагов по расчетному интервалу;

  • InitArray - вектор начальных значений

  • var Res - матрица результатов включая независимую переменную.

    В модуле описаны типы:
    type
    TVarsArray = array of Extended; // вектор переменных включая независимую
    TInitArray = array of Extended; // вектор начальных значений
    TFunArray = array of function(VarsArray: TVarsArray ):Extended; // вектор функций
    TResArray = array of array of Extended; // матрица результатов
    TCoefsArray = array of Extended; // вектор коэффициетов метода
    Функция возвращает коды ошибок:

    • 0 - нет ошибок;

    • 100 - число уравнений не равно числу начальных условий.

    Решение содержится в переменной-матрице Res. Первый индекс матрицы относится к переменной (0 - независимая переменная, 1 - первая зависимая и т.д.), второй - к номеру расчетной точки (0 - начальная точка).
    Рассмотрим один пример использования модуля. Создадим новое приложение и подключим к нему модуль. На форме приложения разместим кнопку Button1 и область текста Memo1. Поместим в приложение две функции и обработчик нажатия кнопки:
    //Задаем функции (правые части уравнений)
    function f0(VarArray:TVarsArray):extended;
    begin
    Result:=4*VarArray[0]*VarArray[0]*VarArray[0];
    end;

    function f1(VarArray:TVarsArray):extended;


    begin
    Result:=1;
    end;

    ////////////////////////////////////////////////////////////////////////////////



    procedure TForm1.Button1Click(Sender: TObject);
    var
    I: Integer;
    FunArray: TFunArray; // массив функций
    First: Extended; // начальная точка по независимой координате
    Last: Extended; // конечная точка по независимой координате
    Steps: Integer; // число шагов по независимой координате
    InitArray: TInitArray; // вектор начальных значений
    Res: TResArray; // матрица результатов включая независ. переменную
    begin
    // Создаем вектор функций:
    SetLength(FunArray,2);
    FunArray[0]:=f0;
    FunArray[1]:=f1;
    // Задаем интервал и число шагов:
    First:=0;
    Last:=10;
    Steps:=10;
    // Задаем начальные условия:
    SetLength(InitArray,2);
    InitArray[0]:=0;
    InitArray[1]:=0;
    // Вызов метода и получение результатов:
    Memo1.Lines.Clear;
    I:=Runge_Kutt(FunArray, First, Last, Steps, InitArray, Res);
    ShowMessage('Код ошибки = '+IntToStr(I));
    For I:=0 to Steps do
    Memo1.Lines.Add(floattostr(Res[0,I])+' '+floattostr(Res[1,I])
    +' '+floattostr(Res[2,I]));
    end;
    Нажатие кнопки приведет к расчету точек системы, которые будут выведены в текстовую область.
    Download 24,79 Kb.

    Do'stlaringiz bilan baham:
  • 1   2




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish