Лабораторная работа 3 Инфа. Лабораторная 3. Лабораторная работа 3 Тема Детерминированные вычислительные процессы с управлением по аргументу
Скачать 255.56 Kb.
|
Лабораторная работа №3 1.Тема:Детерминированные вычислительные процессы с управлением по аргументу. Численное интегрирование. 2.Цель:Посчитать интеграл всеми возможными числовыми способами, определить наиболее точный из них 3)Используемое оборудование: ПК, abs.net pascal 4)Постановка задачи: написать программу для вычисления интеграла, Протестировать программу на определенном интеграле. Кол-во разбиений Шаг Метод левых прямоуголь ников Метод правых прямоуголь ников Метод трапеций Метод парабол 10 0.7 0.3502 0.3490 0.3496 0.3265 100 0.07 0.3462 0.3461 0.3462 0.3496 1000 0.007 0.3493 0.3492 0.3492 0.3496 10000 0.0007 0.3496 0.3496 0.3496 0.3495 Задача 1 (метод левых частей) 5) Мат модель 6) 7) имя тип смысл a real Нижний предел интегрирования; вводится с клавиатуры b real Верхний предел интегрирования; вводится с клавиатуры x real Аргумент цикла h real Шаг s real Результат n integer Количество разбиений; вводится с клавиатуры 8) var n: integer; s, h, x, a, b: real; begin write(' кол-во разбиений: '); read(n); a:=1.9; b:=2.6; h:= (b-a)/n; s:= 0; x:= a; while(x<=b-h) do begin s:= s+sqrt(2*x+1.7)/(2.4+sqrt(1.2*x*x+0.6)); x:= x+h; end; s:= h*s; writeln ('Ответ: ', s); end. Протестируем программу на интеграле с самостоятельной работы. Итог выполнения кода близок к результатам вычисления интеграла вручную. значит программа работает верно. Задача 2 (метод правых частей) 5) 6) 7) имя тип смысл a real Нижний предел интегрирования; вводится с клавиатуры b real Верхний предел интегрирования; вводится с клавиатуры x real Аргумент цикла h real Шаг s real Результат n integer Количество разбиений; вводится с клавиатуры 8,9) var n: integer; s, h, x, a, b: real; begin write('Введите кол-во разбиений: '); read(n); a:=1.9; b:=2.6; h:= (b-a)/n; s:= 0; x:= a+h; while(x<=b) do begin s:=s+sqrt(2*x+1.7)/(2.4+sqrt(1.2*x*x+0.6)); x:= x+h; end; s:= h*s; writeln ('Ответ: ',s); end. Итог выполнения кода близок к результатам вычисления интеграла вручную. значит программа работает верно. Задача 3 (метод трапеций) 5) 6) 7) имя тип смысл a real Нижний предел интегрирования; вводится с клавиатуры b real Верхний предел интегрирования; вводится с клавиатуры x real Аргумент цикла h real Шаг s real Результат n integer Количество разбиений; вводится с клавиатуры sb real Промежуточная переменная sa real Промежуточная переменная 8,9) var n: integer; s, h, x, a, b,sa,sb: real; begin write('Введите кол-во разбиений: '); read(n); a:=1.9; b:=2.6; h:= (b-a)/n; s:= 0; x:= a+h; while(x<=b-h) do begin s:= s+sqrt(2*x+1.7)/(2.4+sqrt(1.2*x*x+0.6)); x:= x+h; end; sa:= sqrt(2*a+1.7)/(2.4+sqrt(1.2*a*a+0.6)); sb:= sqrt(2*b+1.7)/(2.4+sqrt(1.2*b*b+0.6)); s:= h*((sa+sb)/2+s); writeln ('Ответ: ', s); end. Итог выполнения кода близок к результатам вычисления интеграла вручную. значит программа работает верно. Задача 4 (метод парабол) 5) 6) 7) имя тип смысл a real Нижний предел интегрирования; вводится с клавиатуры b real Верхний предел интегрирования; вводится с клавиатуры x real Аргумент цикла h real Шаг s real Результат n integer Количество разбиений; вводится с клавиатуры sb real Промежуточная переменная sa real Промежуточная переменная 8,9) var n: integer; s, h, x, a, b,sa,sb,k: real; begin write('Введите кол-во разбиений: '); read(n); a:=1.9; b:=2.6; h:= (b-a)/n; s:= 0; x:= a+h; while(x<=b-h) do begin s:= s+sqrt(2*x+1.7)/(2.4+sqrt(1.2*x*x+0.6)); x:= x+2*h; end; k:=0; x:=a+2*h; while (x<=b-2*h) do begin k:= k+sqrt(2*x+1.7)/(2.4+sqrt(1.2*x*x+0.6)); x:= x+2*h; end; sa:= sqrt(2*a+1.7)/(2.4+sqrt(1.2*a*a+0.6)); sb:= sqrt(2*b+1.7)/(2.4+sqrt(1.2*b*b+0.6)); s:= h/3*(sa+sb+4*s+2*k); writeln ('Ответ: ', s); end. Итог выполнения кода близок к результатам вычисления интеграла вручную. значит программа работает верно Вывод: Для каждой функции свой метод более точен из за этого и существует такое количество методов. Посмотрев на таблицу можно увидеть что при увеличении количества разбиений увеличивается и точность. Для этой функции самым точным методов является - метод левых треугольников |