Последний раз редактировалось caig 09.12.2015, 17:15, всего редактировалось 1 раз.
Имеется массив измеренных значений a(i), i=0..N-1, N- длина массива Необходимо посчитать массив y(i) решением следующего дифференциального уравнения: y"(i)+b*y'(i)+c*y=a(i)
Сделал попытку решения методом рунге-кутты, но результат получился некорректным. Вот моя попытка: Задал начальные условия: y(0)=0, x(0)=0
и расчёты в цикле i=0..N-2
kx1=a(i)-c*y(i)-b*x(i) kx2=a(i)-c*y(i)-b*(x(i)+kx1/2) kx3=a(i)-c*y(i)-b*(x(i)+kx2/2) kx4=a(i)-c*y(i)-b*(x(i)+kx3) dx=(kx1+2*kx2+2*kx3+kx4)/6 x(i+1)=x(i)+dx
ky1=x(i) ky2=x(i)+ky1/2 ky3=x(i)+ky2/2 ky4=x(i)+ky3 dy=(ky1+2*ky2+2*ky3+ky4)/6 y(i+1)=y(i)+dy
Не могу сообразить, как правильно перейти от теории решения дифференциальных уравнений методом рунге-кутты к практической задаче.
В некоторых примерах на просторах интернета есть решения уравнения вида y"(i)+b*y'(i)+c*y=0, но у меня ведь не 0 в правой части, а набор значений.
|