LINUX.ORG.RU

Еще немного МКР.


0

0

Хорошо. Я не могу найти ошибку в моей реализации:

Решается уравнение y"+2*e*y'+w^2*y=0 (уравнение свободных колебаний в вязкой среде без внешних воздействий).

По идее при ненулевых начальных условиях в случае малого сопротивления (e<w) должно получиться затухающее по экспоненте колебание колебание.

Что я делаю:

0. Разбиваю отрезок на котором нужно найти решение на N элементов. Шаг разбиения - h;

1. y заменяю на y(i)

2. Записваю производные: y'=[y(i+1)-y(i-1)]/2*h ; y"=[y(i-1)-2*y(i)+y(i+1)]/h^2

3. Подставляю все это в исходное уравнение. Получаю уравнение A*y(i-1)+B*y(i)+C*y(i+1)=0. Где A = 1/h^2 - e/h; B = 2/h^2 - w^2; C = 1/h^2 + e/h);

4. Полагая y(0)=alpha и y(N-1)=beta составляю систему уравнений вида:

A*alpha + B*y(1) + C*y(2) = 0 A*y(1) + B*y(2) + C*y(3) = 0 ... A*y(N-3) + B*y(N-2) + C*beta = 0

Вопрос: По идее если следовать уравнеиею правая часть системы должна быть равна 0, но это приводит и к нулевому решению. Как это понимать?

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

Помогите пожалуйста победить эту ерунду.

★★★★

Сорри. Я тормоз. Там в одном знаке ошибка. Блин.

alexru ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.