Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторная работа №1
по курсу Методы вычислений
Математический факультет, 5 семестр
Тема |
Численное решение краевой задачи для обыкновенного дифференциального уравнения второго порядка. |
Ф.И.О. |
Новосёлова Марина Игоревна |
Группа |
481 (а) |
Вариант |
7 |
Дата сдачи |
Пусть на отрезке [a,b] требуется найти решение дифференциального уравнения
y+p(x)y+q(x)y=f(x), (1)
удовлетворяющее краевым условиям
d1y(a)+d2y(a)=d, e1y(b)+e2y(b)=e, d1+d20, e1+e20. (2)
На отрезке [a,b] построим равномерную сетку xk=a+kh, k=0,1,...,N, где h=(b-a)/N шаг сетки. Задачу (1)-(2) аппроксимируем следующей конечноразностной задачей
(yk+1-2yk+yk-1)/h2+pk(yk+1-yk-1)/(2h)+qkyk= fk, k=1,2,...,N-1
d1y0+d2(y1-y0)/h=d, e1yN+e2(yN-yN-1)/h=e, (3)
здесь использованы общепринятые обозначения : Q(xk)=Qk.
Систему (3) запишем в виде
akyk-1-bkyk+ckyk-1=Fk, k=1,2,...,N-1, (4)
y0=r1y1+s1, yN=r2yN-1+s2, (5)
где
аk=1-hpk/2, bk=2-h2qk, ck=1+hpk/2, Fk=h2fk,
r1=d2/(d2-hd1), s1=-hd/(d2-hd1), r2=e2/(e2+he1), s2=he/(e2+he1).
Систему (4)-(5) можно решить методом прогонки при выполнении следующих условий на её коэффициенты: bkak+ck, k=1,2,...,N-1, r1 1, r2 1. Причем, хотя бы одно из этих неравенств должно быть строгим.
Метод прогонки для решения системы (4)-(5).
Решение этой системы будем искать в виде
yk-1=kyk+ k (6)
Из первого равенства (5) находим, что
1=r1 , 1=s1, (7)
а из системы (4) и соотношений (6) получаем рекуррентные формул
k+1=ck/(bk-kak), k+1=(kak-Fk)/(bk-kak). (8)
Формулы (8) и равенства (7) позволяют определить k, k, k=1,2,...,N. Из второго равенства (5) и равенства (6) при k=N находим, что
yN=(Nr2+s2)/(1-Nr2). (9)
Равенства (9) и (6) позволяют определить искомые yk, k=N,N-1,...,0.
Задание вариант 7.
Номер варианта |
a |
b |
p(x) |
q(x) |
f(x) |
d1 |
d2 |
d |
e1 |
e2 |
e |
y(x) |
7. |
0 |
1 |
x |
-2 |
0 |
1 |
0 |
1 |
1 |
1 |
4 |
x2+1 |
Решение
Eps= 0.005
a0=0; b0=1; d1= 1; d2 =0; d=1; e1=1; e2=1; e=4;
E=100; N=2;
while E > Eps
N=N+1;
h=(b0-a0)/N;
x=0; p =0; q=0; f=0; a=0; b=0; c=0; F=0;
for k = 1:N+1
x(k) = a0 + (k-1)*h;
p(k) = x(k);
q(k) = -2;
f(k) = 0;
end
for k= 2:N
a(k) = 1 - h*p(k)/2; b(k) = 2-(h^2)*q(k);
c(k) = 1+h*p(k)/2; F(k) = h^2*f(k);
end
r1=d2/(d2-h*d1); s1=-h*d/(d2-h*d1);
r2=e2/(e2+h*e1); s2=h*e/(e2+h*e1);
alfa=0; betta=0;
alfa(2)=r1; betta(2)=s1;
for k=2:N
alfa(k+1)=c(k)/(b(k)-alfa(k)*a(k));
betta(k+1)=(betta(k)*a(k)-F(k))/(b(k)-alfa(k)*a(k));
end
y=0;
y(N+1)=(betta(N+1)*r2+s2)/(1-alfa(N+1)*r2);
for m=1:N
k = (N+1)-m;
y(k)=alfa(k+1)*y(k+1)+betta(k+1);
end
Y=0;
Y=x^2+1;
E=0;
E=max(abs(y-Y));
end
N
plot(x,y,'-r',x,Y,'b');
k |
X |
Y приближенное решение |
Y точное решение |
1 |
0,000000000 |
1,000552613 |
1,000000000 |
2 |
0,022471910 |
1,001357860 |
1,000504987 |
3 |
0,033707865 |
1,002373526 |
1,001136220 |
------ |
------ |
------- |
------- |
87 |
0,977528090 |
1,965539402 |
1,955561167 |
88 |
0,988764045 |
1,987647578 |
1,977654337 |
89 |
1,000000000 |
2,010007049 |
2,000000000 |
Приближенная функция - ___________
Точная функция - __________
Решение для Eps = 0.01
Число точек N=45
Приближенная функция - ___________
Точная функция - __________