|
PARAMETER(N=10,A=1,B=3) |
|
DIMENSION X(N),Y(N),Y1(N) |
|
H=(B-A)/N |
|
DO I=1,N |
|
T=(I-1.)/(N-1.) |
|
XI=A*(1.-T)+B*T |
|
X(I)=XI |
|
Y(I)=F1(XI) |
|
Y1(I)=F1(XI+H/2) |
|
END DO |
|
S1=0 |
|
S2=0 |
|
S3=0 |
|
S4=0 |
|
S5=0 |
|
DO I=2,N |
|
S1=S1+Y(I)*H |
|
END DO |
|
DO I=1,N-1 |
|
S2=S2+Y(I)*H |
|
END DO |
|
DO I=2,N |
|
S3=S3+Y1(I)*H |
|
END DO |
|
DO I=1,N |
|
IF(I==1.OR.I==N)THEN |
|
C=1./2 |
|
ELSE |
|
C=1 |
|
END IF |
|
S4=S4+C*Y(I)*H |
|
END DO |
|
DO I=1,N |
|
AN1=I/2 |
|
AN2=I/2. |
|
IF(I==1.OR.I==N)THEN |
|
C=1 |
|
ELSE |
|
IF(AN1==AN2)THEN |
|
C=4 |
|
ELSE |
|
C=2 |
|
ENDIF ENDIF |
|
S5=S5+C*Y(I)*H/3. |
|
ENDDO |
|
PRINT*,'S=',S1,S2,S3,S4,S5 |
|
end program REZ |
|
function F1(X) |
|
F1=1./2*exp(-x/2)+3./2*asin(1/3*cos(x)) |
|
end function F1 |
|
S |
N=10 |
N=100 |
N=1000 |
|
1 |
4.730558 |
56.45909 |
574.0466 |
|
2 |
5.286489 |
57.03228 |
574.6215 |
|
3 |
2.291125 |
26.73614 |
271.2283 |
|
4 |
5.008523 |
56.74568 |
574.3340 |
|
5 |
5.343189 |
57.08031 |
574.6682 |
Вывод: На этой лабораторной работе я научилась составлять программу для численного вычисления интеграла пятью разными методами: с помощью трех формул прямоугольников, которые выдают результат первой степени точности, формулы трапеций второй степени точности и формулы Симпсона четвертой степени точности. При этом при увеличении количества шагов интегрирования увеличивается точность полученных результатов.
Варианты задания приведены в таблице 2.
|
16 |
|
|
program PROGRAM3
|
parameter (n=3) |
|
dimension x(n),g(n),x1(n),a(3,3) |
|
data a/0,-0.077,-0.38,-0.26,0,-0.47,-0.25,-0.5,0/, g/-0.077,-0.11,-0.25/, x/3*0./, x1/3*0./ |
|
Sj=100 |
|
SI=0 |
|
eps=1.e-4 |
|
do while (abs(sj-x(1))>eps) |
|
SI=SI+1 |
|
sj=x(1) |
|
x1=x |
|
do j=1,n |
|
s=0 |
|
do k=1,n |
|
s=s+a(j,k)*x1(k) |
|
end do |
|
x(j)=s+g(j) |
|
end do |
|
print*,x |
|
print*,'ITTERATIONS mpi',SI |
|
end do |
|
Sj=100 |
|
SI=0 |
|
eps=1.e-4 |
|
X=0 |
|
do while (abs(sj-x(1))>eps) |
|
SI=SI+1 |
|
sj=x(1) |
|
do j=1,n |
|
s=0 |
|
do k=1,n |
|
s=s+a(j,k)*x(k) |
|
end do |
|
x(j)=s+g(j) |
|
end do |
|
print*,x |
|
print*,'ITTERATIONS mz',SI |
|
end do |
|
end program PROGRAM3 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.