Показать сообщение отдельно
Старый 24.10.2016, 14:50   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Что-то как-то у меня не очень хороший результат получился с Вашей аппроксимацией... Если не наврал, то так:
Название: Ell.jpg
Просмотров: 151

Размер: 19.4 Кб
В области наибольшего расхождения погрешность достигает 8.5%. Многовато.
На всякий случай - вот программа (увы, Паскаль, а не Бэйсик):
Код:
Var
 f:Text;
 i:Byte;
 r:Real;

Const
 a1 = 0.4630151;
 a2 = 0.1077812;
 b1 = 0.2452727;
 b2 = 0.0412496;

Function Ell_Int(ba:real):real;
var
 n,m:real;
begin
 m:=SQRT(1-Sqr(ba));
 n:=1-m;
 Ell_Int:=((1+a1*n+a2*n*n)+(b1*n + b2*n*n)*ln(1/n))*4;
end;

Function Ell_App(ba:real):real;
begin
 Ell_App:=((Pi*2-4)*Exp(1.44*ln(ba))+4);
end;

Begin
 Assign(f,'D:\Ell.dat');
 Rewrite(f);
 for i:=1 to 100 do
  begin
   r:=0.01*i;
   writeln(f,r:4:2,Ell_Int(r):15:5,Ell_App(r):15:5,Abs((Ell_App(r)-Ell_Int(r))/(Ell_App(r)+Ell_Int(r)))*200:15:5);
  end;
 Close(f);
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070