вот небольшой контекст к программе:
type TFunc=function(x:real):real;
................
{процедура root}
................
Root(f1,f2,f1p,f2p,3.500,4.000,eps1,x1);
{f1,f2 - функции введенные в отдельной поцедуре вручную; f1p,f2p - первые производные, тоже в отдельной
процедуре вручную;a и b подбираются под примерное пересечение, eps1=0.0001, x - искомый корень}
а вот и процедура нахождение корня:
procedure Root(f,g,f1,g1:TFunc;a,b,eps:real;var x:real);
{ funkciya IsT1 vozvrashaet TRUE, esli f'(x) i f''(x) odinakovogo znaka i FALSE v obratnom slu4ae}
function IsT1:boolean;
var x:real;
begin
x:=(a+b)/2;
IsT1:=(f1(x)-g1(x)>0) = (f((a+b)/2)-g((a+b)/2)<(f(a)-g(a)+f(b)-g(b))/2)
end;
var c:real;
Type1:boolean;
i:integer;
begin
Type1:=IsT1;
if (f(a)-g(a))*(f(b)-g(b))>0 then writeln('Neverno zadany a,b') else
begin
i:=0;
while (b-a)>eps do begin
c:=(a*(f(b)-g(b)) - b*(f(a)-g(a)))/(f(b)-g(b)-f(a)+g(a));
if Type1 then begin a:=c; c:=b end else begin b:=c;c:=a end;
c:=c-(f(С)-g(С))/(f1(С)-g1(С));
if Type1 then b:=c else a:=c;
i:=i+1;
end;
end;
x:=(a+b)/2;
end;
P.S. заранее спасибо кто ответит и попытается помочь. мне 11.01.07 к вечеру нужна готовая.. а я уже не знаю что делать.. остался последний шанс - ваша помощь
Сообщение отредактировано: Sundery -