當前位置:首頁 » 操作系統 » 求根演算法

求根演算法

發布時間: 2022-08-06 13:06:38

Ⅰ 三次方程求根公式

具體演算法如下:

1、ax^3+bx^2+cx+d的標准型。

2、化成x^3+(b/a)x^2+(c/a)x+(d/a)=0。

3、可以寫成x^3+a1*x^2+a2*x+a3=0。

4、其中a1=b/a,a2=c/a,a3=d/a。

5、令y=x-a1/3。

6、則y^3+px+q=0。

7、其中p=-(a1^2/3)+a2,q=(2a1^3/27)-(a1*a2)/3+a3。

(1)求根演算法擴展閱讀:

三次方程的其他解法:

1、因式分解法

因式分解法不是對所有的三次方程都適用,只對一些三次方程適用.對於大多數的三次方程,只有先求出它的根,才能作因式分解.當然,因式分解的解法很簡便,直接把三次方程降次.例如:解方程x3-x=0

對左邊作因式分解,得x(x+1)(x-1)=0,得方程的三個根:x1=0,x2=1,x3=-1。

2、另一種換元法

對於一般形式的三次方程,先用上文中提到的配方和換元,將方程化為x3+px+q=0的特殊型.令x=z-p/3z代入並化簡,得:z-p/27z+q=0。再令z=w代入,得:w+p/27w+q=0.這實際上是關於w的二次方程.解出w,再順次解出z,x。

3、盛金公式解法

三次方程應用廣泛。用根號解一元三次方程,雖然有著名的卡爾丹公式,並有相應的判別法,但使用卡爾丹公式解題比較復雜,缺乏直觀性。范盛金推導出一套直接用a、b、c、d表達的較簡明形式的一元三次方程的一般式新求根公式,並建立了新判別法.

Ⅱ 平方根的公式

平方根公式如圖:

如果一個非負數x的平方等於a,那麼這個非負數x叫做a的算術平方根。a的算術平方根記為,讀作「根號a」,a叫做被開方數(radicand)。求一個非負數a的平方根的運算叫做開平方。

結論:被開方數越大,對應的算術平方根也越大(對所有正數都成立)。一個正數如果有平方根,那麼必定有兩個,它們互為相反數。

拓展資料

平方根,又叫二次方根,表示為〔±√ ̄〕,其中屬於非負數的平方根稱之為算術平方根。一個正數有兩個實平方根,它們互為相反數;0隻有一個平方根,就是0本身;負數有兩個共軛的純虛平方根。

Ⅲ 高一數學 描述一元二次方程求解的演算法

解一元二次方程的基本思想方法是通過「降次」將它化為兩個一元一次方程。一元二次方程有四種解法:
1、直接開平方法;2、配方法;3、公式法;4、因式分解法。
1、直接開平方法:
直接開平方法就是用直接開平方求解一元二次方程的方法。用直接開平方法解形如(x-m)^2;=n
(n≥0)的
方程,其解為x=±√n+m
.
2.配方法:用配方法解方程ax^2+bx+c=0
(a≠0)
先將常數c移到方程右邊:ax^2+bx=-c
將二次項系數化為1:x^2+b/ax=-
c/a
方程兩邊分別加上一次項系數的一半的平方:x^2+b/ax+(
b/2a)^2=-
c/a+(
b/2a)^2;
方程左邊成為一個完全平方式:(x+b/2a
)2=
-c/a﹢﹙b/2a﹚²
當b²-4ac≥0時,x+b/2a
=±√﹙﹣c/a﹚﹢﹙b/2a﹚²
∴x=﹛﹣b±[√﹙b²﹣4ac﹚]﹜/2a(這就是求根公式)
3.公式法:把一元二次方程化成一般形式,然後計算判別式△=b²-4ac的值,當b²-4ac≥0時,把各項系數a,
b,
c的值代入求根公式x=[-b±√(b²-4ac)]/(2a)
,
(b²-4ac≥0)就可得到方程的根。4.因式分解法:把方程變形為一邊是零,把另一邊的二次三項式分解成兩個一次因式的積的形式,讓兩個一次因式分別等於零,得到兩個一元一次方程,解這兩個一元一次方程所得到的根,就是原方程的兩個根。這種解一元二次方程的方法叫做因式分解法。一般解一元二次方程,最常用的方法還是因式分解法,在應用因式分解法時,一般要先將方程寫成一般形式,同時應使二次項系數化為正數。
直接開平方法是最基本的方法。
公式法和配方法是最重要的方法。公式法適用於任何一元二次方程(有人稱之為萬能法),在使用公式法時,一定要把原方程化成一般形式,以便確定系數,而且在用公式前應先計算判別式的值,以便判斷方程是否有解。
配方法是推導公式的工具,掌握公式法後就可以直接用公式法解一元二次方程了,所以一般不用配方法
解一元二次方程。但是,配方法在學習其他數學知識時有廣泛的應用,是初中要求掌握的三種重要的數學方法之一,一定要掌握好。(三種重要的數學方法:換元法,配方法,待定系數法)。

Ⅳ 數學求根公式是什麼

求根公式一般指的是一元二次(或多次)的方程程序化得出的求根計算公式。

a為二次項系數,b為一次項系數,c是常數。

一元二次ax^2 +bx+c=0可用求根公式x= 求解,它是由方程系數直接把根表示出來的公式。這個公式早在公元9世紀由中亞細亞的阿爾·花拉子模給出。

(4)求根演算法擴展閱讀:

被開方的數或代數式寫在符號左方v形部分的右邊和符號上方一橫部分的下方共同包圍的區域中,而且不能出界,若被開方的數或代數式過長,則上方一橫必須延長確保覆蓋下方的被開方數或代數式。

開n次方的n寫在符號√ ̄的左邊,n=2(平方根)時n可以忽略不寫,但若是立方根(三次方根)、四次方根等,是必須書寫。

Ⅳ 關於求根演算法的解析,急!

這個演算法假定了輸入的長度不超過16位,結果不超過8位
然後演算法的原理就是從最高位開始一位一位地把結果的二進制位算出來
(p表示的就是當前的二進制位)

Ⅵ 平方根計算方法

【平方根計算步驟】

  1. 將被開方數的整數部分從個位起向左每隔兩位劃為一段,用撇號分開(豎式中的11』56),分成幾段,表示所求平方根是幾位數;

  2. 根據左邊第一段里的數,求得平方根的最高位上的數(豎式中的3);

  3. 從第一段的數減去最高位上數的平方,在它們的差的右邊寫上第二段數組成第一個余數(豎式中的256);

  4. 把求得的最高位數乘以20去試除第一個余數,所得的最大整數作為試商(20×3除256,所得的最大整數是 4,即試商是4);

  5. 用所求的平方根的最高位數的20倍加上這個試商再乘以試商.如果所得的積小於或等於余數,試商就是平方根的第二位數;如果所得的積大於余數,就把試商減小再試(豎式中(20×3+4)×4=256,說明試商4就是平方根的第二位數);

  6. 用同樣的方法,繼續求平方根的其他各位上的數.

如遇開不盡的情況,可根據所要求的精確度求出它的近似值.


【開平方】

求一個數a的平方根的運算,叫做開平方,其中a叫做被開方數。在實數范圍內a必須大於或等於零,即a為非負數;

Ⅶ 牛頓迭代法求根

1 牛頓迭代法又叫牛頓切線法。主要用於求方程的近似解。
牛頓切線法收斂快,適用性強,缺陷是必須求出方程的導數。
設r是f(x)=0的根,選取x0作為r初始近似值,過點(x0,f(x0))做曲線y=f(x)的切線L,L的方程為y=f(x0) f'(x0)(x-x0),求出L與x軸交點的橫坐標 x1=x0-f(x0)/f'(x0),稱x1為r的一次近似值,如果|f(x1)-0|小於指定的精度,那麼繼續過點(x1,f(x1))做曲線y=f(x)的切線,並求該切線與x軸的橫坐標 x2=x1-f(x1)/f'(x1)稱x2為r的二次近似值,重復以上過程。得r的近似值序列{Xn},其中Xn 1=Xn-f(Xn)/f'(Xn),稱為r的n 1次近似值。上式稱為牛頓迭代公式。
你畫個圖對照看,很容易理解的。

2 f=((a*x0+b)*x0+c)*x0+d; //為什麼要這樣寫?而不直接寫成//a*x*x*x+b*x*x+c*x+d ?
這完全是為了加快計算速度。它使用了數學中有名的霍納求值法。
((a*x0+b)*x0+c)*x0+d只需要做3次乘法,而a*x*x*x+b*x*x+c*x+d需要做6次乘法。在計算機中乘法和除法需要的機器指令周期是最長的,這樣改寫可大大提高計算速度,特別是計算式復雜,數據繁多的場合。這是一個很有用的設計技巧。

Ⅷ 多項式 求根的演算法和程序

這題可以用二分法步進試探求解。當然這里說的二分法不是像譚浩強書上的那麼簡單明了,不是一個f(x1)*f(x2)<0就可以確定的。因為他舉例子是在一個單調區間求根,而這里是要求出所有解,區間不一定是單調的。上次我發了一個類似的程序有人評價說不好,那不過是他根本沒理解非單調區間找出所有根和單調區間找一個根難度根本不可比較,說明他根本沒理解演算法目的。

這里的思路是先定一個區間[a,b]然後從a開始以步長h在[a,a+h]內搜索是否有根,然後[a+h,a+2*h],直到區間右端到達b為止。a,b如何大概確定?可以利用高等數學中的高階導數求出多項式何時恆為正或恆為負決定,這個不難。顯然a,b的區間越小程序執行越快。所以a,b盡量定準確一些。程序中定得比較大[-100,150],實際改得越精確越好,當然不能漏根。同時h越小計算時間越長,但是結果精度越高,所以取值要以程序要求的精確度和執行時間綜合考慮,這里取0.1。

同時為了提高計算速度,使用了著名的霍納求值法。即求3x^3-5x^2+x+1轉化為求((3x-5)x+1)x+1,因為第一種求法要做7次乘法而帶括弧的求法只用做3次乘法。當然如果多項式函數是奇函數或偶函數還可以簡化[a,b]區間。
程序中設定了一個多項式,實際更改為所求多項式即可。
一個完整的c程序如下,程序在win-tc和Dev-c++下都調試通過。
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

double Equation(double x)
{
double z;
z=(((((x-5.0)*x+3.0)*x+1.0)*x-7.0)*x+7.0)*x-20.0;/*更改為實際多項式*/
return(z);
}

int BinSearchRoot(double a,double b,double h,double eps,double x[],int m) /*用二分法計算非線性方程的實根*/
/*參數意義:
a 要求的根的下界
b 要求的根的上界,即:所求的根落在區間 [a,b]之內
h 遞進的步長
eps 精度
x 根的值
m 預計的根的個數*/
{
int n,js;
double z,y,z1,y1,z0,y0;
n=0; z=a; y=Equation(z);
while ((z<=b+h/2.0)&&(n!=m)) /*對給定步長的子區間進行搜索*/
{
if (fabs(y)<eps) /*當前的判定點是方程的根*/
{
n=n+1;
x[n-1]=z;
z=z+h/2.0;
y=Equation(z);
}
else /*當前點不是方程的根*/
{
z1=z+h;
y1=Equation(z1);
if (fabs(y1)<eps) /*下一個點是方程的根*/
{
n=n+1;
x[n-1]=z1;
z=z1+h/2.0;
y=Equation(z);
}
else if (y*y1>0.0) /*該區間內無根*/
{ y=y1; z=z1;}
else /*該區間內有根*/
{
js=0;/*標志,0表示未找到根,1表示已經確定了根*/
while (js==0)
{
if (fabs(z1-z)<eps) /*區間的長度小於給定的精度,可以當作已經找到了根*/
{
n=n+1;
x[n-1]=(z1+z)/2.0; /*把區間的中位值作為根*/
z=z1+h/2.0; /*把尋找的位置放到下一個區間內*/
y=Equation(z);
js=1; /*在當前區間內已經找到了根*/
}
else /*區間比給定的精度大,則進行二分*/
{
z0=(z1+z)/2.0; /*區間二分*/
y0=Equation(z0);
if (fabs(y0)<eps) /*z0位置為根*/
{
x[n]=z0;
n=n+1;
js=1;
z=z0+h/2.0;
y=Equation(z);
}
else if ((y*y0)<0.0) /*[z,z0]內有根*/
{ z1=z0; y1=y0;}
else { z=z0; y=y0;}
}
}
}
}
}
return(n); /*返回根的個數*/
}

int main()
{
int i,n;
static int m=6;
static double x[6];
system("cls");
printf("\nThe Nonlinear function is:\n");
printf("\nf(x)=(((((x-5.0)*x+3.0)*x+1.0)*x-7.0)*x+7.0)*x-20.0\n"); /*更改為實際多項式*/
n=BinSearchRoot(-100.0,150.0,0.1,0.000001,x,m);
printf("\nThe function has %d roots, they are:\n",n);/*輸出根的個數*/
for (i=0; i<=n-1; i++)
printf("x(%d)=%10.7f\n",i,x[i]);
system("pause");
return 0;
}

後記:網路是個比較浮躁的地方,個別人說三道四,我一笑了之。真正正確的東西他理解不了,只能說明他還沒達到那個層次,要從自身找原因。

顯然二分法是不能解決虛根問題的。

Ⅸ ax方+bx+c=0的求根公式

ax方+bx+c=0的求根公式=ax^2+bx+c。在數學和電腦運算中,對於一個已知的從實數集合映射到實數集合,或者從復數集合映射到復數集合的連續函數f(x),搜索變數x使得f(x)=0(此時,變數x稱為f(x)=0的根、f(x)的零點)的演算法,稱為求根演算法。
在許多情況下,函數的零點無法被准確計算出,也無法被解析解表示;是故,求根演算法在實數集合下只提供一個以浮點數表示的近似解,或者一個足夠小的解的存在區間,在復數集合下只提供一個復根的圓盤(輸出一個區間或一個圓盤等價於輸出一個根的近似值及其誤差上限)。

熱點內容
用戶訪問表空間 發布:2025-01-16 20:07:07 瀏覽:943
java代碼自動編譯 發布:2025-01-16 19:58:14 瀏覽:313
編程很困難 發布:2025-01-16 19:58:09 瀏覽:673
gg登錄源碼 發布:2025-01-16 19:58:07 瀏覽:292
微信收藏表情文件夾 發布:2025-01-16 19:28:57 瀏覽:15
ra伺服器搭建 發布:2025-01-16 19:28:12 瀏覽:18
javaftp讀取 發布:2025-01-16 19:28:02 瀏覽:185
樂課上傳作業 發布:2025-01-16 19:24:58 瀏覽:936
哈爾濱python培訓 發布:2025-01-16 19:19:30 瀏覽:915
java對象與線程 發布:2025-01-16 19:14:59 瀏覽:897