盛金公式入門

2022-05-20 16:46:04 字數 1647 閱讀 8988

昨天做一道二分的題目,就是一元三次方程求三個根,然後從小到大輸出。

我發現好多大佬都是用的盛金公式或者牛頓迭代(聽說比二分快)。

所以我打算簡單的介紹一下盛金公式。

假設一元三次方程:ax3+bx2+cx+d=0

首先和一元二次方程類似,他也有重根判別式:

a=b*b-3*a*c;

b=b*c-9*a*d;

c=c*c-3*b*d;

derta=b2-4*a*c;//總判別式

盛金公式1:x1=x2=x3=-b/(3*a)=-c/b=-3d/c

盛金公式2:y1,2=a*b+3*a*(-b±sqrt(b2-4*ac))/2;   i2=1

盛金公式3:

盛金公式4:t=(2*a*b-3*a*b)/(2*sqrt(a*a*a))  θ=arccos(t)//c語言中為acos(t)  (a>0&&-1

然後我們就能根據不同的要求求出一元三次的三個解。

是不是覺得盛金公式法有點像一元二次方程的萬能公式法。

具體的練習:    //就是一道經典的盛金公式求解題目(但是好像暴力能過,因為精度很小)

題解:

但是盛金公式求解有個問題(在計算機上),因為盛金公式可能會用到sin,cos等三角函式,就會很容易造成精度不足,所以請謹慎使用

能二分盡量二分(畢竟精度能自己控制=_=)。

一元三次方程 盛金公式求解

先說一下中間出現的問題,開三次方的時候不能直接pow x,1.0 3.0 要分x大於零小於零,pow只接受大於零的引數。另外,由於工程中只考慮實數,這裡複數沒有實現。pragma once class cubicsolute void judge double getx1 double getx2 ...

有缺陷的一元三次方程求解設計(盛金公式)

先放 include include cube sqrt.h double abs double x double cube sqrt double x return middle include include include cube sqrt.h using namespace std equ...

markdwon編輯公式入門

上標與下標 上標和下標分別使用 與 例如 x i 2 表示的是 預設情況下,上 下標符號僅僅對下乙個組起作用。乙個組即單個字元或者使用 包裹起來的內容。如果使用 10 10 表示的是,而 10 才是。同時,大括號還能消除二義性,如x56 將得到乙個錯誤,必須使用大括號來界定 的結合性,如 6 或者 ...