Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизУравнение третьей степени. Найти похожие ветки
← →
mashinist (2001-12-16 23:16) [0]Я тут, похоже всех уже задолбал со своей математикой, но все же. У кого-нибудь есть кусок кода для решения уравнения третьей степени вида ax^3 + bx^2 + cx + d = 0, причем a,b,c,d: extended;
Помогите !
← →
Builder (2001-12-17 02:35) [1]А не легче ли чем долбать, сесть и написать самому ?
Берещь любую книжку по численным методам - это есть в первом разделе.
← →
mashinist (2001-12-17 11:58) [2]Не получается.
Уже пробовал.
← →
Romkin (2001-12-17 12:19) [3]http://alglib.chat.ru/equat/index.html#cube
По-моему, исчерпывающе
Но, вообще-то, уравнения выше второй степени обычно решают не по точным формулам, а по алгоритмам нахождения корней полиномов n-й степени
← →
savva (2001-12-17 12:31) [4]вот что предложил редактор блок схем
Procedure CubeEquation(a,b,c:real; var nr:byte; x:array[1..3] of real);
// тока почему то не описаны параметры 8)) сам опишешь
begin
p:=-a*a/3+b;
q:=2*a/3*a/3*a/3-a*b/3+c;
QH:=(p/3)*(p/3)*(p/3)+(q/2)*(q/2);
if QH=0
then
begin
nr:=3;
AH:=abs(q/2);
if AH<>0
then
begin
AH:=sign (q)*exp(ln(AH)/3)
end;
x[1]:=2*AH-a/3;
x[2]:=-AH-a/3;
x[3]:=-AH-a/3
end
else
begin
if QH>0
then
begin
AH:=-q/2+sqrt(QH);
AH:=sign (AH)*exp(ln(abs(AH))/3);
BH:=-q/2-sqrt(QH);
BH:=sign (BH)*exp(ln(abs(BH))/3);
x[1]:=AH+BH-a/3;
if AH=BH
then
begin
nr:=3;
x[2]:=-(AH+BH)/2-a/3;
x[3]:=-(AH+BH)/2-a/3
end
else
begin
nr:=1;
x[2]:=-(AH+BH)/2-a/3;
x[3]:=(AH-BH)/2*sqrt(3)
end;
end
else
begin
nr:=3;
u:=-q/2/sqrt(-p*p*p/27);
u:=arccos(u);
x[1]:=2*sqrt(abs(p/3))*cos(u/3)-a/3;
x[2]:=-2*sqrt(abs(p/3))*cos(u/3+Pi/3)-a/3;
x[3]:=-2*sqrt(abs(p/3))*cos(u/3-Pi/3)-a/3
end;
end;
end;
не знаю, стоит ли доверять...
← →
SergVlad (2001-12-17 13:58) [5]To mashinist
Все еще борешься со своими регуляторами ?
← →
Юрий Зотов (2001-12-17 14:59) [6]> Romkin © (17.12.01 12:19)
Позволю себе поправку - выше третьей, а не второй. Для кубических же уравнений есть точные формулы - например, формула Кардано. Это намного проще, быстрее и точнее.
← →
mashinist (2001-12-17 15:40) [7]Спасибо !!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c