Автор работы: Пользователь скрыл имя, 27 Января 2011 в 01:02, курсовая работа
В даній курсовій роботі проведено дослідження двох чисельних методів вирішення диференційних рівнянь: Ейлера та Рунне-Кутта. Дослідження проводиться на прикладі заданого диференційного рівняння. Дається опис кожного з методів та задачі в цілому.
Завдання ………………………………………………………………………..
1.Загальні відомості ……………………………………………………………..
2.Вибір методу інструментальних засобів вирішення задач………………
3.Функціональне призначення програми …………………………………….
4.Розробка та опис логічної частини програми ………………………………
5.Керівництво оператору …………………………………………………………
6.Результати обчислень ………………………………………………………….
Висновки …………………………………………………………………………….
Література …………………………………………………………………………..
// of your final executable, you should remove from the following
//
the specific initialization routines you do not need.
// Enable3dControls(); // Call this
when using MFC in a shared DLL
// Change the registry key under which our settings are stored.
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization.
SetRegistryKey(_T("Local
AppWizard-Generated Applications"));
// To create the main window, this code creates a new frame window
//
object and then sets it as the application's main window object.
CZast dlg;
dlg.Create(IDD_DIALOG2);
dlg.ShowWindow(SW_SHOW);
dlg.RedrawWindow();
Sleep(1000);
dlg.ShowWindow(SW_HIDE);
CMDIFrameWnd* pFrame = new CMainFrame;
m_pMainWnd
= pFrame;
// create main MDI frame window
if
(!pFrame->LoadFrame(IDR_
return FALSE;
// try to load shared MDI menus and accelerator table
//TODO: add additional member variables and load calls for
// additional
menu types your application may need.
HINSTANCE hInst = AfxGetResourceHandle();
m_hMDIMenu
= ::LoadMenu(hInst, MAKEINTRESOURCE(IDR_MAINFRAME)
m_hMDIAccel
= ::LoadAccelerators(hInst, MAKEINTRESOURCE(IDR_MAINFRAME)
// The main window has been initialized, so show and update it.
pFrame->ShowWindow(m_
pFrame->UpdateWindow();
k1 = 15;
k2 = 16;
k3
= 10;
return TRUE;
}
//////////////////////////////
// CKursApp message handlers
int CKursApp::ExitInstance()
{
//TODO: handle additional resources you may have added
if (m_hMDIMenu != NULL)
FreeResource(m_
if (m_hMDIAccel != NULL)
FreeResource(m_
return CWinApp::ExitInstance();
}
void CKursApp::OnFileNew()
{
CMainFrame*
pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
// create a new MDI child window
pFrame->CreateNewChild(
RUNTIME_CLASS(
}
//////////////////////////////
// CAboutDlg dialog used for App
About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(
{
CDialog::DoDataExchange(
//{{AFX_DATA_MAP(
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// App command to run the dialog
void CKursApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
//////////////////////////////
// CKursApp message handlers
void CKursApp::OnMetd1()
{
SP_Eylr();
CMainFrame*
pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
// create a new MDI child window
CMDIChildWnd* ch=pFrame->CreateNewChild(
RUNTIME_CLASS(
ch->SetTitle("╠хЄюф ┼щыхЁр");
}
void CKursApp::OnMetd2()
{
SP_ZEylr();
CMainFrame*
pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
// create a new MDI child window
CMDIChildWnd* ch=pFrame->CreateNewChild(
RUNTIME_CLASS(
ch->SetTitle("╟тюЁюЄэшщ ьхЄюф ┼щыхЁр");
}
void CKursApp::OnMetd3()
{
SP_Rung();
CMainFrame*
pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
// create a new MDI child window
CMDIChildWnd* ch=pFrame->CreateNewChild(
RUNTIME_CLASS(
ch->SetTitle("╠хЄюф ╨єэух-╩єЄЄр");
}
void CKursApp::SP_Eylr()
{
double fromx,tox;
double M0,M1,M2;
int
i;
CStepDlg dlg;//(IDD_DIALOG3);
dlg.DoModal();
if (h==0) h = 0.05;
fromx= 0;
tox= 1;
n = (tox-fromx)/h + 1;
m_ay[0]=1;
M0 = f(m_ax[0],m_ay[0]);
M1 = f_x(m_ax[0],m_ay[0]);
M2
= f_y(m_ax[0],m_ay[0]);
for (i=0;i<n;i++) m_ax[i] = fromx + i*h;
for (i=1;i<n;i++){
m_ay[i] = m_ay[i-1]+h*f(m_ax[i-1],m_ay[
M0 = max(M0,f(m_ax[i],m_ay[i]));
M1 = max(M1,f_x(m_ax[i],m_ay[i]));
M2 = max(M2,f_y(m_ax[i],m_ay[i]));
}
err=(M1+M0*M2)/2*h*h;
}
void CKursApp::SP_Rung()
{
double fromx,tox;
double M0,M1,M2;
int i;
double
k0,k1,k2,k3;
CStepDlg dlg;//(IDD_DIALOG3);
dlg.DoModal();
if (h==0) h = 0.05;
fromx= 0;
tox= 1;
n = (tox-fromx)/h + 1;
m_ay[0]=1;
M0 = f(m_ax[0],m_ay[0]);
M1 = f_x(m_ax[0],m_ay[0]);
M2
= f_y(m_ax[0],m_ay[0]);
for (i=0;i<n;i++) m_ax[i] = fromx + i*h;
for (i=1;i<n;i++){
k0=h*f(m_ax[i-1],
k1=h*f(m_ax[i-1]+
k2=h*f(m_ax[i-1]+
k3=h*f(m_ax[i-1]+
m_ay[i] = m_ay[i-1]+(k0+2*k1+2*k2+k3)/6;
M0 = max(M0,f(m_ax[i],m_ay[i]));
M1 = max(M1,f_x(m_ax[i],m_ay[i]));
M2 = max(M2,f_y(m_ax[i],m_ay[i]));
}
err=(M1+M0*M2)/2*h*h*h;
}
void CKursApp::SP_ZEylr()
{
double fromx,tox;
double M0,M1,M2;
int i;
CStepDlg dlg;//(IDD_DIALOG3);
dlg.DoModal();
if (h==0) h = 0.05;
fromx= 0;
tox= 1;
n = (tox-fromx)/h + 1;
m_ay[0]=1;
M0 = f(m_ax[0],m_ay[0]);
M1 = f_x(m_ax[0],m_ay[0]);
M2 = f_y(m_ax[0],m_ay[0]);
for (i=0;i<n;i++) m_ax[i] = fromx + i*h;
for (i=1;i<n;i++){
m_ay[i] = m_ay[i-1]+h*f(m_ax[i-1],fy(m_
M0 = max(M0,f(m_ax[i],m_ay[i]));
M1 = max(M1,f_x(m_ax[i],m_ay[i]));
M2 = max(M2,f_y(m_ax[i],m_ay[i]));
}
err=(M1+M0*M2)/2*h*h;
}
void CKursApp::On32777()
{
CHelp dlg;
dlg.DoModal();
}
Додаток A – Алгоритм
роботи програми
Информация о работе Обчислювальні методи та застосування ЕОМ