Algorithm 简单代数问题,程序I';我在写

Algorithm 简单代数问题,程序I';我在写,algorithm,math,Algorithm,Math,我将如何解决: -x^3-x-4=0 不能用二次方,因为它是三次方,对吗 我知道它应该是~1.3788,但我不确定如何推导出它 我从以下几点开始: f(x)=x+(4/(x^2+1)) 求解0,将x移到另一侧,在两侧乘以(x^2+1),我得到: -x(x^2+1)=4 或 -x^3-x-4=0。这是一个函数。你是对的,二次公式不适用 你给出了一个根,但通常有三个 你是如何得出这个单一值的?试错?这是合法的。你不需要“派生”任何东西 x^3+a2*x^2+a1*x+a0=0可以写成(x-x1)*(

我将如何解决:

-x^3-x-4=0

不能用二次方,因为它是三次方,对吗

我知道它应该是~1.3788,但我不确定如何推导出它

我从以下几点开始:

f(x)=x+(4/(x^2+1))

求解0,将x移到另一侧,在两侧乘以(x^2+1),我得到:

-x(x^2+1)=4

-x^3-x-4=0。

这是一个函数。你是对的,二次公式不适用

你给出了一个根,但通常有三个

你是如何得出这个单一值的?试错?这是合法的。你不需要“派生”任何东西


x^3+a2*x^2+a1*x+a0=0可以写成(x-x1)*(x-x2)*(x-x3)=0,其中x1、x2和x3是三个根。如果你知道你引用的根是正确的,你可以把它除掉并留下(x-x2)*(x-x3)=0,这是一个二次型,你可以应用通常的技术来计算。

通过使用或

代数方法来寻找方程的根,你想使用Cardano的方法:

使用这种方法,它和二次方程一样容易求解

事实上,这可能更清楚:


使用牛顿迭代法找到一个根(参见下面的链接)。然后将多项式除以(x-TheRootYouFound)。结果将是一个二次公式,您可以插入您选择的二次根查找器

关于牛顿迭代:

关于多项式除法

这篇文章对你来说可能也很有趣。它涵盖了以牺牲一些额外复杂性为代价来解决问题的更稳健的方法


从编程的角度来看,这可能没有帮助,但从数学的角度来看

注意,在这个特殊的三次函数中,你需要考虑虚数,因为当x= i时,你有一个分母为零(在原来的方程式中)。另外,一般来说,当你把变量移到方程的另一边时,你不应该乘或除变量(尽管加和减都很好),因为你通常会忘记你乘或除的项为零的条件。这些答案需要从解决方案集中排除


x=i是上述立方中排除的解决方案的一个示例。在你操作这个方程之前,你需要评估你排除的解。

你在寻找一个三次函数的根:@Zach:+1,除非你做了评论而不是回答。我从f(x)=x+(4/(x^2+1))开始。求0,把x移到另一边,两边乘以(x^2+1),我得到-x(x^2+1)=4,或者-x^3-x-4=0。对,如果你把x^3+x+4=0除以(x+1.3788),剩下的是x^2-1.3788*x+2.90109=0,这是一个二次型,可以使用你已经知道的常用技术。当我这样做的时候,我得到了以下复共轭根:x2=0.68940-I(3.11501)和x3=0.68940+I(3.11501)。不完全正确-大多数立方体都有一个封闭形式的解。哎呀-对不起,打扰你了,@ZachYes,我应该指出我上面提到的Cardano方法对复根不起作用。但我不确定特定的方程是否有。是的,这个特定的方程只有一个实根,没有复杂的根,但在处理立方体时,包含复杂的排除项仍然很重要。这些方法是通用的,可以很好地在数值上找到解,但它们有时不能收敛,有些根可能比其他根更难找到。如果您想要所有根的“精确”表达式(根据根等),则需要使用Cardano的方法(或类似方法)。