2015-11-03 7 views
0

Есть ли способ избежать комплексных чисел вПоиск самых больших корней полинома в R

polyroot {base}?

Файл справки гласит: «... polyroot возвращает комплексные нули n-1», но мне просто нужен самый большой корень квадратного уравнения, и комплексные числа здесь слишком хороши. Помощь очень ценится!

ответ

0

При использовании этого вы установите возвращение против объекта, скажем

roots=polyroot(coefs) 

, а затем вы можете вернуть настоящие путем исключения мнимые через complex::Im()

which(Im(roots)==0) 
+0

Вы не должны использовать точные сравнения чисел с плавающей запятой. 'abs (Im (корни)) <1e-12)' должно быть более точным в большинстве случаев, так как 'x^2-2 * x + 1 + 1e-20 = 0' невозможно представить в' double' плавающая точка. – LutzL

0

Если вы получаете комплекс решений для квадратичного уравнения, то нет реальных корней.

Самый большой корень уравнения x²+px+q является

(-p+sqrt(p*p-4*q))/2 

если срок внутри квадратного корня не является отрицательным.

Или вы имели в виду корень наибольшей величины?

Смежные вопросы