方程求解 (c)

來源:互聯網
上載者:User
文章目錄
  • 方程求解
方程求解時限:1000ms 記憶體限制:10000K  總時限:3000ms

描述:

迭代法是用於求解方程或方程組近似根的一種常用的演算法設計方法。設方程為f(x)=0,用某種數學方法推

匯出來的等價的形式x=g(x),然後按一下步驟進行:
1)選一個方程的近似根,賦給變數x0;
2)將x0的值儲存於變數x1,然後計算g(x1),並將結果存於x0
3)當x0與x1的差的絕對值還小於指定的精度要求時,重複步驟2
若方程有根,並且用上述方法計算出來的近似根序列收斂,則按照上述方法求得的x0就認為是方程的根。
上述方法用C程式的形式表示如下:
x0=初始近似根
do{
x1 =x0;
x0 = g(x1);/*按特定的方程計算新的近似根*/
}while(fabs(x0-x1)大於精度要求);
printf("方程的近似根是%f\n",x0);
試用迭代公式為X(n+1) = 0.5*(x(n)+a/x(n)),計算a為不同值的時候的結果(初值為1.0,精度要求為1e

-4)。

輸入:

一個整型資料a,a大於等於1,小於等於10

輸出:

結果x0,結果保留小數點後3位

輸入範例:

1

輸出範例:

1.000

提示:

注意要以換行結尾。

來源:

代碼:

  • #include <stdio.h>
  • #include <math.h>
  • float fun(float x0,float a)

  • {
  • return 0.5*(x0+a/x0);
  • }
  • int main()

  • {
  • float a,x0=1.0,x1;
  • scanf("%f",&a);
  • do
  • {
  • x1=x0;
  • x0=fun(x1,a);
  • }while(fabs(x0-x1)>1e-4);
  • printf("%.3f\n",x0);
  • return 0;
  • }


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.