Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.22;
Скачать: CL | DM;

Вниз

Помогите с оптимизацией   Найти похожие ветки 

 
Dragon-zla ©   (2009-10-06 22:36) [0]

Здравствуйте, помогите пожалуйста с оптимизацией кода
Задача состоит в решении уравнения F(x)=0 на отрезке [a,b] с заданной точностью e методом деления отрезка пополам и выводом найденного решения на экран.
Точность = 1e-0,5 (0.00001)
Отрезок [-0.5;3]
Уравнение (1/(sqrt(5)+sin(0.1*x)+ln(1+x))-x)
Код я написал, он компилируется, запрашивает исходные данные, начинает выполнять код, а вот потом ОЧЕНЬ медленно приближается к заданной точности. Подскажите пожалуйста можно оптимизировать его, для ускорения вычисления или это мне с примером "повезло"?
P.S. пробовал изменить точность до 0.1 - бессмысленно
Собственно сам код:
program ecsAdd1_4;

{$APPTYPE CONSOLE}

uses
 SysUtils,crt32,Math;
const
 epsil = 0.00001;
var
 a,b,c,Fa,Fb,Fc : real;
begin
writeln(oem("Введите начальное значение отрезка"));
readln(a);
writeln(oem("Введите конечное значение отрезка"));
readln(b);
while abs(b-a)>epsil do
 begin
 if a*b<0 then
   c := (a+b)/2
 else
   c := (a-b)/2;
 Fa := (1/(sqrt(5)+sin(0.1*a)+ln(1+a))-a);
 Fb := (1/(sqrt(5)+sin(0.1*b)+ln(1+b))-b);
 Fc := (1/(sqrt(5)+sin(0.1*c)+ln(1+c))-c);
 if Fa*Fc<0 then
 b := c
 else
 a := c;
 end;
Fa := (1/(sqrt(5)+sin(0.1*a)+ln(1+a))-a);
Fb := (1/(sqrt(5)+sin(0.1*b)+ln(1+b))-b);
if Fa*Fb<0 then begin
   if a*b<0 then
     c := (a+b)/2
   else
     c := (a-b)/2;
Fc := (1/(sqrt(5)+sin(0.1*c)+ln(1+c))-c);
writeln(oem("Приблизительный корень уравнения = ") ,c);
writeln(oem("Значение функции в этой точке = ") ,Fc);
readkey;
end
else
writeln(oem("Корень не найден"));
readkey;
end.


 
palva ©   (2009-10-06 23:52) [1]

if a*b<0 then
  c := (a+b)/2
else
  c := (a-b)/2;


Можете объяснить на словах, что это такое?


 
Омлет   (2009-10-07 00:11) [2]

У тебя неправильная реализация.
Первая ссылка в яндексе (даже с кодом): http://eco.sutd.ru/Study/Informat/mpd.html



Страницы: 1 вся ветка

Текущий архив: 2009.11.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
15-1253632350
Дмитрий Белькевич
2009-09-22 19:12
2009.11.22
Компонент, выглядящий как создать таблицу в office 2007


8-1200823353
Zy()ma
2008-01-20 13:02
2009.11.22
Как воспроизвести звук


3-1229512363
Оптимайзер
2008-12-17 14:12
2009.11.22
Оптимизация запроса к DB2


11-1183648227
ElectriC
2007-07-05 19:10
2009.11.22
Что скажете...


10-1161064386
-=Germe$=-
2006-10-17 09:53
2009.11.22
Импорт адресной книги