东南教育网您的位置:首页 >生活 >

平方根公式 计算公式(平方根公式)

导读 大家好,我是小东,我来为大家解答以上问题。平方根公式 计算公式,平方根公式很多人还不知道,现在让我们一起来看看吧!1、平方根计算的...

大家好,我是小东,我来为大家解答以上问题。平方根公式 计算公式,平方根公式很多人还不知道,现在让我们一起来看看吧!

1、平方根计算的泰勒公式展开 function mysum=sr3(x,e) %用泰勒展开计算平方根,abs(x)<1; %精确度e默认为1e-15; if nargin==1 e=1e-15; end m=1; %计算泰勒展开的分子(2*k-3)!!,给m设初值 n=1; %计算阶乘n!, 给 n设初值 mysum=1; %泰勒展开多项式的和,设初值 k=1; while(m/(2^k*n)*x.^k)>e|x==0 j=abs(2*k-3); n=n*k; m=m*j; mysum=mysum+(-1)^(k+1)*(m/(2^k*n))*x.^k; k=k+1; end 用牛顿迭代法求平方根 用C语言,通过链表存储,用牛顿牛代法求平方根。

2、 这是C语言实训时的作业。

3、因此作了版面的设计。

4、使用方便! #include"math.h" #include"stdio.h" #include"conio.h" #include"stdlib.h" typedef struct lianbiao /*定义类型:struct lianbiao */ { float x1; float x0; struct LIANBIAO *next; }LIANBIAO; /*函数原型*/ LIANBIAO *sestet(float c); /*建立链表*/ void displayall(LIANBIAO *psthead); /*全部显示*/ main() { LIANBIAO *psthead=NULL; float a; do { printf(" 请输入一个正数为a的值 "); printf(" "); scanf("%f",&a); }while(a<=0); psthead=sestet(a); /*返回“头指针”*/ displayall(psthead); /*输出全部结点*/ } /*建立链表,并进行计算*/ LIANBIAO *sestet(float c) { LIANBIAO *psthead,*ptemp,*pprep; int s; float x0,x1,temp,h; double k; psthead=(LIANBIAO*)malloc(sizeof(LIANBIAO));/*构造“头结点”*/ printf(" 您希望精确值(ε)精确到小数点后几位?(目前超过十位无法明确显示) "); printf(" 您需要的位数是:"); scanf("%d",&s); k=1/pow(10,s); printf(" 你选择的误差值ε=%0.10lf ",k); pprep=psthead; /*“前趋指针pprep”指向“头结点”*/ pprep->next=NULL; /*“头结点”的next成员的NULL*/ x1=c; do /*进行迭代计算*/ { x0=(x1+c/x1)/2; h=x1-x0; /*定义x1-x0的值,即为误差值*/ temp=x1; ptemp=(LIANBIAO*)malloc(sizeof(LIANBIAO));/*开辟一个新的单元*/ ptemp->x1=x1; /*得到ptemp指向的结构体中的成员x1的值*/ ptemp->x0=h; /*得到ptemp指向的结构体中的成员x0的值,即误差值*/ ptemp->next=pprep->next; /*“新结点”指向这个前趋结点的后续结点*/ pprep->next=ptemp; /*这个前趋结点指向“新结点”*/ pprep=ptemp; /*取得新的结点*/ x1=x0; /*x1取得平方根的值*/ }while(fabs(h)>k); printf(" 您输入的是%f. 此数的平方根为%f ",c,x1); return psthead; /*返回指向“头结点”的指针*/ } /*全部显示*/ void displayall(LIANBIAO *psthead) { LIANBIAO *pst; /*调用链表里的函数*/ int m=0; pst=psthead->next; /*将psthead原来指向结点中的next值赋给pst*/ printf(" "); printf(" 迭代过程为: "); printf(" "); while(pst!=NULL) { m++; printf(" 第%d次迭代 x0=%10f | 误差值为%10f ",m,pst->x1,pst->x0);/*输出迭代次数,输出pst指向的结点的数据*/ pst=pst->next; /*使pst指向下一个结点*/ } printf(" "); printf(" 共迭代%d次 ",m); printf(" 共开辟空间%d个 ",m+1); printf(" 利用率为%f %% ",m*8*100.0/(m*12+12));。

本文到此讲解完毕了,希望对大家有帮助。

免责声明:本文由用户上传,如有侵权请联系删除!