Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Интеграл методом треугольников


Автор: andru2012 27.3.2014, 20:33
У меня есть программа которая считает интеграл --- f(x)=5x^2-x+2

Код

program fourrr;

var a, b : real; { границы отрезка}
       h : real; { приращение аргумента }
       s : real; { приближенное значение интеграла }
       n : real; {количество интервалов }
       x : real; { аргумент }
       y : real; { значение функции в начале интервала }
       i : integer;
begin
    writeln('  f(x)=5x^2-x+2  ');

    write('Нижняя граница a: '); read(a);
    write('Верхняя граница b: '); read(b);
    write('приращение аргумента h: '); read(h);

     n := (b - a) / h + 1;
     x := a;
     s := 0;

    i := 1;
    while i <= n do
      begin
        y := x * x + 2;  { значение функции в начале интервала }
        s := s + (y * h);
        x := x + h;
      end;

   writeln('значение интеграла: ', s); 
end.


Мне надо переписать ее на вот такой интеграл --- f(x)=(p^5 * x * e^x) / ( (p + e^x)^6 ) * dx 
где p меняется от -10 до 10 В программе использовать процедуры или функции
Огромное спасибо за помощь!

Автор: v4v4n 4.4.2014, 07:52
andru2012, в твоем примере не метод трапеций, не функция f(x)=5x^2-x+2 и, вообще, пример не работает ))

Код

program fourrr;
var a, b : real; { границы отрезка}
       h : real; { приращение аргумента }
       s : real; { приближенное значение интеграла }
       x : real; { аргумент }
       p : real; 
  function f(p,x:real):real;
    begin
        f:=(exp(5*ln(p))*x*exp(x))/(exp(6*ln(p+exp(x))));
    end;

begin
    writeln('  f(x)=(p^5 * x * e^x) / ( (p + e^x)^6 )  ');
    write('Параметр p: '); readln(p);
    write('Нижняя граница a: '); readln(a);
    write('Верхняя граница b: '); readln(b);
    write('приращение аргумента h: '); readln(h);
    s:=(f(p,a)+f(p,b))/2;
    x:=a+h;
    while x < b do
      begin
        s := s + f(p,x);
        x := x + h;
      end;
    s:=s*h;
    writeln('значение интеграла: ', s); 
end.

Автор: Poseidon 4.4.2014, 12:01
Для домашних заданий, контрольных и курсовых существует http://forum.vingrad.ru/Vingrad-help-center.html.

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)