Диференціальні рівняння



Знайду розв’язок рівняння методом Ейлера з кроком :

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Math.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

float xc, yc, mashtY, mashtX;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

class Div_rivn

{

public:

//##ModelId=509B95890066

Medot_Eillera(float x0, float y0);

};

void osi(int x0, int y0)

{

Form1->Image1->Canvas->MoveTo(x0,0);

Form1->Image1->Canvas->LineTo(x0,Form1->Image1->Height);

Form1->Image1->Canvas->MoveTo(0,y0);

Form1->Image1->Canvas->LineTo(Form1->Image1->Width,y0);

}

float f(float x, float y)

{

return cos(2*x);

}

int xk(float xm)

{

return xc+xm*mashtX;

}

int yk(float ym)

{

return yc-ym*mashtY;

}

Div_rivn::Medot_Eillera(float x0, float y0)

{

int x,y;

x=xk(x0);

y=yk(y0);

Form1->Image1->Canvas->Pen->Color = clRed;

Form1->Image1->Canvas->MoveTo(x,y);

float xn,yn,xn1,yn1;

xn=x0;

yn=y0;

xn1=x0;

int x1k,y1k;

float h=0.01;

while (xn1<=10)

{

xn1=xn+h;

yn1=yn+h*f(xn,yn);

x1k=xk(xn1);

y1k=yk(yn1);

Form1->Image1->Canvas->LineTo(x1k,y1k);

xn=xn1;

yn=yn1;

}

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

mashtX=50;

mashtY=50;

xc=200;

yc=200;

osi(xc,yc);

c.Medot_Eillera(0,0);


Дата добавления: 2015-12-21; просмотров: 15; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!