2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Определение интегр формулой Симпсона методом удвоение числа.
Сообщение29.10.2013, 16:58 
(Делфи)Помогите пожалуйста, мучаюсь уже 2 дня, вообще не понимаю цикл программы. Намудрил что то, но не правильно.
Вот программа:
Код:
program simpson;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function F(x:Real):real;
begin
F:=SIN(x+1);
end;
var a, b, k, n, i: Integer;
    S1, S2, h, E: Real;
begin
writeln('vedite a' );
readln(a);
writeln('vedite b' );
readln(b);
writeln('vedite E' );
readln(E);
n:=1;
S1:=0;
S2:=0;
repeat
n:=n*2;
h:=(a+b)/n;
For i:=1 to n-1 do
begin
S1:=(F(a+i*h)+1/2*F(a)+1/2*F(b));
end;
For k:=1 to n do
begin
S2:=1/2*S1+F*(a+(2*k-1)*h);
end;
until Abs(S2-S1)<=E;
Writeln(S1);
Readln;
Readln;
end.

Вот задание
Изображение

 
 
 
 Re: Определение интегр формулой Симпсона методом удвоение числа.
Сообщение30.10.2013, 09:04 
Fuz в сообщении #781839 писал(а):
Вот задание

Оригинальное задание. Вообще-то авторам (даже древним) полезно бы знать, что формула Симпсона имеет отнюдь не такой вид.

Независимо от этого: текст программы, набранный без отступов, читать совершенно невозможно.

 
 
 
 Re: Определение интегр формулой Симпсона методом удвоение числа.
Сообщение30.10.2013, 15:55 
Fuz в сообщении #781839 писал(а):
Код:
For i:=1 to n-1 do
begin
S1:=(F(a+i*h)+1/2*F(a)+1/2*F(b));
end;
Вот над этим подумайте. Что считает этот цикл? Возьмите $n=4$ и тщательно посмотрите. Это не единственная ересь, но надо ж с чего-нить начать...

-- 31.10.2013, 00:06 --

ewert в сообщении #782050 писал(а):
полезно бы знать, что формула Симпсона имеет отнюдь не такой вид
И таки да, это формула трапеций. Есть смысл уточнить задание.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group