Читаем Вычислительная математика полностью

Программа реализует оба метода – ТРАПЕЦИЙ и СИМПСОНА для функции f(x) с подбором шага интегрирования.

public double f(double x)             {return x-Math.Cos(x);}

while (Math.Abs(r – r1) > p) { r1 = r; s=0; x=0;

if (radioButton1.Checked == true) k = n; else k = 2 * n;

h = (b – a) / k; for (int i=1;i<=k-1;i++) { x=x+h;

if (radioButton1.Checked == true) s = s + f(x);

                               else s = s+(3+Math.Pow(-1,i-1))*f(x); }

if (radioButton1.Checked == true) { r = h * (f(a) + f(b) + 2 * s) / 2; }

else { r = h * (f(a) + f(b) + s) / 3; }

n = n + 10; } textBox1.Text=Convert.ToString(r);

textBox2.Text=Convert.ToString(n);

Пример программы на языке Pascal

VAR I,K:INTEGER; Е,Z,Z0,Z9,H,S:REAL;

FUNCTION F(X:REAL):REAL;

BEGIN F:=SQRT(1.0-Z*SQR(SIN(X)); END;

PROCEDURE SIMPE(A,B,E:REAL; FUNCTION F:REAL;VAR S:REAL);

VAR I:INTEGER; C1,H,H2,S1,S2,S3,X:REAL;

BEGIN E1:=E*15.0; H:=(B-A)/2;

S:=2*F(A+H); S1:=F(A)+F(B)+S; S:=S1+S;

REPEAT S2:=0.0; S3:=S; H2:=H; H:=H/2; X:=A+H;

WHILE (X0.0) DO BEGIN S2:=S2+F(X); X:=X+H2; END; S2:=2*S2; S1:=S1+S2; S:=S1+S2; UNTIL ABS(1.0-S/(2*S3))<=C1; S:=S*H/3.0;END;

BEGIN

REPEAT WRITE ('C,Z0,Z9,H?');READLN(C,Z0,Z9,H); K:=ROUND((Z9-Z0)/Н+1.0); Z:=Z0;

FOR I:=1 TO К DO BEGIN SIMPE(0.0,3.1415925/2,E,F,S);

WRITELN(Z,' ',S); Z:=Z+H; END; UNTIL FALSE; END.

Пример программы на языке Basic

10 DEF FNA(Х) =SQR(1-Z*SIN(X)^2)

20 PRINT "E,Z0,Z9,H1";: INPUT E,Z0,Z9,H1

30 A=0 : B=PI/2

40 FOR Z=Z0 ТО Z9 STEP H1

50 GOSUB 100

40 PRINT Z,S : NEXT Z

90 GOTO 10

100 E1=E*15 : H=(B-A)/2

110 S=2*FNA(A+H) : S1=FNA(A)+FNA(B)+S : S=S1+S

120 S2=0 : S3=S : H2=H : H=H/2

130 FOR X=A+H TO В STEP H2 : S2=S2+FNA(X):NEXT X

140 S2=2*S2 : S1=S1+S2 : S=S1+S2

150 IF ABS(1-S/(2*S3))>E1 THEN 120

140 S=S*H/3

190 RETURN

Метод МОНТЕ-КАРЛО

Программно генерируются случайные числа и значение интеграла определяется как соотношение количества чисел, попавших в пределы функции, к общему количеству чисел.

Геометрическая интерпретация метода:

Пример программы на языке Basic

10 DEF FNY(X)=COS(P*X-Z*SIN(X))

20 PRINT "ВАРИАНТ"; : INPUT I

30 PRINT "N,P,Z"; : INPUT N,P,Z

35 A=0 : B=PI

40 IF I = 1 THEN GOSUB 100

50 IF I=2 THEN GOSUB 200

60 PRINT "S="S/PI

90 GO TO 20

100 H=B-A : S=0

110 FOR I = 1 TO N : S=S+FNY(A+RND(1)*H) : NEXT I

120 S=H*S/N

190 RETURN

200 H=B-A : S=0 : R=0

210 F=FNY(A+RND(1)*H)

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии