91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

牛頓迭代法求方程的解

發布時間:2020-09-20 02:05:08 來源:網絡 閱讀:605 作者:Lee_1985 欄目:編程語言

迭代法也稱輾轉法,是一種不斷用變量的舊值遞推新值的過程,跟迭代法相對應的是直接法(或者稱為一次解法),即一次性解決問題。迭代法又分為精確迭代和近似迭代。“二分法”和“牛頓迭代法”屬于近似迭代法。迭代算法是用計算機解決問題的一種基本方法。

利用迭代算法解決問題,需要以下三個步驟:

1.確定迭代變量
  在可以用迭代算法解決的問題中,至少存在一個直接或間接地不斷由舊值遞推出新值的變量,這個變量就是迭代變量。
2.建立迭代關系式
  所謂迭代關系式,指如何從變量的前一個值推出其下一個值的公式(或關系)。迭代關系式的建立是解決迭代問題的關鍵,通常可以順推或倒推的方法來完成。
3.對迭代過程進行控制
   在什么時候結束迭代過程?這是編寫迭代程序必須考慮的問題。不能讓迭代過程無休止地重復執行下去。迭代過程的控制通常可分為兩種情況:一種是所需的迭代 次數是個確定的值,可以計算出來;另一種是所需的迭代次數無法確定。對于前一種情況,可以構建一個固定次數的循環來實現對迭代過程的控制;對于后一種情 況,需要進一步分析出用來結束迭代過程的條件。

頭文件:

/***************************************************************************************************** 
 *Copyright:Yue Workstation 
 * 
 *FileName:Iterate.h 
 * 
 *Function:迭代算法數據定義 
 * 
 *Author:Abel Lee 
 * 
 *CreateOn:2012-2-19 
 * 
 *Log:2012-2-19 由Abel Lee創建 
 *****************************************************************************************************/ 

#ifndef ITERATE_H 
#define ITERATE_H 

#include "global.h" 

#define Epsilon 1.0E-6 

int GetTheEquationRoot(void); 
float MySqrt(float x); 

#endif

源文件:

/***************************************************************************************************** 
 *Copyright:Yue Workstation 
 * 
 *FileName:Iterate.c 
 * 
 *Function: 迭代法的應用實例 
 * 
 *Author:Abel Lee 
 * 
 *CreateOn:2012-2-19 
 * 
 *Log:2011-5-3 由Abel Lee創建 
 *****************************************************************************************************/ 

#include "../inc/Iterate.h" 
#include <math.h> 

/**************************************************************************************************** 
 *Function Name: GetTheEquationRoot 
 * 
 *Function: 用牛頓迭代法求方程2*x*x*x-4*x*x+3*x-6 = 0的根 
 * 
 *Parameter:     無 
 * 
 *Return Value:成功返回0,失敗返回-1 
 * 
 *Author:Abel Lee 
 * 
 *Log:2012-2-19 
 ***************************************************************************************************/ 
int GetTheEquationRoot(void) 
{ 
    float x1,x0=1.5; 
    x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); 
    while(fabs(x1-x0>=Epsilon)) 
    { 
        x0=x1; 
        x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); 
    } 
    printf("The Root is:%f\n",x1); 
    return 0; 
} 

/**************************************************************************************************** 
 *Function Name: MySqrt 
 * 
 *Function: 迭代法求一個數的平方根 
 * 
 *Parameter:     x:要求平方根的數 
 * 
 *Return Value:成功返回根植,失敗返回-1 
 * 
 *Author:Abel Lee 
 * 
 *Log:2012-2-19 
 ***************************************************************************************************/ 
float MySqrt(float x) 
{ 
    float a,x0,x1; 

    if(x < 0) 
    { 
        return -1; 
    } 

    a = x; 
    x0=a/2; 
    x1=(x0+a/x0)/2; 

    while(fabs(x1-x0)>=Epsilon) 
    { 
        x0 = x1; 
        x1=(x0+a/x0)/2; 
    } 

    return x1; 
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大庆市| 宁南县| 武平县| 清水河县| 上高县| 天台县| 新绛县| 临洮县| 遂川县| 独山县| 淮北市| 峨眉山市| 偃师市| 高陵县| 清河县| 望城县| 平塘县| 通州区| 怀远县| 衡阳市| 社旗县| 项城市| 罗山县| 阜阳市| 辽阳县| 新竹县| 临西县| 志丹县| 邛崃市| 桑植县| 额尔古纳市| 讷河市| 治多县| 阳信县| 阿荣旗| 华坪县| 颍上县| 新丰县| 祁连县| 柳州市| 静宁县|