c语言用特定方法解一元2次方程,求救!!!

用newton-Raphson法解一元二次方程3x^2 + 6x = 0.因为不能用求根的方法,也就是不能写成x1= , x2= ,的形式,所以用newton-Raphson法来求解.用newton-Raphson法的时候,x[n+1]=x[n]-f/f'.通过循环n次得到正确的根。问题是3x^2 + 6x = 0有两个根,用这个方法循环了n次以后,应该有两个x符合条件。假设我们不知道根的个数,在输出的时候,我们经常写成
pringtf("x = %f", x);
但是,因为这个方程有两个解,这个时候却只输出一个根,而且输出的这个根是错误的。
问题简单地说就是,当我们不知道输出结果的个数的时候,当我们希望处理的结果有多少个根就正确输出多少个根的时候,我们该怎么用printf()或者其他函数?
敬请高手指点!!!
有个回答说要我估计根的范围,
一定要估计根的范围吗?我这里只不过举例而已,说是一元二次方程。要是1元5次方程呢?这个时候估计根的范围可不简单。
最新回答
暖风吹

2024-10-14 03:48:59

可以根据一元二次方程估计根的范围,用Newton切线法通过编程求近似根时。一般取x0=0。如果两个根分布在0两端,可以分别向前向后求出两个根;如果两个都是正根,可取x0=0向前切求得小根,另外还要选取另一点x0'(大于其中的一根,小于另一根,向后求出大根;或比两个根都大,向后求大根);两个跟都是负根类似。