Форум: "Прочее";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];
Внизпожалуйста, нужнпа небольшая помощь в решении нельнейных уравнени Найти похожие ветки
← →
mathematicsfss (2009-06-09 19:51) [0]Здравствуйте.
Пожалуйста, не нудно меня ругать ) не знаю я.
\Появился такой вопрос, допустим мы решаем нелинейное уравнений cos(x)*sin(x)=y
на интервале [a;b], с погрешностью e
Решая его методом половинного деления получается один ответ, решая его методом простых итераций - опять таки другой :(
Метод пполовинного деления:
function FF(X : real):real;
begin
FF:=cos(x)*sin(x);
end;
...
found:=false;
a:=strtofloat(edA.text);
b:=strtofloat(edB.text);
e:=strtofloat(edE.text);
while not found do
begin
if abs(a-b)<=e then found:=true;
t:=(a+b)/2;
fsScript1.parent:=fsGlobalUnit;
ft:=ff(t);
fa:=ff(a);
if (fa*ft<0) then
begin
b:=t;
end
else
begin
a:=t;
end;
end;
label7.Caption:="Корень уравнения: "+floattostr(t);
Допустим, пробуя решить данное уравнение, на интервале от 1 до 5, получаем ответ 3.
Решая методом хорд, получаю совершенно другой ответ (
Метод хорд:
a:=strtofloat(edA.text);
b:=strtofloat(edB.text);
eps:=strtofloat(edE.text);
while ((abs(a-b)>eps)and(ff(c)<>0)) do
begin
c:=a+abs(ff(a)/(ff(a)-ff(b)))*(b-a);
if (ff(c)*ff(a)<0) then
b:=c
else
a:=c;
end;
x:=c; {получили ответ}
label7.Caption:=floattostr(x);
Пожалуйста, покажите где я допускаю ошибку, вроде бы решение правильное, но может ли быть ответ разным, взависимости от метода решения?
Спаяибо
← →
palva © (2009-06-09 20:16) [1]А y чему равно, нулю что ли?
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.016 c