Литмир - Электронная Библиотека

Методы вычислительной математики делятся на точные и приближенные. Точные методы применяются в тех случаях, когда известны расчетные формулы, а также конкретное значение коэффициентов в них.

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

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

Методы вычислительной математики применяются также для поиска экстремального значения целевой функции в оптимизационных задачах, в том числе в нелинейных.

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

При использовании численных методов необходимо помнить о физической сущности рассматриваемых математических задач.

Некоторые задачи вычислительной математики можно решить, используя возможности табличного процессора Excel. Практически все задачи вычислительной математики можно решить в среде программного продукта Mathcad.

©Альмухаметов В.

НАХОЖДЕНИЕ ПОЛИНОМА ПО СХЕМЕ ГОРНЕРА

Для вычисления полинома n-й степени можно использовать схему Горнера: Y=((…((an*x +an-1)*x + an-2)*x +… +a2)*x + a1)*x + a0

рекуррентная формула при этом выражается в виде:

i = n Yi = аn Yi – 1= Yi x + ai

Алгоритм метода

Вычислительная математика - _1.jpg

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

VAR N,I:INTEGER;X,Y:REAL;A:ARRAY[0..10] OF REAL;

BEGIN

WRITE('Введите N=');READLN(N);

WRITE('Введите X=');READLN(X);

WRITELN('Введите коэффициенты:');

FOR I:=0 TO N DO BEGIN

      WRITE('A[',I,']=');READLN(A[I]);END;

            Y:=A[N];

FOR I:=N-1 DOWNTO 0 DO Y:=Y*X+A[I];

WRITELN('Результат Y=',Y); END.

ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ

Задача численного интегрирования состоит в нахождении приближенного значения интеграла. Отрезок (ab) разбивается на определенное число интервалов N, в зависимости от требуемой точности вычисления.

Формула ПРЯМОУГОЛЬНИКА             

Вычислительная математика - _2.jpg

шаг:            h=(b-a)/N

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

Вычислительная математика - _3.jpg

Формула ТРАПЕЦИИ

Вычислительная математика - _4.jpg
Вычислительная математика - _5.jpg

шаг:            h=(b-a)/N            О – показатель точности вычислений

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

Вычислительная математика - _6.jpg

Алгоритм метода трапеций:

Вычислительная математика - _7.jpg

Решить задачу:

Методом трапеций найти значение интеграла функции Y = x – Cos(x) в пределах от 0 до 2.

Пример программы (Pascal):

PROGRAM P10;

FUNCTION FUN(X:REAL):REAL;

BEGIN

FUN:=X-COS(X); END;

VAR H,X,Y,A,B:REAL; I,N:INTEGER;

BEGIN

WRITELN('Ввести данные A(0),B(2),N(1000) = ');

READ(A,B,N);

X:=0; Y:=0; H:=(B-A)/N;

FOR I:=1 TO N-1 DO BEGIN

X:=X+H;Y:=Y+FUN(X);END;

Y:=H/2*(FUN(A)+FUN(B)+2*Y);WRITELN('Результат= ',Y);

END.

(Результат для 1000 шагов: 1.09070287627348)

Решить задачу:

Задача. Найдите значение определенного интеграла от функции

Вычислительная математика - _8.jpg
на интервале [1; 4], количество разбиений n = 52.

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

CONST       N = 52;      A = 1;      B = 4;

VAR       Y0, YN, X, S, H: REAL;I: INTEGER;

BEGIN

H := (B-A)/N;      Y0 := SQR(LN(A))/A;

YN := SQR(LN(B))/B;      S := (Y0 + YN)/2;

FOR I:= 1 TO N-1 DO

      BEGIN

            X := A + I*H;

            S := S + SQR(LN(X))/X

      END;      S := S*H;

WRITELN (‘ИНТЕГРАЛ РАВЕН ’, S);

END.

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

10 DEF FNA(X)=EXP(-Х*Х)

20 PRINT "N,B0,B9,H1"; : INPUT N,B0,B9,H1

30 C=2/SQR(PI) : A=0 : S1=0

40 FOR B=B0 TO B9 SТЕР H1

50 GOSUB 100

60 S1=S1+S : A=B

70 PRINT B,C*S1 : NEXT В

90 GOTO 10

100 H=(B-A)/N : S1=(FNA(A)+FNA(B))/2

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

120 S=S*H

190 RETURN

110 REM МЕТОД ТРАПЕЦИИ

120 INPUT . “Входные переменные A,B,N =”;A,B,N

130 H = (B-A)/N

140 S = O

150 X = A

160 FOR I = 1 TO N-1

170 X = X+H

180 S = S + FNY (X)

190 NEXT I

200 S = H*(FNY(A) + FNY(B) + 2*S) / 2

210 RETURN

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

VAR N,I,K:INTEGER; A,B,B0,B9,H,C,S,S1:REAL;

FUNCTION F(X:REAL):REAL;BEGIN

F:=EXP(-X*X);END;

PROCEDURE TRAP(VAR A,B:REAL;

N:INTEGER; FUNCTION F:REAL;S:REAL);

VAR I:INTEGER;H:REAL;

BEGIN H:=(B-A)/N;S:=(F(A)+F(B))/2;

FOR I:=1 TO N-1 DO S:=S+F(A+I*H);

S:=S*H;END;

BEGIN C:=2/SQRT(3.14159265);

REPEAT WRITE('N,B0,B9,H?'); READLN(N,B0,B9,H);

K:=ROUND((B9-B0)/H+1.0); B:=B0; A:=0.0; S1:=0.0;

FOR I:= 1 TO K DO BEGIN TRAP(A,B,N,F,S); S1:=S1+S; A:=1.;

WRITELN(B,' ',C*S1); B:=B*H; END; UNTIL FALSE;END.

Формула СИМПСОНА

Вычислительная математика - _9.jpg

S= (b-a)/(6N)(f (x0) + f (x2N) + ∑i=12N-1 (3 + (-1) i-1) f (xi)) шаг:h=(b-a)/2N

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

Вычислительная математика - _10.jpg

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

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

1
{"b":"658485","o":1}