数学用计算机开方,开方(数学术语)_百度百科

[kāi fāng]

开方

(数学术语)

语音

编辑

锁定

讨论

上传视频

开方(英文rooting),指求一个数的方根的运算,为乘方的逆运算(参见“方根”词条)。在中国古代也指求二次及高次方程(包括二项方程)的正根。

中文名

开方

外文名

rooting解    释

一个数的方根的运算

类    别

数学(代数)

适用范围

数理科学

开方汉语释义

编辑

语音

数学术语。求方根的运算。对“乘方”而言。《周髀算经》卷上“勾股圆方图” 汉 赵君卿 注:“勾股各自乘,并之为弦实,开方除之,即弦也。”

见方。《南史·到溉传》:“遭母忧,居丧尽礼。所处庐开方四尺,毁瘠过人。”

开药方。也说开方子。《再生缘》第五七回:“从此下官抛弃了,再不去,开方诊脉作医生。”鲁迅 《自序》:“因为开方的医生是最有名的,以此所用的药引也奇特。”谢觉哉 《不惑集·》:“﹝我﹞很小就知道中医开方子,允许写白子(即简字或错用字),叫‘药白眼’。”

求算面积。《明史·食货志一》:“ 万历 六年,帝用大学士 张居正 议,天下田亩通行丈量,限三载竣事。用开方法,以径围乘除,畸零截补。於是豪猾不得欺隐,里甲免赔累,而小民无虚粮。”清 魏源 《圣武记》卷六:“ 利玛窦 、 南怀仁诸地图,开方计里,眉灿星胪。”清 冯桂芬 《绘地图仪》:“今 江 南州县有鱼鳞册,犹沿其制,惟有明以前,绘图不知计里开方之法,图与地不能密合,无甚足用。”[1]

开方方根

编辑

语音

d7f7b55b18da100bdaa693349bb77964.png

示例图数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个。如果复数2e66076cbf16f11d793d74f3d09b2100.svgf1ffc62077b920ef8f5d2d3aa2683602.svg,那么它的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为变量3ead62d7251e7984db28e85b5348951e.svg

首次C取值为1,带入A,B常量计算结果,并用计算结果值替换公式中的变量 C。再次计算结果,再次替换,当C=公式计算结果值,此时C即为根。循环步骤受开方数字长度影响,此法也可笔算进行。采用的是牛顿迭代法。且 A、B 可为小数,分数,负数,此法为逐次逼近法。可简单的实现编程。但是注意:不能计算负数开偶数次方。

下面为:代入法

1、把被开方的整数部分从个位起向左每隔n位为一节,用撇号分开;

2、根据左边第一节里的数,求得开n次算术根的最高位上的数,假设这个数为a;

3、从第一节的数减去求得的最高位上数的n次方,在它们的差的右边写上第二节数作为第一个余数;

4、用第一个余数除以2eeaecf090b08984da8cfd7f4e2e799c.svg,所得的整数部分试商(如果这个最大整数大于或等于10,就用9做试商);

5、设试商为b。如果18447fa28319dccec133ff631f03c193.svg小于或等于余数,这个试商就是n次算术根的第二位;如果18447fa28319dccec133ff631f03c193.svg大于余数,就把试商逐次减1再试,直到18447fa28319dccec133ff631f03c193.svg小于或等于余数为止。

6、用同样的方法,继续求n次算术跟的其它各位上的数(如果已经算了k位数数字,则a要取为全部k位数字)。公式:5665de5117be9ebc3e5f04c586b4cf7f.svg

例如,开立方,A=5,即k=3.公式:818727e32f7136127e5eb276871da1ce.svg

5介于d1afde53bd650eb3fdb99a8c1bd903d0.svg161da89464d65d290a25ad4136147fec.svg 之间(1的3次方=1,2的3次方=8)

df1b580a63b720439fa2588433680d70.svg 可以取1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0都可以。例如我们取2.0.按照公式:

第一步:1c7cdb1a12ab199ec3103cab78f25649.svg。输入值大于输出值,负反馈;

718dd51263ae18996c70640b0e0fcb22.svg06fcff017538c9f38d447e0c6288d771.svg3bcb857d0c2889b4b0efea1ea68cbf94.svg1e26348ce953d5a9ccc2930d0792bf55.svg,取2位数值,即1.7。

第二步:010c0cad75bee81b832753e462284932.svg.。输入值小于输出值,正反馈;

6d961967d0e6a3b0811a123a949c64f1.svgaeeafaa6b8ae0ad3e40b271fd2fc35b9.svgac3513eb603df2683276ce0ee4e17897.svg47e9b182e0aabb0004201a7f908c9108.svg。取3位数,比前面多取一位数。

第三步:6530c991ae5e5cb154b54eb079028c0d.svg。输入值大于输出值,负反馈

第四步:7c05c5df292f364344e39805dd81a706.svg.输入值小于输出值,正反馈;

这种方法可以自动调节,第一步与第三步取值偏大,但是计算出来以后输出值会自动转小;第二步,第四步输入值偏小,输出值自动转大。17b27c602a0b31edba625953deeb6bf5.svg =1.7099.

开方计算机程序代码

编辑

语音

对于任意实数的开方,可以使用切线法得到其任意精度的结果,切线法的迭代公式为:

398064a2365f9e5d708a143a8f14d2ae.svg

取任意初始值34e92f233c71e3a6623a21ae93122d50.svg,以上迭代序列将会收敛:39da4ab25e3fb7faab784d456cd28601.svg

实际应用中一般取初始值为稍微大3952a530020f9eeafe0820fd5ecc856b.svg的实数,这样可以加快序列的收敛速度。

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 value

static 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)<

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

xn*=x0;

x1=((n-1)*x0*xn+a)/(xn*n);

// printf("x%d=%.14f\n", i, x1);

if(ABS(x1-x0)<=err)

break;

x0=x1;

}

return s*x1;

}

void main()

{

double x=-31141.592653589793;

int n=11;

double y=calcRoot(x, n);

printf("root(%g,%d)=%+.14f\n", x, n, y);

printf("root(%g,%d)=%+.14f\n", x, n, pow(ABS(x), 1.0/n));

}

词条图册

更多图册

参考资料

1.

中国社会科学院语言研究所词典编辑室.现代汉语词典(第6版):商务印书馆,2012

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值