Сделай Сам Свою Работу на 5

Модифицированные функции Бесселя любого порядка.





Если заменить в дифференциальном уравнении Бесселя (1) г на iz, оно примет вид:

Если v не является целым числом, то Jv(iz) и J-v (iz) являются двумя линейно независимыми решениями уравнения (11). Чаще, однако, используются функции

И I-v(z). Их называют модифицированными функциями Бесселя первого рода. Если v — вещественное число и г положительно, эти функции принимают вещественные значения.

Функция

 

также является решением уравнения (11). Ее называют модифицированной функцией Бесселя третьего рода или функцией Бассе.

Очевидно, что

а из (12), (5) и (6) следует, что

а потому

принимает вещественные значения, если v вещественно и z положительно.

 

 

Функции Кельвина.

 

Функции Кельвина ber (х) и bei (х) при вещественных х определяются равенствами

Обобщая это определение на функции Бесселя любого порядка и комплексные значения z, получаем соотношения

 

 

 

Разложение в ряд

Интегральные представления.

 

Описание программы на ЭВМ

 

Программа представляет собой справочник по цилиндрическим функциям. Её основной задачей является отобразить график выбранной функции на экран.



Программа была написана на Borland C++ Builder.

Интерфейс:

Представляет собой окошко в левой стороне которого находятся вкладки с возможностью выбора параметров функций. В правой части окна, при нажатии на клавишу “Построить”, рисуется график выбранной функции. Также в верхней части окошка отображаются уже выбранные графики функций.

Программа включает в себя файлы с последовательностью точек графиков функции, по которой строятся эти графики. В таком файле хранятся шаг (диапазон между точками на оси X), количество точек и координаты по оси Y.

В левом нижнем углу окошка имеется кнопка при нажатии на которую можно увидеть краткую информацию о функциях Бесселя.

 

 

Заключение

В данной семестровой работе были изучены функции Бесселя (уравнение Бесселя и модифицированное уравнение Бесселя). А также написана программа – справочник по построению графиков функций Бесселя.

 



 

Список литературы

1. Ватсон Г., "Теория бесселевых функций" т. 1,2 М., ИЛ, 1949 г.

2. Бейтмен Г., Эрдейи А. "Высшие трансцендентные функции. Функции Бесселя, функции параболического цилиндра, ортогональные многочлены". 1966 г.

3. Абрамовица М., Стиган И. Справочник по специальным функциям 1979 г.

Приложение 1.

Код программы на ЭВМ

 

*** Содержание файла Unit1.cpp ***

 

//---------------------------------------------------------------------------

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Im[0] = Image1;

Im[1] = Image2;

Im[2] = Image3;

Im[3] = Image4;

Im[4] = Image5;

}

//---------------------------------------------------------------------------

 

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int A, B, C, i=0;

A=ComboBox1->ItemIndex;

B=ComboBox2->ItemIndex;

C=ComboBox3->ItemIndex;

switch(A)

{

case 0:

if(B==0)

{

if(C==0)i=0;

else i=1;

}

else

{

if(C==0)i=2;

else i=3;

}

break;

case 1:

if(B==0)

{

if(C==0)i=4;

else i=5;

}

else

{

if(C==0)i=6;

else i=7;

}

break;

case 2:

if(B==0)

{

if(C==0)i=8;

else i=9;

}

else

{

if(C==0)i=10;

else i=11;

}

break;

}

Graphik G(Ui[i]);

G.postroenie(Im[0]);

G4=G3;

G3=G2;

G2=G1;

G1=G;

G4.postroenie(Im[4]);

G3.postroenie(Im[3]);

G2.postroenie(Im[2]);

G1.postroenie(Im[1]);

 

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

ComboBox2->Items->Clear();

switch(ComboBox1->ItemIndex)

{

case 0:

ComboBox2->Items->Add("Первого рода J");

ComboBox2->Items->Add("Второго рода Y");

break;

case 1:

ComboBox2->Items->Add("exp(-x)I");

ComboBox2->Items->Add("exp(x)K");

break;

case 2:

ComboBox2->Items->Add("ber");

ComboBox2->Items->Add("bei");

break;

}

ComboBox2->ItemIndex=0;

}



//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button2Click(TObject *Sender)

{

ShowMessage("Семестровая работа Самородова Евгения\n ПМб-102, 2012г");

}

//---------------------------------------------------------------------------

 

 

*** Содержание файла Unit1.h ***

 

//---------------------------------------------------------------------------

 

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <stdio.h>

#include <math.h>

#include <iostream.h>

//---------------------------------------------------------------------------

 

class TForm1 : public TForm

{

__published: // IDE-managed Components

TImage *Image1;

TImage *Image2;

TImage *Image3;

TImage *Image4;

TComboBox *ComboBox1;

TComboBox *ComboBox2;

TImage *Image5;

TButton *Button1;

TButton *Button2;

TComboBox *ComboBox3;

void __fastcall Button1Click(TObject *Sender);

void __fastcall ComboBox1Change(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);

private: // User declarations

public: // User declarations

TImage * Im[5];

__fastcall TForm1(TComponent* Owner);

};

 

class Graphik

{

private:

float H;

int N;

float * M;

float Max;

float Min;

public:

Graphik(char *str)

{

FILE * F;

F = fopen(str,"r");

if(F!=NULL)

{

fscanf(F,"%f",&H);

fscanf(F,"%d",&N);

M = new float[N];

fscanf(F,"%f",&M[0]);

Max=M[0];

Min=M[0];

int i;

for(i=1;i<N;i++)

{

fscanf(F,"%f",&M[i]);

if(M[i]>Max)Max=M[i];

if(M[i]<Min)Min=M[i];

}

}

else

{

ShowMessage("Отсутствует важный файл для работы программы!");

N=0;H=0;

}

fclose(F);

}

Graphik(Graphik & G)

{

H=G.H;

N=G.N;

Max=G.Max;

Min=G.Min;

M = new float[N];

int i;

for(i=0;i<N;i++)

{

M[i]=G.M[i];

}

}

~Graphik(void)

{

delete[]M;

N=0;H=0;

}

void postroenie(TImage *I)

{

//Прорисовка графика G на I

int X = I->Width;

int Y = I->Height;

char str[10];

float Wg, Hg, E, O, S;

E = 2*X/Y;

I->Canvas->Rectangle(E,E,X-E,Y-E);

Wg=N*H;

Hg=Max-Min;

if(Max>=0)

{

if(Min>=0)O=Hg;

else O=Max;

}

else O=0;

float Ky = ((float)Y-2*E)/Hg, Kx = ((float)X-2*E-15)/Wg;

I->Canvas->MoveTo(E+15,O*Ky);

I->Canvas->LineTo(X-E,O*Ky);

I->Canvas->MoveTo(E+15,E);

I->Canvas->LineTo(E+15,Y-E);

I->Canvas->Font->Height=15;

I->Canvas->TextOutA(E+5,O*Ky-10,"0");

sprintf(str,"%.2f",Max);

I->Canvas->TextOutA(E+5,E+5,str);

sprintf(str,"%.2f",Min);

I->Canvas->TextOutA(E+5,Y-E-20,str);

sprintf(str,"%.2f",N*H);

I->Canvas->TextOutA((int)(E+(float)N*H*Kx-20),O*Ky-10,str);

int i=0;

I->Canvas->MoveTo((int)E+15,(int)((O-M[0])*Ky+E));

do{

i++;

I->Canvas->LineTo((int)(E+15+(float)i*H*Kx),(int)((O-M[i])*Ky+E));

}while(i<N-1);

}

};

 

char Ui[12][10] = {"imJ0.txt","imJ1.txt","imY0.txt",

"imY1.txt","imI0.txt","imI1.txt","imK0.txt",

"ber0.txt","ber1.txt","bei0.txt","bei1.txt"};

 

Graphik G1("000.txt"),G2("000.txt"),G3("000.txt"),G4("000.txt");

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.