Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2015, 21:14   #1
Neostat
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 49
По умолчанию Для заданных границ интегрирования a и b вычислите значение определенного интеграла

Уважаемые форумчане,помогите пожалуйста найти ошибку в программе :
под буквой G).

Язык программирования Delphi (7-ая)
Код:
uses
  SysUtils,
  Windows,
  Math;

var a,b,m,k:Real;//ãðàíèöû èíòåãðàëà
    n:integer;

//n=0
function F1(n:Integer;k:real):Real;
begin
   F1:= Exp(k*n)/k;
end;

//n=1
function F2(x:Real;n:Integer;k:real):Real;
begin
   F2:= (-Exp(k*x)*(Sin(x)+k*cos(x)))/(Sqr(k)+Sqr(n));
end;

// n>=2
function F3(x:Real;n:integer;k:Real):Real;
begin
  F3:=(Exp(k*x)*Power(Cos(x),n-1)*(k*cos(x) + n*sin(x)))/(Sqr(k)+Sqr(n));
end;

//рекурсиваня функция
function Integral(a,b:Real; n:integer; k:real):Real;
begin
    if n=1 then
        Integral := F1(n,k)
      else  if n=2 then
           Integral:= F2(b,n,k) - F2(a,n,k)
      else
           Integral:= F3(b,n,k) - F3(a,n,k) + (((n*(n-1))/(Sqr(k)+Sqr(n)))* Integral(a,b,n-2,k));

end;
//ãëàâíàÿ ÷àñòü ïðîãðàììû
begin
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);

   //Вместо коэффициента "а" заменил на k,для удообства
   Writeln('Введите k');
   Readln(k);

   //Ввод границ
   Writeln('Введите границу интегрирования a,b (a<b)');
   Readln(a,b);
   while (a>b) do
     begin
         Writeln('Ошибка,повторите ввод a,b (a<b)');
         readln(a,b);
     end;

   //Ввод n
    Writeln('Введите (n>0))');
    Readln(n);

    //n>0
    while (n<=0) do
     begin
       Writeln('Ошибка,повторите ввод:');
       Readln(n);
     end;

     //Вывод результата
     Writeln('Result: ',Integral(a,b,n,k):7:5);
     Readln;


end.
P.s. предыдущие интегралы F),и E) решил правильно и проверил тут http://matematikam.ru/calculate-onli...e-integral.php и все сошлось,а с этим G,что то никак((Буду очень благодарен за помощь.

Последний раз редактировалось Stilet; 07.03.2015 в 21:29.
Neostat вне форума Ответить с цитированием
Старый 09.03.2015, 19:01   #2
Neostat
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 49
По умолчанию

Ну помогите пожалуйста(((
Neostat вне форума Ответить с цитированием
Старый 09.03.2015, 19:49   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Во-первых, опечатка в самом рисунке.
При n=0, должно быть не e^(an)/a , а e^(ax)/a
Проверьте сами. Ведь под интегралом получается просто экспонента, потому что cos в степени 0 равен 1. И вообще, все что угодно в степени 0 равно 1.
Поэтому исправьте функцию F1. Аргументы будут x,k, а не n,k

Во- вторых, почему вы внутри функции Integral функцию F1 вызываете при n=1, а не при n =0 ?
И F2 тоже - почему при 2, а не 1 ?

Последний раз редактировалось type_Oleg; 09.03.2015 в 19:57.
type_Oleg вне форума Ответить с цитированием
Старый 10.03.2015, 00:37   #4
Neostat
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 49
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Во-первых, опечатка в самом рисунке.
При n=0, должно быть не e^(an)/a , а e^(ax)/a
Проверьте сами. Ведь под интегралом получается просто экспонента, потому что cos в степени 0 равен 1. И вообще, все что угодно в степени 0 равно 1.
Поэтому исправьте функцию F1. Аргументы будут x,k, а не n,k

Во- вторых, почему вы внутри функции Integral функцию F1 вызываете при n=1, а не при n =0 ?
И F2 тоже - почему при 2, а не 1 ?
ещё раз большое вам спасибо!
Neostat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для заданных границ интегрирования a и b вычислите значение определенного интеграла Neostat Помощь студентам 15 01.03.2015 22:10
программа для вычисления определенного интеграла методом прямоугольника через процедуру (Turbo Pascal) KristyDolganova Помощь студентам 5 19.12.2012 20:28
Вычислить значение математического выражения для заданных данных Rusak723 Паскаль, Turbo Pascal, PascalABC.NET 3 08.06.2011 17:53
Значение определенного интеграла Aerowalk Паскаль, Turbo Pascal, PascalABC.NET 5 19.05.2011 13:43
Помогите создать програму для вычисления определенного интеграла Методом Симпсона Сергей Человек Помощь студентам 11 06.07.2009 16:15