67456

Модифицированная функция Бесселя нулевого индекса

Лекция

Информатика, кибернетика и программирование

При решении сложных задач программирования эти задачи разбиваются на более простые подзадачи. Каждая из подзадач, в свою очередь, может быть разбита на еще более простые подзадачи, и т.д. Если задача в ходе такого последовательного разбиения свелась...

Русский

2014-09-10

172 KB

0 чел.

Лекция 4

 – одна из функций Бесселя. Точнее, это т.н. модифицированная функция Бесселя нулевого индекса.

,

,

,   ,

.

Условия прекращения цикла суммирования:   и  


S0 = 0

A0 = 1

S1 = S0 + A1

A1 = A0*B1

B1 = (x/2)2/12

S2 = S1 + A2

A2 = A1*B2

B2 = (x/2)2/22

. . .

. . .

. . .

Si = Si-1 + Ai

Ai = Ai-1* Bi

Bi = (x/2)2/i2


Текст программы на языке  
Free Pascal,  TP7:

program BesselI0 ;

var

   x,y: Double;

function BesselI0(x, eps : Double): Double;

var

   I, N: integer;

   T, A, B, R, x2: Double;

begin

 x2 := sqr(x/2) ;

 A := x2 ;

 N := 0 ;

 B := x2 / (N + 2) / (N + 2) ;

 

 repeat

   inc(N);

   A := A * B ;

   B := x2 / (N + 2 ) / (N + 2) ;

   R := A / (1 - B) ;

 until ( B < 1) and ( R < eps ) ;

 T := 1;

 for I := N downto 1 do

   T := 1 + x2 / I / I * T ;

 BesselI0 := T ;

end ;


begin

 x := 3 ;

 y := BesselI0(x, 1e-20) ;

 writeln(y) ;

 readln ;

end.

begin

writeln(‘Введите x’) ;  readln(x) ;

writeln(‘Введите eps’) ;  readln(eps) ;

 if  (eps <= 0) or (eps >= 1)  then  exit ;

   

   writeln(‘f=’, BesselI(x, Eps));

   readln;

end.


Оконное приложение в среде
Lazarus:


Текст кода в среде
Lazarus:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

 { TForm1 }

 TForm1 = class(TForm)

   Button1: TButton;

   Edit1: TEdit; Edit2: TEdit; Edit3: TEdit;

   Label1: TLabel; Label2: TLabel; Label3: TLabel;

   procedure Button1Click(Sender: TObject);

 private

   { private declarations }

 public

   { public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

function BesselI0(x, eps : Double): Double;

var

 . . .

begin

 . . .

end;

procedure TForm1.Button1Click(Sender: TObject);

var

 x, y, eps: double;

begin

 x := StrToFloat(Edit1.Text);

 eps := StrToFloat(Edit2.Text);

 y := BesselI0(x, eps);

 Edit3.Text := FloatToStr(y);

end;

end.

Оконное приложение в среде Visual C++, фрагмент кода:

double BesselI0(double x, double eps)

{

 int i, N;

 double T, A, B, R, x2;

 x2 = (x / 2.0)*(x / 2.0) ;

 A = x2 ;

 N = 0 ;

 B = x2 / ((double)N + 2.0) / ((double)N + 2.0) ;

 

 do

 {

   N++;

   A *= B ;

   B = x2 / ((double)N + 2.0) / ((double)N + 2.0) ;

   R = A / (1 - B) ;

 }

//  while (!( B < 1 &&  R < eps )) ;

 while (B >= 1 || R >= eps);

 T = 1.0;

 for (i = N; i >= 1; i--)

   T = 1.0 + x2 / ((double)i * (double)i) * T;

 return T;

}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{

 double x;

 x = System::Convert::ToDouble(textBox1->Text);

 double eps;

 eps = System::Convert::ToDouble(textBox2->Text);

 double y;

 y = BesselI0Aux(x, eps);

 textBox3->Text=System::Convert::ToString(y);

}


Рекурсия

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

Если задача сводится к себе, и еще раз к себе, и так далее, то количество обращений к себе должно быть конечным.

Каждое очередное сведение задачи к себе должно приближать задачу к тривиальному случаю. В тривиальном случае задача решается по алгоритму, который более не сводит задачу к себе.

Рекурсия используется во множестве стандартных алгоритмов. Далее, в курсе лекций, тема «Рекурсивные алгоритмы» будет возобновляться многократно.


Пример.
  

Применяя сведение задачи к себе  n  раз, можно «дойти» до тривиального случая – до значения  0!, а оно равно 1.

Пример 2.   

Применение такого сведения задачи к себе приводит к «зацикливанию».


Числа Фибоначчи  выражаются «сами через себя» при , но выражаются явно (дают тривиальный случай) при  и :

,  ,  ,  .

,   – Golden Ratio.

Сумма убывающей геометрической прогрессии

, ,

есть функциональный (а именно, степенной, по степеням переменной ) ряд с коэффициентами 1, 1, … .


Полиномы Фибоначчи  являются коэффициентами разложения в степенной ряд функции

,     .

Полиномы Фибоначчи  выражаются «сами через себя» при , но выражаются явно (дают тривиальный случай) при  и :

,    ,    

Связь с числами Фибоначчи:  


Пример
 рекурсивной функции

function  Fib(n: integer; x: double): double;

begin

if  n < 1 then  

Fib := 0

else

if  n = 1 then  

Fib := 1

else

if  n = 2 then  

Fib := x

else

Fib := x*Fib(n-1, x) + Fib(n-2, x);

end;

Пример рекурсивной процедуры.  Ханойские башни.

var

 n: integer;

procedure HanoiTowers(n, x, y, z: integer);

begin

 if n = 1 then

    writeln(x,'->', y)

 else

 begin

     HanoiTowers(n-1, x, z, y);

     writeln(x,’–>’, y);

     HanoiTowers(n-1, z, y, x);

 end;

end;

begin

 readln(n);

 HanoiTowers(n,1,2,3);

end.


Тип «Перечисляемый»

<Перечисляемый тип> : : = 

(<Список имён значений>)

Первому из элементов <Списка имён значений> придаётся внутренний (недоступный пользователю) номер 0, второму – номер 1, и т.д.


Переменные типа «Перечисляемый»

Примеры

var

 v1: (LeftDyrecton, RightDyrecton, BackDyrecton);

type

MyType2=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

MyType4=(MyTrue, MyFalse);

var

MyVar2: MyType2;

MyVar3: boolean;

MyVar4: MyType4;

begin

for  MyVar2 :=Monday  to  Friday  do  writeln(MyVar2);    // Ошибка

for  MyVar4 :=MyFalse to  MyTrue  do  writeln(MyVar4);  // Ошибка

for MyVar3 := False to True do writeln(MyVar3);            // Выход:  False  True

end.

Замечание.  boolean ≠ (False, True). Вообще говоря.

Замечание.  Тип «Перечисляемый – порядковый тип.


 

А также другие работы, которые могут Вас заинтересовать

34005. Понятие человека 38 KB
  Изучая поведение разных животных и человека К. Практически все инстинкты у социализированного человека поставлены под контроль общества и моральнопсихологических механизмов саморегуляции. при помощи которой сдерживаются агрессивные импульсы умиротворяется и облагораживается эмоциональноволевая сфера человека.
34006. Основные антропологические парадигмы 31.5 KB
  Проблема человека одна из центральных тем философии. В разных философских традициях и школах по разному трактуется феномен человека. Христианская антропология зиждется на ряде основополагающих постулатов: а человек есть триединство духовного душевного и телесного;б человек есть образ и подобие Божие;в онтологическая ущербность человека наступившая после грехопадения прародителей человечества Адама и Евы;г онтологический грех человека искупается жертвенной смертью Иисуса Христа каждый имеющий в своем сердце веру в Спасителя...
34007. Человек как духовное существо. Проблема смысла жизни, смерти и бессмертия 24 KB
  И эта неудовлетворенность содержит в себе причины творческой деятельности Поэтому призвание задача каждого человека всесторонне развивать все свои способности и по мере возможностей вносить свой личный вклад в историю в прогресс общества его культуры. Смысл жизни общва и челтва в целом. Буддизм: чел живет для того чтобы прервать цепь перерождений и никогда больше не возрождаться. Христво восхождением чел к богу.
34008. Этология Конрада Лоренца 34.5 KB
  Изучая поведение разных животных и человека К.Зонди 18931986 швейцарский ученый развивая и продолжая традиции психоанализа наряду с индивидуальным и коллективным бессознательным выделил понятие родового бессознательного это влияние наследственности и рода предков на судьбу человека. Навязанная судьба которая складывается: а под влиянием генетической наследственности; б под действием генотрофизма развития психики человека под влиянием того или иного предка или родственника от которых может зависеть выбор профессии хобби...
34009. Религия как социокультурный феномен. Понятие Бога в философии и религии 40.5 KB
  Понятие Бога в философии и религии. Философия религии важный раздел философского знания поскольку религия составляет системообразующий элемент различных культур цивилизаций и обществ. Философию религии нельзя также отождествлять с религиозной философией. Философия религии это прежде всего рефлексия над религией как сложным социокультурным феноменом определение ее знания в жизни человека и общества.
34010. Предмет и задачи этики. Основные этические системы 44 KB
  Вся совокупность проблем в той или иной мере посвященных изучению этих вопросов была представлена особой философской теорией получившей название философия морали нравственности или этика. Термин этика происходит от древнегреческого слова ethos этос подразумевавший пространство совместного проживания людей или животных дом звериное логово птичье гнездо и т. Поэтому термин этика также введенный в употребление Аристотелем изначально приобрел двоякую направленность: 1 обозначение совокупности добродетелей правил и норм...
34011. Основные этические системы 46.5 KB
  Остановимся на нескольких наиболее значительных и как нам представляется не утративших свое значение и по настоящее время именно в силу своей вневременной универсальной значимости для нравственного сознания человека: гедонизме стоицизме этике долга и этике любви. Именно такая постановка личности по Эпикуру порождает три степени свободы каждая из которых есть в сущности ничто иное как освобождение человека от тяжелых экзистенциальных переживаний сопровождающих его на протяжении всей жизни: от страха перед Богами от страха перед...
34012. Искусство как социокультурное явление.Эстетические основания и закономерности развития ис 45.5 KB
  Искусство это одна из форм культуры и сфера художественного творчества. философия исследует искусство в общем плане и в контексте жизни человека и общества. Искусство отражает и изображает жизнь в художественных образах которые позволяют человеку непосредственно в чувственном виде переживать то что в них заключил художник.
34013. Философское понимание культуры. Культура и цивилизация 26 KB
  Культура и цивилизация. Культура все созданное человеком; совокупность созданных и создаваемых человеком ценностей; качественная характеристика уровня развития ова. Там где есть человек его деятсть отношения между людьми там имеется и культура. Культура: материальная и духовная не противопоставлять.