牛頓法和割線法方程求根(C語言)

2021-08-15 13:30:00 字數 1454 閱讀 9750

1 . 實驗目的

(1) 通過對二分法與牛頓迭代法作程式設計練習與上機運算,進一步體會二分法與牛頓迭代法的不同特點。

(2) 編寫割線迭代法的程式,求非線性方程的解,並與牛頓迭代法作比較。

2 . 實驗內容

(1) 用牛頓法求下列方程的根:

(2) 編寫乙個割線法的程式,求解上述各方程。

3 . 實驗步驟

牛頓迭代法流程圖:

割線法:將上圖所示的牛頓法流程圖的迭代公式的替換為

並且輸入兩個初始值即可。

4 . 程式設計

(1) 牛頓法

#include

#include

#define eps 1e-7

#define eta 1e-7

//牛頓迭代法求根

float newton(float(*f)(float),float(*f1)(float),float x0) //f為原方程,f1為其導數,x0為初值

while(fabs(d)>eps&&fabs((*f)(x1))>eta); //當|x1-x0|return x1;

}float f(float x) //第2問方程

float f1(float x) //第2問方程求導

float f2(float x) //第1問方程

float f3(float x) //第1問方程求導

float f4(float x) //第3問方程

float f5(float x) //第3問方程求導

void main()

(2) 割線法

#include

#include

#define eps 1e-7

#define eta 1e-7

//割線法

float ge(float(*f)(float),float x1,float x0)

while(fabs(d)>eps&&fabs((*f)(x1))>eta);

return x1;

}float f(float x) //第一問

float f1(float x) //第二問

float f2(float x) //第三問

void main()

牛頓法和割線法

本程式基於.平台,編譯環境是microsoft visual c 對於vc 6.0平台的修改,只須把stdafx.h換成iostream.h,然後去掉主函式裡的 using namespace std 關於計數器的設計 需要動大手術,以優化 使之簡潔 include include define e...

C語言OJ專案參考 2405 牛頓迭代法求根

description 用牛頓迭代法求根。方程為ax 3 bx 2 cx d 0 係數a,b,c,d的值一次為1,2,3,4,由主函式輸入。求x在1附近的乙個實根。求出根後由主函式輸出。結果保留兩位小數。input 係數a,b,c,d的值 output x在1附近的乙個實根 sample input...

方程求根 二分法 不動點迭代 牛頓法 弦截法

方程求根 二分法 不動點迭代 牛頓法 弦截法 1.問題概述 許多複雜的求解問題,都可以轉換成方程f x 0的求解問題。這一系列的解叫做方程的根。對於非線性方程的求解,在自變數範圍內往往有多個解,我們將此變化區域分為多個小的子區間,對每個區間進行分別求解。我們在求解過程中,選取乙個近似值或者近似區間,...