• 您現在的位置是:首頁 >綜合 > 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));

    本文到此講解完畢了,希望對大家有幫助。

  • 成人app