您现在的位置是:首页 >综合 > 2023-07-23 03:40:08 来源:

算术平方根公式规则(算术平方根公式)

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

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

1、平方根计算的泰勒公式展开

2、function mysum=sr3(x,e)

3、%用泰勒展开计算平方根,abs(x)<1;

4、%精确度e默认为1e-15;

5、if nargin==1

6、e=1e-15;

7、end

8、m=1; %计算泰勒展开的分子(2*k-3)!!,给m设初值

9、n=1; %计算阶乘n!, 给 n设初值

10、mysum=1; %泰勒展开多项式的和,设初值

11、k=1;

12、while(m/(2^k*n)*x.^k)>e|x==0

13、j=abs(2*k-3);

14、n=n*k;

15、m=m*j;

16、mysum=mysum+(-1)^(k+1)*(m/(2^k*n))*x.^k;

17、k=k+1;

18、end

19、用牛顿迭代法求平方根

20、用C语言,通过链表存储,用牛顿牛代法求平方根。

21、这是C语言实训时的作业。因此作了版面的设计。使用方便!

22、#include"math.h"

23、#include"stdio.h"

24、#include"conio.h"

25、#include"stdlib.h"

26、typedef struct lianbiao /*定义类型:struct lianbiao */

27、{

28、float x1;

29、float x0;

30、struct LIANBIAO *next;

31、}LIANBIAO;

32、/*函数原型*/

33、LIANBIAO *sestet(float c); /*建立链表*/

34、void displayall(LIANBIAO *psthead); /*全部显示*/

35、main()

36、{ LIANBIAO *psthead=NULL;

37、float a;

38、do

39、{

40、printf(" 请输入一个正数为a的值 ");

41、printf(" ");

42、scanf("%f",&a);

43、}while(a<=0);

44、psthead=sestet(a); /*返回“头指针”*/

45、displayall(psthead); /*输出全部结点*/

46、}

47、/*建立链表,并进行计算*/

48、LIANBIAO *sestet(float c)

49、{

50、LIANBIAO *psthead,*ptemp,*pprep;

51、int s;

52、float x0,x1,temp,h;

53、double k;

54、psthead=(LIANBIAO*)malloc(sizeof(LIANBIAO));/*构造“头结点”*/

55、printf(" 您希望精确值(ε)精确到小数点后几位?(目前超过十位无法明确显示) ");

56、printf(" 您需要的位数是:");

57、scanf("%d",&s);

58、k=1/pow(10,s);

59、printf(" 你选择的误差值ε=%0.10lf ",k);

60、pprep=psthead; /*“前趋指针pprep”指向“头结点”*/

61、pprep->next=NULL; /*“头结点”的next成员的NULL*/

62、x1=c;

63、do /*进行迭代计算*/

64、{

65、x0=(x1+c/x1)/2;

66、h=x1-x0; /*定义x1-x0的值,即为误差值*/

67、temp=x1;

68、ptemp=(LIANBIAO*)malloc(sizeof(LIANBIAO));/*开辟一个新的单元*/

69、ptemp->x1=x1; /*得到ptemp指向的结构体中的成员x1的值*/

70、ptemp->x0=h; /*得到ptemp指向的结构体中的成员x0的值,即误差值*/

71、ptemp->next=pprep->next; /*“新结点”指向这个前趋结点的后续结点*/

72、pprep->next=ptemp; /*这个前趋结点指向“新结点”*/

73、pprep=ptemp; /*取得新的结点*/

74、x1=x0; /*x1取得平方根的值*/

75、}while(fabs(h)>k);

76、printf(" 您输入的是%f. 此数的平方根为%f ",c,x1);

77、return psthead; /*返回指向“头结点”的指针*/

78、}

79、/*全部显示*/

80、void displayall(LIANBIAO *psthead)

81、{

82、LIANBIAO *pst; /*调用链表里的函数*/

83、int m=0;

84、pst=psthead->next; /*将psthead原来指向结点中的next值赋给pst*/

85、printf(" ");

86、printf(" 迭代过程为: ");

87、printf(" ");

88、while(pst!=NULL)

89、{

90、m++;

91、printf(" 第%d次迭代 x0=%10f | 误差值为%10f ",m,pst->x1,pst->x0);/*输出迭代次数,输出pst指向的结点的数据*/

92、pst=pst->next; /*使pst指向下一个结点*/

93、}

94、printf(" ");

95、printf(" 共迭代%d次 ",m);

96、printf(" 共开辟空间%d个 ",m+1);

97、printf(" 利用率为%f %% ",m*8*100.0/(m*12+12));

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