Показать сообщение отдельно
Старый 19.05.2014, 19:50   #17 (permalink)
Cbvrf86
Member
 
Регистрация: 14.05.2014
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Function EQRoot:real;
var
a,b,c,d:real;
begin
d:=0.1;
repeat
b:=d;
a:=-b;
if G(a)*G(b)>=0
then writeln('[',a:1:1,';',b:1:1,'] f(a)*f(b)>0')
Else writeln('[',a:1:1,';',b:1:1,'] f(a)*f(b)<0');
if G(a)*G(b)>=0
then writeln(txt,'[',a:1:1,';',b:1:1,'] f(a)*f(b)>0')
Else writeln(txt,'[',a:1:1,';',b:1:1,'] f(a)*f(b)<0');
d:=d+h
until G(a)*G(b)<=0;
writeln('mojno primenit metod polovinnogo deleniya');
writeln(txt,'mojno primenit metod polovinnogo deleniya');
Writeln('tochnost rascheta e=0.0001');
Writeln(txt,'tochnost rascheta e=0.0001');

Repeat
writeln('[',a:1:5,';',b:1:5,']');
writeln(txt,'[',a:1:5,';',b:1:5,']');
c:=(a+b)/2;
if G(a)*G(c)<0 then b:=c else a:=c;
Until b-a<Eps;
EQRoot:=c;
end;

ну вот как то так. Хотя после ваших слов действительно подумал, а на кой мне в отрицательную область лезть, а:=0 а b уже изменять с определенным шагом пока не получу нужный интервал.
Cbvrf86 вне форума   Ответить с цитированием
Ads

Яндекс

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