Смекни!
smekni.com

Метод Галеркіна пошуку розв язку лінійної крайової задачі (стр. 2 из 2)

4. Використовуючи позначення

EMBEDEquation,

обраховуємокоефіцієнтисистеми:

EMBEDEquation QUOTE = 1, 2, . . . , n).

ВиконуючинеобхідніскороченняприходимодосистемизякоївизначаємоEMBED Equation.3 ( QUOTE = 1, 2, . . . , nіотримуєморозв’язок вигляді:


2.2. БЛОК-СХЕМА АЛГОРИТМУ

МетодГалеркіна



Ні


Так


Ні


Так




3. Тестовий приклад

Методом Галеркіна знайти наближений розв’язок рівняння,

EMBED Equation.3 (11)

щозадовольняєкрайовимумовам

EMBEDEquation (12)

Розв’язання:

Оберемо в якості системи базисних функцій EMBEDEquation, EMBED Equation.3, EMBEDEquation, EMBED Equation.3,

ЦіфункціїлінійнонезалежнінавідрізкуEMBED Equation.3, причому функція EMBED Equation.3 задовольняє крайовій умові (12аіншіфункції–нульовимкрайовимумовам. Будемо шукати розв’язок у вигляді

EMBED Equation.3

Знаходимо EMBED Equation.3 QUOTE

EMBED Equation.3,

EMBED Equation.3

,

, EMBED Equation.3,

і враховуючи при цьому ортогональність системи тригонометричних функцій

(1, , . . .)

EMBEDEquation,

Результати отриманізадопомогою створеної програми


ВИСНОВОК

Математичне моделювання процесів і явищ в різних галузях науки і техніки є одним з головних способів отримання нових знань і технологічних рішень. В наш час коли життя людини вже майже неможливе без електронно-обчислювальної техніки, всі процеси автоматизуються, а задачі, які потребували деякого часу і зусиль тепер виконуються за лічені хвилини.

Чисельні методи один із напрямів розробки пошуку оптимальних розв’язків математичних задач та пошуку саме того методу, який би давав найбільш точний результат. Моя робота присвячена одному з методів пошуку розв’язку лінійної крайової задачі – методу Галеркіна. Даний метод досить зручний для пошуку розв’язку у вигляді аналітичного виразу.

В першій частині курсового проекту розглянута постановка задачі, в якій наведено опис методу. В математичній моделі описано безпосередньо сам метод Галеркіна та його основні принципи.

Друга частина мого курсового проекту починається з опису алгоритму методу Галеркіна для пошуку розв’язку лінійної крайової задачі. В алгоритмі містяться головні кроки пошуку розв’язку лінійної крайової задачі за даним мені методом. За цим алгоритмом наведений тестовий приклад, а також написана програма в середовищі Microsoft Visual C++, текст якої знаходиться в додатку А. До даного методу складена блок-схема алгоритму.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Капченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. – М: Наука, 1972. – 369 С.

2.Демидович Б.П., Марон И.А. Основы вычислительной математики. - М.: Физматгиз, 1960. - 659с.

3.Калиткин Н.Н. Численные методы. - М.: Наука, 1978. - 512с.

4БахвановНСЖидковНПКобельковГМЧисельныеметодыелектронныйвариантучебника

5БелашовВЮ., Чернова Н. М. Эффективные алгоритмы и программы вычислительной математики. Магадан: СВКНИИДВОРАН, 1997. 160 с.

. Культін Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. – СПб: BHV-Санкт-Петербург, 1999. – 234с.


ДОДАТОК А

ТЕКСТ ПРОГРАМИ МОВОЮ Microsoft Visual C++

MainFrm.cpp

#include "StdAfx.h"

#include "example.h"

#include"MainFrmh"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]__FILE__

#endif

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

END_MESSAGE_MAP

static UINT indicators[] =

{

ID_SEPARATOR,

ID_INDICATOR_CAPS,

ID_INDICATOR_NUM,

ID_INDICATOR_SCRL,

};

CMainFrame::CMainFrame()

{

}

CMainFrame~CMainFrame

{

}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CFrameWnd::OnCreate(lpCreateStruct) == -1)

return -1;

if (!m_wndToolBar.Create(this) ||

!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

{

TRACE0("Failed to create toolbar\n");

return -1;

}

if (!m_wndStatusBar.Create(this) ||

!m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

{

TRACE0("Failed to create status bar\n");

return -1;

}

m_wndToolBarSetBarStyle(m_wndToolBarGetBarStyle() |

CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC

m_wndToolBarEnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);

return 0;

}

BOOLCMainFramePreCreateWindowCREATESTRUCTcs

{

returnCFrameWndPreCreateWindowcs

}

#ifdef_DEBUG

voidCMainFrame::AssertValid() const

{

CFrameWnd::AssertValid();

}

void CMainFrameDumpCDumpContextdcconst

{

CFrameWnd::Dump(dc);

}

#endif

MainFrm.h

#if!definedAFX_MAINFRM_H__ACFA__D_AF_FDFFED__INCLUDED_

#defineAFX_MAINFRM_H__ACFA__D_AF_FDFFED__INCLUDED_

#if_MSC_VER

#pragmaonce

#endif

classCMainFramepublicCFrameWnd

{

protected

CMainFrame

DECLARE_DYNCREATECMainFrame

public

// Operations

public:

// Overrides

// ClassWizard generated virtual function overrides

{{AFX_VIRTUALCMainFrame

virtualBOOLPreCreateWindowCREATESTRUCTcs

}}AFX_VIRTUAL

Implementation

public

virtual~CMainFrame

#ifdef_DEBUG

virtualvoidAssertValidconst

virtualvoidDumpCDumpContextdcconst

#endif

protectedcontrolbarembedded members

CStatusBar m_wndStatusBar;

CToolBar m_wndToolBar;

// Generated message map functions

protected:

//{{AFX_MSG(CMainFrame)

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

// afx_msg void OnDemoAnalit();

//}}AFX_MSG

DECLARE_MESSAGE_MAP

}

{{AFX_INSERT_LOCATION}}

MicrosoftDeveloperStudiowillinsertadditionaldeclarationsimmediatelybefore the previous line.

#endif //!defined(AFX_MAINFRM_H__9A49CF0A_0006_11D3_A7F6_F5D97F5F2E6D__INCLUDED_)

StdAfx.h

stdafxhincludefileforstandardsystemincludefiles

orprojectspecificincludefilesthatareusedfrequentlybut

arechangedinfrequently

#if!definedAFX_STDAFX_H__ACF__D_AF_FDFFED__INCLUDED_

#defineAFX_STDAFX_H__ACF__D_AF_FDFFED__INCLUDED_

#if _MSC_VER >= 1000

#pragma once

#endif // _MSC_VER >= 1000

#define VC_EXTRALEAN // Exclude rarely-used stuff from Windowsheaders

#includeafxwinhMFCcoreandstandardcomponents

#include <afxext.h> // MFC extensions

#include <afxdisp.h> // MFC OLE automation classes

#ifndef _AFX_NO_AFXCMN_SUPPORT

#include <afxcmn.h> // MFC support for Windows Common Controls

#endif // _AFX_NO_AFXCMN_SUPPORT

//{{AFX_INSERT_LOCATION}}

// Microsoft Developer Studio will insert additional declarations immediatelybeforethepreviousline

#endif!definedAFX_STDAFX_H__ACF__D_AF_FDFFED__INCLUDED_