Рунге-Кутта 4-го порядка с ошибкой ODE 2-го порядка - PullRequest
0 голосов
/ 16 сентября 2018

Недавно я создал код для решения проблемы схемы RLC, используя ODE 2-го порядка с методом Рунге-Кутты, но созданный мною код не совпадает с результатом, например, со стандартным ODE результата с 5 Ом. резистор (R), 10 мФ конденсатор (C), 1H индуктор (L), 5 В с начальным напряжением [v (0)], 0A для электрического тока [i (0)] и 0,05 с для времени (t), с итерацией 100 I 1,5163v и с кодом, который я получил 3.75v , я не вижу, что я делаю неправильно.Вот уравнения ОДУ:

ODE equations

А вот уравнение для определения начального значения v '(0) = w (0) :

w(0) initial value

Теперь метод Рунге-Кутта:

Runge-Kutta 4th order

И, наконец, код:

for(int i=0;i<iteracao;i++, hX+=h){

        tensaofSec=tensaof;
        wTV=wf;
        wT=wf;

        //Runge-Kutta para a funcao v'(t) e w'(t)

        l1=h*funcaoV;
        k1=h*funcaoW;

        wT=(wf+(k1/2));
        wTV=(wf+(k1/2));
        tensaofSec=(tensaof+(l1/2));

        k2=h*funcaoW;
        l2=h*funcaoV;

        wT=(wf+(k2/2));
        wTV=(wf+(k2/2));
        tensaofSec=(tensaof+(l2/2));

        k3=h*funcaoW;
        l3=h*funcaoV;

        wT=(wf+k3);
        wTV=(wf+k3);
        tensaofSec=(tensaof+l3);

        k4=h*funcaoW;
        l4=h*funcaoV;

        wf=wf+((k1+(2*k2)+(2*k3)+k4)/6);

        tensaof=tensaof+((l1+(2*l2)+(2*l3)+l4)/6);
    }

Полная функция для расчета конечного напряжения

...