Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабароторная работа № 5
по курсу «Методы вычислений»
Математический факультет, 5 семестр
Лабораторная работа |
№5 |
Тема |
Численное решение задачи Дирихле для уравнения Пуассона попеременно- треугольным методом. |
Ф.И.О. |
Гуптор Александр Сергеевич |
Группа |
442(а) |
Вариант |
9 |
Дата сдачи |
Постановка задачи.
-Uxx - Uyy = f(x,y), D = { (x,y) : 0<x<A, 0<y<B }
UГ = v(x,y) на Г - границе области D, где v(x,y), f(x,y) - заданные функции.
Разностная схема.
, где E - единичный оператор,
,
,
Nx, Ny, hx = A/Nx, hy =B/Ny - число разбиений и шаги сетки по осям X и Y соответственно;
i,j - нумерация узлов.
Реализация схемы.
Rk = Uk - f, (E + R1)Wk = Rk, (E + R2)W1k = Wk, Uk+1 = Uk - k+1W1k, k=0,1, ...
Более подробно:
Rk[i,j] = Uk[i,j] - f(x[i],y[j]) =
1 i Nx-1, 1 j Ny, UГ = v.
Wk[i,j] = alWk[i-1,j] + beWk[i,j-1] + caRk[i,j],
Wk[0,j]= 0, Wk[i,0] =0, i =1,2, . . . ,N1 -1, j =1,2, . . . ,N2 -1,
W1k[i,j] = alW1k[i+1,j] + beW1k[i,j+1] + caWk[i,j],
W1k[N1,j]= 0, W1k[i,N2] =0, i =1,2, . . . ,N1 -1, j =1,2, . . . ,N2 -1,
Uk+1[i,j] = Uk[i,j] - k+1W1k[i,j], i = 1,2, . . . ,N1 -1, j =1,2, . . . ,N2 -1.
a =
be =
ca =
Z = hx2hy2+(hx2+hy2),
ds =
db =
et =
=
g1 =
g2 =
t0 =
dz =
r0 =
r1 =
N = - число итераций,
k = k = 1,2, . . . ,N.
вариант №9
x=sym('x');
y=sym('y');
f=x+y^3;
a=3;
b=1;
%задаем разбиение и погрешность
nx=13;
ny=13;
hx=a/nx;
hy=b/ny;
xnx=0:hx:a;
yny=0:hy:b;
ep=0.01;
eps=0.0001-0.00001;
tt1=100;
%вычисляем чё то
db=4/(hx*hx)+4/(hy*hy);
ds=4*(((sin(pi*hx/(2*a)))^2)/(hx^2)+((sin(pi*hy/(2*b)))^2)/(hy^2));
om=2/sqrt(ds*db);
z=hx*hx*hy*hy+om*(hx*hx+hy*hy);
al=om*hy*hy/z;
be=om*hx*hx/z;
ca=hx*hx*hy*hy/z;
et=ds/db;
g1=1/(1+sqrt(et));
g2=1/(2*om);
t0=1/(g1+g2);
dz=g1/g2;
r0=(1-dz)/(1+dz);
r1=(1-sqrt(dz))/(1+sqrt(dz));
n=((log(2/eps))/(log(1/r1)))+1;
for i=1:(round(n)+1)
TAU(i)=t0/(1+r0*cos(((2*i-1)*pi)/(2*n)));
end;
%считаем U
for i=1:(nx+1)
for j=1:(ny+1)
U(i,j)=(hx*(i))*(2-(hy*(j))^2);
end;
end;
%считаем значения на границе
for k=0:(round(n-1))
%считаем W и W1 на границе
for i=1:nx+1
W(i,1)=0;
W1(i,ny+1)=0;
end;
for j=1:ny+1
W(1,j)=0;
W1(nx+1,j)=0;
end;
for i=2:nx
for j=2:ny
R(i,j)=-(U(i-1,j)-2*U(i,j)+U(i+1,j))/(hx^2)-(U(i,j-1)-2*U(i,j)+U(i,j+1))/(hy^2)-(2*hx*(i-1));
end;
end;
for i=2:nx
for j=2:ny
W(i,j)=al*W(i-1,j)+be*W(i,j-1)+ca*R(i,j);
end;
end;
for i=2:nx
for j=2:ny
W1(i,j)=al*W1(i+1,j)+be*W1(i,j+1)+ca*W(i,j);
end;
end;
for i=2:nx
for j=2:ny
U(i,j)=U(i,j)-TAU(k+1)*W1(i,j);
end;
end;
end;
en=0;
for k=1:nx+1
for m=1:ny+1
en=en+(abs(U(k,m)-(hx*(k)*(1-(hy*(m))^2))))^2;
en=sqrt(en)/tt1;
end;
end;
for i=1:nx+1
for j=1:ny+1
uu(i,j)=hx*(i)*(2-(hy*(j))^2);
end;
end;
uu
U
surfc(xnx,yny,uu);
hold on;
surfc(xnx,yny,U);
max(max(abs(U-uu)))
enКод программы: %вариант 14
x=sym('x');
y=sym('y');
f=1-x+y^2;
a=2;
b=1.5;
%задаем разбиение и погрешность
nx=13;
ny=13;
hx=a/nx;
hy=b/ny;
xnx=0:hx:a;
yny=0:hy:b;
ep=0.01;
eps=0.00000001;
tt1=100;
%вычисляем чё то
db=4/(hx*hx)+4/(hy*hy);
ds=4*(((sin(pi*hx/(2*a)))^2)/(hx^2)+((sin(pi*hy/(2*b)))^2)/(hy^2));
om=2/sqrt(ds*db);
z=hx*hx*hy*hy+om*(hx*hx+hy*hy);
al=om*hy*hy/z;
be=om*hx*hx/z;
ca=hx*hx*hy*hy/z;
et=ds/db;
g1=1/(1+sqrt(et));
g2=1/(2*om);
t0=1/(g1+g2);
dz=g1/g2;
r0=(1-dz)/(1+dz);
r1=(1-sqrt(dz))/(1+sqrt(dz));
n=((log(2/eps))/(log(1/r1)))+1;
for i=1:(round(n)+1)
TAU(i)=t0/(1+r0*cos(((2*i-1)*pi)/(2*n)));
end;
%считаем U
for i=1:(nx+1)
for j=1:(ny+1)
U(i,j)=(hx*(i))*(2-(hy*(j))^2);
end;
end;
%считаем значения на границе
for k=0:(round(n-1))
%считаем W и W1 на границе
for i=1:nx+1
W(i,1)=0;
W1(i,ny+1)=0;
end;
for j=1:ny+1
W(1,j)=0;
W1(nx+1,j)=0;
end;
for i=2:nx
for j=2:ny
R(i,j)=-(U(i-1,j)-2*U(i,j)+U(i+1,j))/(hx^2)-(U(i,j-1)-2*U(i,j)+U(i,j+1))/(hy^2)-(2*hx*(i-1));
end;
end;
for i=2:nx
for j=2:ny
W(i,j)=al*W(i-1,j)+be*W(i,j-1)+ca*R(i,j);
end;
end;
for i=2:nx
for j=2:ny
W1(i,j)=al*W1(i+1,j)+be*W1(i,j+1)+ca*W(i,j);
end;
end;
for i=2:nx
for j=2:ny
U(i,j)=U(i,j)-TAU(k+1)*W1(i,j);
end;
end;
end;
en=0;
for k=1:nx+1
for m=1:ny+1
en=en+(abs(U(k,m)-(hx*(k)*(1-(hy*(m))^2))))^2;
en=sqrt(en)/tt1;
end;
end;
for i=1:nx+1
for j=1:ny+1
uu(i,j)=hx*(i)*(1-(hy*(j))^2);
end;
end;
uu
U
surfc(xnx,yny,U);
max(max(abs(U-uu)))
en
график решения:
eps = 10-4 - 10-5
Норма невязки равна 1.0134e-004, погрешность равна 0.1520
Найденное решение:
0.3068 0.3041 0.2995 0.2931 0.2849 0.2749 0.2631 0.2494 0.2340 0.2167 0.1975 0.1766 0.1538 0.1293
0.6136 0.6081 0.5990 0.5863 0.5699 0.5498 0.5262 0.4989 0.4679 0.4333 0.3951 0.3532 0.3077 0.2585
0.9203 0.9122 0.8985 0.8794 0.8548 0.8248 0.7893 0.7483 0.7019 0.6500 0.5926 0.5298 0.4615 0.3878
1.2271 1.2162 1.1980 1.1725 1.1397 1.0997 1.0523 0.9977 0.9358 0.8666 0.7902 0.7064 0.6154 0.5171
1.5339 1.5203 1.4975 1.4656 1.4247 1.3746 1.3154 1.2472 1.1698 1.0833 0.9877 0.8830 0.7692 0.6463
1.8407 1.8243 1.7970 1.7588 1.7096 1.6495 1.5785 1.4966 1.4037 1.3000 1.1853 1.0596 0.9231 0.7756
2.1475 2.1284 2.0965 2.0519 1.9945 1.9244 1.8416 1.7460 1.6377 1.5166 1.3828 1.2362 1.0769 0.9049
2.4543 2.4324 2.3960 2.3450 2.2795 2.1994 2.1047 1.9954 1.8716 1.7333 1.5803 1.4128 1.2308 1.0341
2.7610 2.7365 2.6955 2.6381 2.5644 2.4743 2.3678 2.2449 2.1056 1.9499 1.7779 1.5894 1.3846 1.1634
3.0678 3.0405 2.9950 2.9313 2.8493 2.7492 2.6309 2.4943 2.3396 2.1666 1.9754 1.7660 1.5385 1.2927
3.3746 3.3446 3.2945 3.2244 3.1343 3.0241 2.8939 2.7437 2.5735 2.3832 2.1730 1.9426 1.6923 1.4219
3.6814 3.6486 3.5940 3.5175 3.4192 3.2990 3.1570 2.9932 2.8075 2.5999 2.3705 2.1193 1.8462 1.5512
3.9882 3.9527 3.8935 3.8107 3.7041 3.5740 3.4201 3.2426 3.0414 2.8166 2.5680 2.2959 2.0000 1.6805
4.2949 4.2567 4.1930 4.1038 3.9891 3.8489 3.6832 3.4920 3.2754 3.0332 2.7656 2.4725 2.1538 1.8097
Точное решение:
0.3068 0.3041 0.2995 0.2931 0.2849 0.2749 0.2631 0.2494 0.2340 0.2167 0.1975 0.1766 0.1538 0.1293
0.6136 0.3088 0.3898 0.7006 0.7157 0.4458 0.3642 0.4809 0.5092 0.4781 0.4051 0.3217 0.2755 0.2585
0.9203 0.6794 0.8897 1.1414 0.9441 0.6689 0.6884 0.7576 0.7397 0.6870 0.5897 0.4900 0.4443 0.3878
1.2271 1.1100 1.3652 1.3547 1.0975 0.9918 1.0364 1.0277 0.9615 0.8889 0.7728 0.6825 0.6057 0.5171
1.5339 1.6377 1.6960 1.5200 1.3551 1.3263 1.3241 1.2499 1.1507 1.0420 0.9491 0.8627 0.7617 0.6463
1.8407 1.9093 1.8082 1.6767 1.6388 1.6204 1.5541 1.4466 1.3188 1.2404 1.1720 1.0683 0.9283 0.7756
2.1475 2.0639 1.9496 1.9490 1.9738 1.9108 1.8024 1.6657 1.5706 1.5008 1.3956 1.2422 1.0703 0.9049
2.4543 2.2814 2.2408 2.2973 2.2742 2.1625 2.0248 1.9238 1.8381 1.7144 1.5493 1.3760 1.2102 1.0341
2.7610 2.6069 2.6231 2.6330 2.5367 2.3893 2.2876 2.2162 2.0950 1.9143 1.7239 1.5527 1.3740 1.1634
3.0678 3.0124 3.0311 2.9643 2.8058 2.6734 2.6078 2.5184 2.3492 2.1357 1.9330 1.7431 1.5313 1.2927
3.3746 3.3861 3.3592 3.2268 3.0686 2.9741 2.8999 2.7645 2.5605 2.3381 2.1323 1.9247 1.6867 1.4219
3.6814 3.6771 3.6060 3.4774 3.3593 3.2680 3.1546 2.9860 2.7777 2.5643 2.3523 2.1157 1.8438 1.5512
3.9882 3.9583 3.8854 3.7821 3.6744 3.5602 3.4170 3.2352 3.0264 2.8039 2.5629 2.2922 1.9959 1.6805
4.2949 4.2567 4.1930 4.1038 3.9891 3.8489 3.6832 3.4920 3.2754 3.0332 2.7656 2.4725 2.1538 1.8097
esp= 10-8
найденное решение:
Columns 1 through 5
0.30678197542103 0.30405097860719 0.29949931725080 0.29312699135184 0.28493400091033
0.61356395084206 0.60810195721438 0.59899863450159 0.58625398270369 0.56986800182066
0.92034592626309 0.91215293582157 0.89849795175239 0.87938097405553 0.85480200273100
1.22712790168411 1.21620391442877 1.19799726900319 1.17250796540737 1.13973600364133
1.53390987710514 1.52025489303596 1.49749658625398 1.46563495675922 1.42467000455166
1.84069185252617 1.82430587164315 1.79699590350478 1.75876194811106 1.70960400546199
2.14747382794720 2.12835685025034 2.09649522075558 2.05188893946290 1.99453800637233
2.45425580336823 2.43240782885753 2.39599453800637 2.34501593081475 2.27947200728266
2.76103777878926 2.73645880746472 2.69549385525717 2.63814292216659 2.56440600819299
3.06781975421029 3.04050978607192 2.99499317250797 2.93126991351843 2.84934000910332
3.37460172963132 3.34456076467911 3.29449248975876 3.22439690487028 3.13427401001366
3.68138370505234 3.64861174328630 3.59399180700956 3.51752389622212 3.41920801092399
3.98816568047337 3.95266272189349 3.89349112426035 3.81065088757396 3.70414201183432
4.29494765589440 4.25671370050068 4.19299044151115 4.10377787892581 3.98907601274465
Columns 6 through 10
0.27492034592626 0.26308602639964 0.24943104233045 0.23395539371871 0.21665908056441
0.54984069185253 0.52617205279927 0.49886208466090 0.46791078743741 0.43331816112881
0.82476103777879 0.78925807919891 0.74829312699135 0.70186618115612 0.64997724169322
1.09968138370505 1.05234410559854 0.99772416932180 0.93582157487483 0.86663632225762
1.37460172963132 1.31543013199818 1.24715521165225 1.16977696859354 1.08329540282203
1.64952207555758 1.57851615839782 1.49658625398270 1.40373236231224 1.29995448338644
1.92444242148384 1.84160218479745 1.74601729631315 1.63768775603095 1.51661356395084
2.19936276741011 2.10468821119709 1.99544833864360 1.87164314974966 1.73327264451525
2.47428311333637 2.36777423759672 2.24487938097406 2.10559854346837 1.94993172507965
2.74920345926263 2.63086026399636 2.49431042330451 2.33955393718707 2.16659080564406
3.02412380518889 2.89394629039599 2.74374146563496 2.57350933090578 2.38324988620847
3.29904415111516 3.15703231679563 2.99317250796541 2.80746472462449 2.59990896677287
3.57396449704142 3.42011834319527 3.24260355029586 3.04142011834320 2.81656804733728
3.84888484296768 3.68320436959490 3.49203459262631 3.27537551206190 3.03322712790168
Columns 11 through 14
0.19754210286755 0.17660446062813 0.15384615384615 0.12926718252162
0.39508420573509 0.35320892125626 0.30769230769231 0.25853436504324
0.59262630860264 0.52981338188439 0.46153846153846 0.38780154756486
0.79016841147019 0.70641784251252 0.61538461538462 0.51706873008648
0.98771051433773 0.88302230314065 0.76923076923077 0.64633591260810
1.18525261720528 1.05962676376878 0.92307692307692 0.77560309512972
1.38279472007283 1.23623122439690 1.07692307692308 0.90487027765134
1.58033682294037 1.41283568502503 1.23076923076923 1.03413746017296
1.77787892580792 1.58944014565316 1.38461538461538 1.16340464269458
1.97542102867547 1.76604460628129 1.53846153846154 1.29267182521620
2.17296313154301 1.94264906690942 1.69230769230769 1.42193900773782
2.37050523441056 2.11925352753755 1.84615384615385 1.55120619025944
2.56804733727811 2.29585798816568 2.00000000000000 1.68047337278106
2.76558944014565 2.47246244879381 2.15384615384615 1.80974055530269
Точное решение:
Columns 1 through 5
0.30678197542103 0.30405097860719 0.29949931725080 0.29312699135184 0.28493400091033
0.61356395084206 -0.36071219432446 -0.00695221808604 1.52371301389944 1.52143726211379
0.92034592626309 -0.96537495785573 -0.30658833402222 0.90221326141297 0.75119612145130
1.22712790168411 -0.78024570896771 -0.51757670959379 0.27016680976907 0.97943900210461
1.53390987710514 -0.43106512366069 -0.17327137721338 0.98140686168330 2.24636287677018
1.84069185252617 0.26191460399551 0.91264061364873 2.14686555885261 2.81418196731036
2.14747382794720 1.30424458197418 1.88208031831791 2.47563362422163 2.44463885484636
2.45425580336823 2.21603177004266 2.21207091358599 2.10284168551410 2.04325224686332
2.76103777878926 2.96722373632090 2.51566308865265 2.00181668170200 2.03416431129849
3.06781975421029 3.58030663126512 3.02989470732275 2.31060065036599 2.11960744940981
3.37460172963132 3.77692533950476 3.30962696326529 2.67057804544638 2.36816637376225
3.68138370505234 3.69528150306277 3.51340762754923 3.38547188935584 3.36865115756831
3.98816568047337 3.94054224208873 4.05789165134855 4.19912365003042 4.15774563344584
4.29494765589440 4.25671370050068 4.19299044151115 4.10377787892581 3.98907601274465
Columns 6 through 10
0.27492034592626 0.26308602639964 0.24943104233045 0.23395539371871 0.21665908056441
0.28395349693079 -1.30190584514474 -2.19893703536925 -1.46758053292128 0.23229150150611
-0.06260197903754 -0.90598473704792 -0.91765932168591 0.20841946251124 1.32735705938931
1.48161199433331 1.37055295528101 0.98701504209808 0.77665519425557 0.62143967411937
2.69220052097904 1.89012117416288 0.73803707683612 0.23063934015514 0.32546394217824
2.29945535943516 1.12143285917471 0.58401052836575 0.97850514362114 1.32128529944644
1.84032500615962 1.35927246623112 1.54715570324327 1.90455152672476 1.71679222346234
2.16215177548668 2.37561926539353 2.41178443250545 2.08672279948667 1.65958730945526
2.55075893679002 2.91602144976913 2.69974148419832 2.16337571959997 1.81027617468602
2.40714125015931 2.63127200906729 2.52398147672060 2.28023789201049 2.08503275216990
2.39786369932939 2.49947085397447 2.57884628718531 2.62651784472293 2.52467210850639
3.29538655261670 3.08805335173324 2.88801794945002 2.76262149554117 2.58918435110579
3.80906229522061 3.29507664627645 2.90097703537620 2.73051033937950 2.65163407033403
3.84888484296768 3.68320436959490 3.49203459262631 3.27537551206190 3.03322712790168
Columns 11 through 14
0.19754210286755 0.17660446062813 0.15384615384615 0.12926718252162
1.24153210948324 1.04096624826737 0.49866621693926 0.25853436504324
1.35526291185289 0.73953156200703 0.40407903812472 0.38780154756486
0.40469458218507 0.35408802359407 0.48585730704552 0.51706873008648
0.52235663809077 0.67554451759062 0.74524502794226 0.64633591260810
1.13482199046641 0.92376714642119 0.88336758402759 0.77560309512972
1.26716233294647 1.10158412160507 1.06622761900728 0.90487027765134
1.48384068954122 1.43788181196459 1.27341581762474 1.03413746017296
1.70383084912235 1.59323961263727 1.39406016415776 1.16340464269458
1.91876896882121 1.74537995399385 1.54167150040664 1.29267182521620
2.24864555446091 1.94013039166321 1.67321848767727 1.42193900773782
2.32367814235554 2.05379465258786 1.80996517214457 1.55120619025944
2.51988094426563 2.29427021542469 2.00215940231433 1.68047337278106
2.76558944014565 2.47246244879381 2.15384615384615 1.80974055530269