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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2010, 14:51   #1
Arzamaks
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 17
По умолчанию Усовершенствование программы вычисления интеграла 3мя способами одновременно с 4мя графиками

Знаю, "тема решения интегралов поднималась на форуме неоднократно, воспользуйтесь поиском", но тем не менее за пару дней поиска информации - ничего не получилось...
Значит смысл программы:
Написать программу отыскания интеграла функции y=f(x) на заданных промежутках [a,b] тремя способами
- прямоугольника
- трапеции
- методом Симпсона
При этом вычислить значение интеграла по формуле Ньютона-Лейбница, построить 3 графика зависимости точности от количества разбиений “n” при различных n, так же необходим график подынтегральной функции.
Функция: 1/(x*lg(x)) на интервале [2,3].

Программа в целом работает, но необходима помощь в следующем:
- нужно изменить чтобы производились расчёты при вводе количества разбиения (n), а не при задании интервала разбиения!
-Почему то не выводит график самой функции (он должен быть там же где и погрешности)
-При тестировании программы заметил такую вещь - если я вычисляю например на интервале [2,3], а потом на другом (неважно каком) то не происходит перерасчёта значений функции во всех 3ёх методах, хотя значение Ньютона-Лейбница изменяется!
-Графики погрешностей обрываются в районе 32, не пойму почему и как исправить?

Код:
unit Grafiki;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, math, TeEngine, Series, TeeProcs, Chart, Grids,
  TeeFunci;

type
  TForm1 = class(TForm)
    Edit2: TEdit;
    Label4: TLabel;
    Chart1: TChart;
    Series1: TLineSeries;
    Series2: TLineSeries;
    Series3: TLineSeries;
    Label12: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    Счёт: TButton;
    Label3: TLabel;
    Series4: TLineSeries;
    procedure СчётClick(Sender: TObject);

    private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  t:Extended;
  f, x, y, x1, y1, y2, xn, yn: Extended;
    pryam, trapec, simpson: Extended;
    shag,i,j:integer;
implementation

{$R *.dfm}

procedure TForm1.СчётClick(Sender: TObject);
begin
x:=strtofloat(Edit3.text);
y:=strtofloat(Edit4.text);
t:=StrToFloat(Edit2.Text);
y1:=2.3026*(ln(ln(x))-ln(ln(2)));
  y2:=2.3026*(ln(ln(y))-ln(ln(2)));
  f:=y2-y1;
 if t=0 then exit;
 pryam:=0;
 trapec:=0;
 simpson:=0;
 shag:=0;
 series1.clear;
 series2.Clear;
 series3.Clear;
 repeat
   shag:=shag+1;
   x1:=x;
   y1:=y;
   y:=1/(x*log10(x));
   xn:= x + t/2;
   x:= x + t;
   yn:=1/(xn*log10(xn));
   pryam := pryam + ((x-x1)*y);
   series1.AddXY(shag,abs(f-pryam),'',clred);
   trapec := trapec + (x-x1)*(y+y1)/2;
   series2.AddXY(shag,abs(f-trapec),'',clblue);
   simpson := simpson + t/6*(y1+4*y+yn);
   series3.AddXY(shag,abs(f-simpson),'',clgreen);
   series4.AddXY(shag,f,'',clblack);
 until not (x<3);
StringGrid1.Cells[0,1]:='Значение интеграла';
StringGrid1.Cells[0,2]:='Погрешность';
StringGrid1.Cells[1,0]:='Метод Прямоугольников';
StringGrid1.Cells[2,0]:='Метод Трапеции';
StringGrid1.Cells[3,0]:='Метод Симпсона';
 StringGrid1.Cells[1,1]:=floattostr(pryam);
 StringGrid1.Cells[2,1]:=floattostr(trapec);
 StringGrid1.Cells[3,1]:=floattostr(simpson);
 StringGrid1.Cells[1,2]:=floattostr(abs(f-pryam));
 StringGrid1.Cells[2,2]:=floattostr(abs(f-trapec));
StringGrid1.Cells[3,2]:=floattostr(abs(f-simpson));
 Edit1.text:=floattostr(f);
end;
end.
Вложения
Тип файла: rar Программа 1.rar (522.3 Кб, 19 просмотров)

Последний раз редактировалось Arzamaks; 10.07.2010 в 15:10.
Arzamaks вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка алгоритма вычисления параметрического интеграла методом Симпсона killbore Помощь студентам 3 09.04.2010 01:37
Блок-схема вычисления интеграла Halifath Помощь студентам 1 05.10.2009 11:56
Помогите создать програму для вычисления определенного интеграла Методом Симпсона Сергей Человек Помощь студентам 11 06.07.2009 16:15
Блок-схема алгоритма вычисления определенного интеграла kbreyz Общие вопросы C/C++ 1 16.06.2009 22:14
Составить алгоритм и программу вычисления определенного интеграла triston Помощь студентам 3 18.11.2008 18:35