共找到4條詞條名為開方的結果 展開

開方

數學術語

開方(英文rooting),指求一個數的方根的運算,為乘方的逆運算(參見“方根”詞條)。在中國古代也指求二次及高次方程(包括二項方程)的正根。

漢語釋義


● ● 數學術語。求方根的運算。對“乘方”而言。《周髀算經》卷上“勾股圓方圖” 漢 趙君卿 註:“勾股各自乘,並之為弦實,開方除之,即弦也。”
● ● 見方。《南史·到溉傳》:“遭母憂,居喪盡禮。所處廬開方四尺,毀瘠過人。”
● ● 開藥方。也說開方子。《再生緣》第五七回:“從此下官拋棄了,再不去,開方診脈作醫生。”魯迅 《自序》:“因為開方的醫生是最有名的,以此所用的藥引也奇特。”謝覺哉 《不惑集·》:“﹝我﹞很小就知道中醫開方子,允許寫白子(即簡字或錯用字),叫‘葯白眼’。”
● ● 求算面積。《明史·食貨志一》:“ 萬曆 六年,帝用大學士 張居正 議,天下田畝通行丈量,限三載竣事。用開方法,以徑圍乘除,畸零截補。於是豪猾不得欺隱,里甲免賠累,而小民無虛糧。”清 魏源 《聖武記》卷六:“ 利瑪竇 、 南懷仁諸地圖,開方計里,眉燦星臚。”清 馮桂芬 《繪地圖儀》:“今 江 南州縣有魚鱗冊,猶沿其制,惟有明以前,繪圖不知計里開方之法,圖與地不能密合,無甚足用。”

方根


數a的n(n為自然數)次方根指的是n方冪等於a的數,也就是適合b的n次方=a的數b。例如16的4次方根有2和-2。一個數的2次方根稱為平方根;3次方根稱為立方根。各次方根統稱為方根。求一個指定的數的方根的運算稱為開方。一個數有多少個方根,這個問題既與數的所在範圍有關,也與方根的次數有關。在實數範圍內,任一實數的奇數次方根有且僅有一個,例如8的3次方根為2,-8的 3次方根為-2 ;正實數的偶數次方根是兩個互為相反數的數,例如16的4次方根為2和-2;負實數不存在偶數次方根;零的任何次方根都是零。在複數範圍內,無論n是奇數或偶數,任一個非零的複數的n次方根都有n個。如果複數,,那麼它的n個n次方根是,k=0,1,2…,n-1。

方法


數字4開方后就是2,2就是它開方的結果
這個用兩個相同數字錶示一個數的這個數字叫做開方
4=2x2 四等於二乘二
9=3x3 九等於三乘三
16=4x4
25=5x5
36=6x6
49=7x7
64=8x8
81=9x9
100=10x10
2,3,4,5,6,7,8,9,10就是4和9,16,25,36,49,64,81,100開方后的數
關於任意數開任意次方的公式:設被開方數為A,開次方數為B。C為變數
首次C取值為1,帶入A,B常量計算結果,並用計算結果值替換公式中的變數C。再次計算結果,再次替換,當C=公式計算結果值,此時C即為根。循環步驟受開方數字長度影響,此法也可筆算進行。採用的是牛頓迭代法。且A、B 可為小數,分數,負數,此法為逐次逼近法。可簡單地實現編程。但是注意:不能計算負數開偶數次方。
下面為:代入法
1、把被開方的整數部分從個位起向左每隔n位為一節,用撇號分開;
2、根據左邊第一節里的數,求得開n次算術根的最高位上的數,假設這個數為a;
3、從第一節的數減去求得的最高位上數的n次方,在它們的差的右邊寫上第二節數作為第一個餘數;
4、用第一個餘數除以,所得的整數部分試商(如果這個最大整數大於或等於10,就用9做試商);
5、設試商為b。如果小於或等於餘數,這個試商就是n次算術根的第二位;如果大於餘數,就把試商逐次減1再試,直到小於或等於餘數為止。
6、用同樣的方法,繼續求n次算術跟的其它各位上的數(如果已經算了k位數數字,則a要取為全部k位數字)。公式:
例如,開立方,A=5,即k=3.公式:
5介於至之間(1的3次方=1,2的3次方=8)
可以取1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0都可以。例如我們取2.0.按照公式:
第一步:。輸入值大於輸出值,負反饋;
即,,,,取2位數值,即1.7。
第二步:.。輸入值小於輸出值,正反饋;
即,,,。取3位數,比前面多取一位數。
第三步:。輸入值大於輸出值,負反饋
第四步:.輸入值小於輸出值,正反饋;
這種方法可以自動調節,第一步與第三步取值偏大,但是計算出來以後輸出值會自動轉小;第二步,第四步輸入值偏小,輸出值自動轉大。=1.7099.

計算機程序代碼


對於任意實數的開方,可以使用切線法得到其任意精度的結果,切線法的迭代公式為:
取任意初始值,以上迭代序列將會收斂:
實際應用中一般取初始值為稍微大的實數,這樣可以加快序列的收斂速度。
c語言代碼如下:
// 2015-12-24// By: ChenYu#include "math.h"#include "stdio.h"#define ABS(a) ((a)<0?-(a):(a))#ifdef _WIN32 typedef unsigned __int64 uint64;#else typedef unsigned long long uint64;#endif// calculate a approximate valuestatic double calcInitRoot(double x, int n){ const uint64 exptMask=((uint64)1<<11)-1; const uint64 fracMask=((uint64)1<<52)-1; uint64 xInt=*(uint64*)&x; int xExpt=(int)((xInt>>52)&exptMask)-1023; xInt=((uint64)((xExpt+1024*n-1)/n)<<52)+(xInt&fracMask)/n; return *(double*)&xInt;}double calcRoot(double x, int n){ int i, j, s=1-((x<0)<<(n&1)); double a=ABS(x); double x1, x0=calcInitRoot(a, n); double err=x0*1e-14; if(x==0) return 0; for(i=1; i<50; i++) { double xn=1; for(j=0; j
  • 目錄