C語言之基本演算法25—牛頓迭代法求方程近似根

來源:互聯網
上載者:User

標籤:c語言   牛頓迭代法   求解方程的近似根   

//牛頓迭代法!
/*
============================================================
題目:用牛頓迭代法求解3*x*x*x-2*x*x-16=0的近似解。
============================================================
*/
#include<stdio.h>
#include<math.h>
#define E 1e-8
double hs(double x)
{
return(3*x*x*x-2*x*x-16);     //原函數
}
double dhs(double x)
{
return(9*x*x-4*x);            //導函數
}
void main()
{
double x1=1.0,x2;                   
x2=x1+1.0;
while(fabs(x2-x1)>E)    //無論怎麼變,只要x1和x2能進入迴圈,就可以完成求解,即x2!=x1.
{
x1=x2;
x2=x1-hs(x1)/dhs(x1);    //此處是用泰勒展式保留前兩項推倒得出的。讀者可尋找相關文獻詳細理解之。
}
printf("方程:3*x*x*x-2*x*x-16=0\n");
printf("解得:x=%.4lf\n",x2);
}


/*
============================================================

評: 牛頓迭代法很好掌握,實用性較強!編程時只需求得導函數, 將原函數和

導函數在程式中替換,即可求得方程的解!

============================================================

*/


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

C語言之基本演算法25—牛頓迭代法求方程近似根

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.