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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2016, 08:17   #1
maxqwe
Новичок
Джуниор
 
Регистрация: 24.06.2016
Сообщений: 1
Радость График производной

Здравствуйте , подскажите пожалуйста(на моём задании , если можно) , как мне построить график производной, процедура закомментирована как //график производной(переделать) .Сколько пробовал вводить и применять формулы , не выходит.
Delphi
Прикладываю код и исходник
Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Math, ExtCtrls, TeeProcs, TeEngine, Chart,
  Series, jpeg;
 
type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    Chart1: TChart;
    Button1: TButton;
    Series1: TFastLineSeries;
    Chart2: TChart;
    Series2: TLineSeries;
    Button2: TButton;
    Button3: TButton;
    Edit5: TEdit;
    Edit6: TEdit;
    Button4: TButton;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit10: TEdit;
    Button5: TButton;
    Edit11: TEdit;
    Label9: TLabel;
    Edit12: TEdit;
    Image1: TImage;
    procedure BitBtn2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
const
  e = 0.01;
   var
    g:double;
    x,y,a : extended;
 
    function f(y : double): double;
     begin
      result := (power(8+abs(power((x-y),3)), 1/3))/(sqrt(power(x,2) + power(y,2)) + 1.25) + 0.05*a + logN(4,5) + sqrt(Log10(2*y+1.3));
     end;
 
 
        procedure TForm1.BitBtn2Click(Sender: TObject); //вычисление функции
        const
        step = 0.2;
          begin
            x := StrToFloat(edit1.Text);
            y := StrToFloat(Edit2.Text);
            a := StrToFloat(Edit3.Text);
            Memo1.Lines.clear;
            Memo1.Lines.Add('     y                                g  ');
            y := 0.1;
          while (y<8) do
            begin
              g := (f(y));
              Memo1.Lines.Add(floattostrf(y,fffixed,6,3)+
              '                         '+floattostrf(g,fffixed,6,3));
               y:=y+step;
            end;
          end;
          
 
 
        procedure TForm1.Button1Click(Sender: TObject);//график функции
          var
          y,i:double;
        begin
          y := StrToFloat(Edit2.Text);
          Series1.Clear;
          i := 0;
        while i<y do
          begin
            i := i+0.3;
            Series1.AddXY(i,(f(i)),'',clGreen);
          end;
        end;
 
 
          procedure TForm1.Button5Click(Sender: TObject);//производная
            const
            e = 0.00000001;
            var
            y0,y,derivative:double;
          begin
            y0 := StrToFloat(Edit10.Text);
            y := y0+e;
            derivative := (f(y)-f(y0))/e;
            Edit11.Text := FloatToStr(derivative);
          end;
 
 
        procedure TForm1.Button2Click(Sender: TObject); // график производной(переделать)
          const
          e = 0.00000001;
          var
          x,a,a0:double;
            begin
              //x := StrToFloat(edit1.Text);
              Series2.Clear;
              a := 0;
              x := 0;
            while a<8 do
              begin
                Series2.AddXY(a,x,'',clred);
                a0 := a0 + 0.3;
                a := a0 + e;
                x := (f(a)-f(a0))/e;
              end;
            end;
 
 
        procedure TForm1.Button3Click(Sender: TObject);//дихотомия
          var
          start,finish,middle,result:double;
            begin
              start := 0.2;
              finish := 1;
            repeat
              middle := (start+finish)/2;
              if f(start)*f(middle)>0 then
                start := middle
              else
                finish := middle;
            until
              abs(finish-start)<e;
              result := (start+finish)/2;
              Edit5.Text := 'y='+floattostrF(result,ffFixed,8,4);
              Edit12.Text := 'g(y)='+floattostrF(f(result),ffFixed,8,4);
            end;
 
 
        procedure TForm1.Button4Click(Sender: TObject); // метод Симпсона
          var
          start,finish: double;
          i1,h,middle,x,e,r,result: extended;
          k,n: integer;
            begin
              start := strtofloat(edit8.text);
              finish := strtofloat(edit9.text);
              e := strtofloat(edit6.text);
              n := round(1/e);
              e := 1/n;
              h := (finish-start)/n;
              i1 := 0;
              result := 0;
              r := 2*e;
            while r>e do
              begin
                middle := (f(start)-f(finish))/2;
                for k := 0 to round(int((finish-start-2*h)/(2*h))) do
                begin
                  x := a+h+result*2*h;
                  middle := middle+2*f(x)+f(x+h);
                end;
              result := 2*h*middle/3;
              r := abs(result-i1)/15;
              h := h/2;
              i1 := result;
            end;
          Edit7.Text := floattostr(result);
 
end;
end.
Вложения
Тип файла: zip Задание.zip (649.4 Кб, 9 просмотров)

Последний раз редактировалось maxqwe; 24.06.2016 в 08:21.
maxqwe вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Производной 2 порядка Togisova Помощь студентам 4 17.05.2016 18:42
коэффициенты k - ой производной полинома ванец Помощь студентам 4 31.10.2010 20:35
Вычисление производной функции mde Помощь студентам 0 01.06.2008 12:52
Нахождение производной Sota Свободное общение 11 02.05.2008 18:32