Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Метод прогонки ⇐ ПредыдущаяСтр 2 из 2 Нехай потрібно знайти розв’язок диференціального рівняння другого порядку на відрізку , яке на кінцях цього відрізка задовольняє крайові умови Як і в скінченно-різницевому методі в диференціальному рівнянні та граничних умовах замінимо похідні скінченими різницями та перетворимо отриману різницеву схему до вигляду Для визначення коефіцієнтів , , та розв’яжемо різницеве рівняння відносно , з рівняння та крайових умов знайдемо і отримаємо де Обчислення коефіцієнтів методу називається прямим ходом методу прогонки, а обчислення - оберненим ходом. Коефіцієнти та називають коефіцієнтами прогонки. Метод є стійким, якщо та Приклад 2. Знайти розв’язок крайової задачі в точках , h = 0,1, за допомогою методу прогонки Розв’язання. Побудуємо на відрізку [0; 1] сітку з кроком . Тоді Замінимо похідні в диференціальному рівнянні та крайових умовах різницевими похідними. Отримаємо у внутрішніх точках та підставимо їх в задане рівняння (див. приклад 1). Отримаємо
та в крайові умови
Отже, з різницевого рівняння , та , а з граничних умов Для обчислення коефіцієнтів та складемо таблицю
Останніх два значення функції знайдемо з системи Отримаємо . Значення функції та отримаємо з рівняння Будемо мати та . Значення знайдемо з першої крайової умови . Для досягнення більшої точності слід зменшити крок. Розв’язання в середовищі MATLAB.
function Y=m_progonka(K,Kr,pr,dku,a,b,h) %метод прогонки розв'язування дифрівняння другого порядку %K - вектор коєфіцієнтів [B C D]-розраховуються з різнецевого рівняння %Kr- вектор коєфіцієнтів [a0 a1 b0 b1 g0 g1]- розраховуються з крайових умов %pr - права частина рівняння Y(0)-Y(1)=pr %dku-друга крайова умова[k2a k2b k2c]-використовується для обчислення останніх %двох значень шуканої функції: %k2a - коефіцієнт при Y(n-1) %k2b - коефіцієнт при Y(n) %k2c – права частина рівняння, яке зв'язує Y(n-1) та Y(n) %a,b - проміжок, h-крок %Y - вектор значень шуканої функції % прямий хід - обчислення коефіцієнтів прогонки n=(b-a)/h+1 B=K(1); C=K(2); D=K(3); a0=Kr(1); a1=Kr(2); b0=Kr(3); b1=Kr(4); g1=Kr(5); g2=Kr(6); E=[]; F=[]; r=a1-a0*h; e0=r/(B*r+C*a1); E=[E e0]; f0=C*g1*h/r+D*h*h; F=[F f0]; for i=2:n-1 e=1/(B-C*E(i-1)); f=D*h*h-C*E(i-1)*F(i-1); E=[E e]; F=[F f]; end;
%обернений хід - обчислення значень функції Y=zeros(n); Y=Y(:,1); A=[1 -E(n-1);dku(1) dku(2)]; BB=[F(n-1) dku(3)]'; y=(inv(A)*BB)'; Y(n)=y(2);%останні два значення функції Y(n-1)=y(1); for i=n-2:-1:2 Y(i)= E(i)*Y(i+1)+F(i); end; %перше значення функції Y(1)=Y(2)-pr;
Виклик програми
>> K=[-1.7 0.667 0.167]; >> Kr=[0 1 1 2 0.5 1]; >> dku=[-1 1.1 0.1]; >>pr=0.1; >> Y=m_progonka(K,Kr,pr,dku,0,1,0.2)
n =
Y = -0.0303 0.0697 -0.0165 0.0613 -0.0312 0.0625
3. Індивідуальні завдання Знайти розв’язок крайової задачі в точках , h = 0,1, за допомогою a) скінчено-різницевого методу; b) методу прогонки.
НАВЧАЛЬНЕ ВИДАННЯ
Наближені методи розв’язування крайової задачі для звичайних диференціальних рівнянь
|