N |
Отношение погр(N)/ погр(2*N) |
20 |
13.9797452 |
25 |
14.0546442 |
27 |
14.4637764 |
35 |
14.8507882 |
38 |
15.3580351 |
39 |
16.4338437 |
· в пространстве L2
b b
(∫(|U(xj)-Uj|2)dx / ∫|U(xj)|2dx)1/2≈Chs
a a
/*Интеграл считается по составной формуле Симпсона:
b N
∫f(x)dx≈h/6*∑(f(xi-h)+4*f(xi-h/2)+f(xi)), имеющей 4-ый порядок точности.*/
a i=1
Интеграл считается по формуле трапеций:
b n-1
∫f(x)dx≈h*[0.5f(a)+ ∑f(xi)+0.5f(b)], имеющей 2ой порядок точности.
a i=1
Для функции U(x):
N |
Отношение погр(N)/ погр(2*N) |
10 |
12,1743383 |
20 |
13,9629755 |
30 |
14,9480043 |
40 |
14,2390394 |
50 |
16,4487095 |
60 |
15,9773607 |
Для функции V(x):
N |
Отношение погр(N)/ погр(2*N) |
10 |
12.0808964 |
20 |
13.9296865 |
30 |
15.0786352 |
40 |
14.9833374 |
50 |
17.7413368 |
51 |
15.1940794 |
54 |
16.1325951 |
3. Решение краевой задачи для системы (1) методом стрельбы
Заданы U(0)=2; V(2)=1;
Аналитическое решение:
с1=10.85; с2=-9.85
U=c1*exp(-x)+c2*exp(3x)+exp(4x)
V=-c1*exp(-x)+3*c2*exp(3x)+4*exp(4x).
Метод стрельбы:
x € [a,b]
U’=f(x,U,V)
V’=g(x,U,V)
Краевые условия:
Φ(U(a),V(a))=0;
Ψ(U(b),V(b))=0
Полагаем U(a)=η, где η-параметр. Из левого краевого условия находим V(a)=ξ(η).
Далее решаем задачу Коши с начальными условиями U(a)=η, V(a)=ξ(η).
Решение U(x,η), V(x,η). Необходимо, чтобы решение удовлетворяло правому краевому условию. Обозначим χ(η)= Ψ(U(b, η),V(b, η))≠0. Находим η при котором χ(η)≈0.
Для системы (1):
Краевые условия имеют вид U(0)=2,V(2)=1;
float U=2; float Vb=1;
c1=9;c2=-40;
Решаем задачу Коши с начальными данными U(0)=2; V(0)=c1=9;
yj=U;zj=c1;
for (i=1;i<=n;i++)
{
rk(i-1,yj,zj);
yi=yj+1./6*h*(k1+2*k2+2*k3+k4);
zi=zj+1./6*h*(q1+2*q2+2*q3+q4);
yj=yi; zj=zi;
}
Обозначаем z1=V(b,c1);
Аналогично, z2=V(b,c2);
float fun(float x)
{ float w;
w=Vb-x;
return w;
}
Для нахождения η при котором V(b)-V(b,η)≈0 применяем метод дихотомии.
с1,с2 подобраны так, чтобы было выполнено fun(z1)*fun(z2)<0.
va=dihot(c1,c2,e,z1,z2);
e=0.001;
float dihot(float a1,float b1, float e,float w1,float w2)
{float yj,zj,zi,yi;int i;
do
{ x=(a1+b1)/2;
yj=U;zj=x;
for (i=1;i<=n;i++)
{
rk(i-1,yj,zj);
yi=yj+1./6*h*(k1+2*k2+2*k3+k4);
zi=zj+1./6*h*(q1+2*q2+2*q3+q4);
yj=yi; zj=zi;
}
if(fun(w2)*fun(zj)<0)
{a1=x;
w1=zj;
}
else
{if(fun(w1)*fun(zj)<0) {b1=x;w2=zj;}
else {
if (fun(w1)==0)x=a1;
if (fun(w2)==0)x=b1;
break;
} } }
while(fabs(b1-a1)>e);
return x;
}
Т.о нашли η=va при котором выполнено правое краевое условие.
Для нахождения решения краевой задачи решаем задачу Коши с нач.данными: U(0)=2,V(0)=va.
yj=U;zj=va;
for (i=1;i<=n;i++)
{
rk(i-1,yj,zj);
yi=yj+1./6*h*(k1+2*k2+2*k3+k4);
zi=zj+1./6*h*(q1+2*q2+2*q3+q4);
printf("%1.2f %1.7f %1.7f %1.7f",a+i*h,yi,zi,toch1(a+i*h,10.85,-9.85));
printf("\n");
yj=yi;zj=zi;
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.