Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Consp_p1.rtf
Скачиваний:
12
Добавлен:
22.08.2019
Размер:
7.3 Mб
Скачать

Вычисление определенного интеграла

Задача:

Вычислить значение определённого интеграла на отрезке от a до b по методу прямоугольников.

Заменим вычисление интеграла вычислением суммы:

С Программа №8.

С Вычисление определённого интеграла по методу прямоугольников

1 Write(6,*)’Введите значения a,b,dx’

READ(5,*) A,B,DX

C Вычисляем количество точек на кривой

N=(B-A)/DX+1

DX=(B-A)/(N-1)

C Вычисление суммы

F=0.

Как всегда, перед вычислением суммы обнуляем ячейку памяти

DO 2 X=A,BDX,DX

Конечное значение цикла берём равным B-DX для того, чтобы не вычислить большую площадь, т.к. после окончания цикла переменная цикла имеет значение, которое больше конечного значения цикла на величину шага DX.

FX=SIN(X)**2+COS(X**2)

2 F=F+FX*DX

WRITE(6,*)’Значение интеграла равно ‘,F

PAUSE

GO TO 1

STOP

END

Оператором цикла DO переменной цикла X присваивается начальное значение A. Организуются циклические вычисления в области цикла, включая оператор с меткой 2. На каждом новом цикле значение X увеличивается на величину шага DX. В области цикла сначала вычисляется значение функции FX, а затем к переменной F, в которой накапливается сумма значений локальных интегралов, прибавляется значение функции, умноженное на DX. Вычисления будут проводиться до достижения переменной цикла X значения B-DX. В последний раз к F прибавится FX*DX (последняя площадка) и в области цикла вычисления завершатся.

Чем меньше величина шага DX, тем выше точность вычисления интеграла.

Задача 2:

Вычислить значение предыдущего интеграла, методом трапеции, который более точный.

Решение:

  1. Вычислим все значения функции F(x) и запомним их в массиве.

  2. Распечатаем все значения функции при соответствующем аргументе.

  3. Вычислим значение суммы для получения значения интеграла по методу трапеции.

С Программа №9

С Вычисление определённого интеграла по методу трапеции

DIMENSION FX(1000)

Задаем размерность массива заведомо большую, чем возможное количество вычислений функции

WRITE(6,*)’Введите значения величин A,B,DX

READ(5,*) A,B,DX

N=(B-A)/DX+1 Количество вычислений на отрезке

DX=(B-A)/(N-1) Уточненное значение шага

С Вычисляем значения массива

X=A Задаем начальное значение аргументу Х

DO 2 I=1,N

FX(I)=SIN(X)**2+COS(X**2) Формируем массив значений функции

WRITE(6,*)’При Х=’,X,’ значение функции равно ’,FX(I)

2 X=X+DX Задаем приращение аргумента

C Вычисление интеграла по формуле трапеции

F=0. Обнуляем ячейку памяти для накопления суммы

DO 1 K=1,N-1 Обратите внимание на количество циклов

F=F+(FX(K)+FX(K+1))/2.*DX

1 CONTINUE

WRITE(6,*)’Значение интеграла равно ’,F

PAUSE

STOP

END

14. Работа с одномерными массивами Ввод массивов

Предположим, что в программе описаны массивы:

DIMENSION A(10),B(10),C(20),D(4,3)

Существуют несколько способов ввода массивов:

Первый способ ввода массивов:

READ(5,*) A

Означает ввести все числовые значения массива А в том количестве, сколько их описано в операторе DIMENSION.

Недостатки такого ввода:

  • необходимо вводить числа до тех пор, пока массив не заполнится;

  • если вводятся несколько массивов, то сначала полностью заполнится первый массив, затем без предупреждения будут заполняться остальные массивы:

  • программа не начнёт выполняться, пока не будут введены все элементы массивов.

Достоинство: Самый простой способ записи ввода массивов.

Числа с клавиатуры можно вводить:

  1. в строчку – через пробел или запятую;

  2. нажимая «Enter» после каждого введённого числа.

Если имеется массив из 10 элементов, а при вводе в строке будет введено больше 10 элементов, то ЭВМ проигнорирует все лишние числа. Если же, наоборот, будет введено меньше 10 элементов, то ЭВМ будет ожидать ввода остальных чисел.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]