Другие языки программирования и технологии
Pascal программирование алгоритмов ветвящихся структур пожалуйста помогите спасибо заранее
Написать программу приближенного вычисления интеграла функции f1 = 3(0.5/(x + 1) + 1) методом Симпсонов.
Метод Симпсона? Есть такой. А он применим здесь вообще на отрезках типа [-2;0] ? При х=-1 что будет как не сингулярность?
Методы Симпсона и трапеций хороши тем, что на каждой итерации достаточно считать только точки с нечётными индексами - "чётные" точки уже подсчитаны на предыдущих итерациях.
var
a, b, eps, d, t0, t1, t2, s0, s1: real;
n, i: integer;
function f1(x: real): real; begin f1 := 1.5 / (x + 1) + 3 end;
begin
read(a, b, eps);
d := b - a;
eps := eps * 15;
n := 2;
t0 := f1(a) + f1(b);
t1 := 0;
t2 := f1((a + b) / 2);
s1 := (t0 + 4 * t2) * d / (3 * n);
repeat
s0 := s1;
t1 := t1 + t2;
t2 := 0;
for i := 0 to n - 1 do t2 := t2 + f1(a + d * (i + 0.5) / n);
n := n * 2;
s1 := (t0 + 2 * t1 + 4 * t2) * d / (3 * n)
until abs(s1 - s0) < eps;
writeln(s1)
end.
P.S. Пределы интегрирования и точность вычисления - с клавиатуры.
var
a, b, eps, d, t0, t1, t2, s0, s1: real;
n, i: integer;
function f1(x: real): real; begin f1 := 1.5 / (x + 1) + 3 end;
begin
read(a, b, eps);
d := b - a;
eps := eps * 15;
n := 2;
t0 := f1(a) + f1(b);
t1 := 0;
t2 := f1((a + b) / 2);
s1 := (t0 + 4 * t2) * d / (3 * n);
repeat
s0 := s1;
t1 := t1 + t2;
t2 := 0;
for i := 0 to n - 1 do t2 := t2 + f1(a + d * (i + 0.5) / n);
n := n * 2;
s1 := (t0 + 2 * t1 + 4 * t2) * d / (3 * n)
until abs(s1 - s0) < eps;
writeln(s1)
end.
P.S. Пределы интегрирования и точность вычисления - с клавиатуры.
примени эту прогу
Program INTEGRAL; // по Симпсону где A и B - нижняя и верхняя границы
uses crt; //интервала интегрирования, N - число разбиений
//интервала интегрирования, h=(B-A)/N, причем N
// должно быть четным.
type
Func= function(x: Real): Real;
var
I,TN,TK:Real;
N:Integer;
{$F+}
Function Q(t: Real): Real;
begin
// Q:=2*t/Sqrt(1-Sin(2*t));
Q:=1/(t*t*sqrt(t*t-1));
end;
{$F-}
Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real);
var
sum, h: Real;
j:Integer;
begin
if Odd(N) then N:=N+1;
h:=(b-a)/N;
sum:=0.5*(F(a)+F(b));
for j:=1 to N-1 do
sum:=sum+(j mod 2+1)*F(a+j*h);
INT:=2*h*sum/3;
end;
begin
clrscr;
WriteLn(' ВВЕДИ TN,TK,N(четное)');
Read(TN,TK,N);
Simps(Q,TN,TK,N,I);
WriteLn('I=',I:8:3);
writeln('конец задачи');
readkey;
end.
Program INTEGRAL; // по Симпсону где A и B - нижняя и верхняя границы
uses crt; //интервала интегрирования, N - число разбиений
//интервала интегрирования, h=(B-A)/N, причем N
// должно быть четным.
type
Func= function(x: Real): Real;
var
I,TN,TK:Real;
N:Integer;
{$F+}
Function Q(t: Real): Real;
begin
// Q:=2*t/Sqrt(1-Sin(2*t));
Q:=1/(t*t*sqrt(t*t-1));
end;
{$F-}
Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real);
var
sum, h: Real;
j:Integer;
begin
if Odd(N) then N:=N+1;
h:=(b-a)/N;
sum:=0.5*(F(a)+F(b));
for j:=1 to N-1 do
sum:=sum+(j mod 2+1)*F(a+j*h);
INT:=2*h*sum/3;
end;
begin
clrscr;
WriteLn(' ВВЕДИ TN,TK,N(четное)');
Read(TN,TK,N);
Simps(Q,TN,TK,N,I);
WriteLn('I=',I:8:3);
writeln('конец задачи');
readkey;
end.
Похожие вопросы
- программирование pascal (паскаль) алгоритм с перестановкой цифр в числе
- Можно ли изучать Алгоритмы и структуры данных без знаний языков программирования? Язык думал после этого осваивать.
- Программирование. Опишите на языке программирования алгоритм вычисления...
- Что такое алгоритмы и структуры данных в информатике поясните простым языком чтобы было понятно для чего это вообще?
- Помогите написать простые программы и задачи в Pascal ABC. Алгоритмы ветвления. Информатика. Програмирование.
- Олимпиадная задача по программированию в Pascal (Free, ABC.net) 10 класс! Помогите решить?)
- Вопрос по программированию. Алгоритмы
- Пожалуйста помогите решить задачу Pascal
- Где выучить язык программирования от А до Я? И чтоб понятно было. Спасибо заранее. И чтоб понятно было. Спасибо заранее.
- Turbo Pascal помогите пожалуйста. помогите пожалуйста с написание программы для вычисления 1-й и 2-й производной функции
?= ИЛИ ВЫ АВУ поменяли??