4 курс_1 / Мат.мод 313 / лаб5
.docxfunction u=func5(m,n,h,e);
u=zeros(m,n);
f=zeros(m-2,n-2);
f1=zeros(m-2,n-2);
fdef=zeros(m-2,n-2);
usum=0;
for i=1:m
u(i,1)=0;
u(i,m)=1;
usum=usum+u(i,1)+u(i,m);
end
for j=1:n
u(1,j)=0+(j-1)/(n-1);
u(n,j)=0+(j-1)/(n-1);
usum=usum+u(1,j)+u(n,j);
end
usum=usum-u(1,1)-u(1,n)-u(m,1)-u(m,n);
qol=2*m+2*(n-2);
sredu=usum/qol;
for i=2:m-1
for j=2:n-1
u(i,j)=sredu;
end
end
for i=1:m-2
for j=1:n-2
fdef(i,j)=sredu;
end
end
for i=1:m-2
for j=1:n-2
f(i,j)=(u(i+2,j+1)+u(i,j+1)+u(i+1,j+2)+u(i+1,j)-h^3*(i+j))/4;
end
end
for i=1:m-2
for j=1:n-2
fdef(i,j)=abs(f(i,j)-fdef(i,j));
end
end
for i=2:m-1
for j=2:n-1
u(i,j)=f(i-1,j-1);
end
end
umax=max(max(fdef));
while umax>e
for i=1:m-2
for j=1:n-2
f1(i,j)=(u(i+2,j+1)+u(i,j+1)+u(i+1,j+2)+u(i+1,j)-h^3*(i+j))/4;
end
end
for i=1:m-2
for j=1:n-2
fdef(i,j)=abs(f(i,j)-f1(i,j));
f(i,j)=f1(i,j);
end
end
for i=2:m-1
for j=2:n-1
u(i,j)=f1(i-1,j-1);
end
end
umax=max(max(fdef));
end
u=func5(6,6,0.2,0.01)
u =
0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.1865 0.3750 0.5654 0.7698 1.0000
0 0.1780 0.3592 0.5466 0.7538 1.0000
0 0.1730 0.3527 0.5400 0.7488 1.0000
0 0.1759 0.3614 0.5518 0.7593 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
>> surf(u)
>> u=func10(11,11,0.1,0.01)
u =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
0 0.1090 0.2137 0.3116 0.4021 0.4885 0.5752 0.6669 0.7678 0.8788 1.0000
0 0.1170 0.2268 0.3227 0.4057 0.4804 0.5558 0.6411 0.7426 0.8631 1.0000
0 0.1232 0.2361 0.3316 0.4084 0.4747 0.5418 0.6219 0.7245 0.8516 1.0000
0 0.1262 0.2415 0.3357 0.4094 0.4703 0.5323 0.6098 0.7125 0.8445 1.0000
0 0.1265 0.2415 0.3357 0.4077 0.4670 0.5274 0.6037 0.7074 0.8409 1.0000
0 0.1234 0.2372 0.3306 0.4040 0.4648 0.5268 0.6047 0.7082 0.8416 1.0000
0 0.1180 0.2282 0.3223 0.3986 0.4647 0.5320 0.6126 0.7166 0.8464 1.0000
0 0.1105 0.2170 0.3116 0.3939 0.4685 0.5440 0.6300 0.7328 0.8566 1.0000
0 0.1034 0.2058 0.3026 0.3927 0.4790 0.5658 0.6580 0.7599 0.8733 1.0000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
>> surf(u)
