非線性方程求解算法的程序設(shè)計(jì)及比對(duì)_第1頁
非線性方程求解算法的程序設(shè)計(jì)及比對(duì)_第2頁
非線性方程求解算法的程序設(shè)計(jì)及比對(duì)_第3頁
非線性方程求解算法的程序設(shè)計(jì)及比對(duì)_第4頁
非線性方程求解算法的程序設(shè)計(jì)及比對(duì)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——非線性方程求解算法的程序設(shè)計(jì)及比對(duì)題目:非線性方程求解算法的程序設(shè)計(jì)及比對(duì)

摘要

由于五次及其以上代數(shù)方程式大多不能用代數(shù)公式求解非線性方程的解.或者求解十分繁雜。而在工程和科學(xué)技術(shù)中大量問題往往歸結(jié)為求解非線性方程式問題.所以需要研究非線性方程的數(shù)值解法的問題是十分重要.來適應(yīng)我們社會(huì)的需要.

本課題主要介紹非線性方程的數(shù)值解法是直接從方程出發(fā),逐步縮小根的存在區(qū)間,或逐步將根的近似值確切化,直到滿足問題對(duì)精度的要求,主要的方法有二分法,迭代法,牛頓法,弦截法等。并寫出這幾種非線性方程的數(shù)值解法的算法和程序及其優(yōu)缺點(diǎn)和計(jì)算條件.

關(guān)鍵詞二分法;牛頓迭代法;弦截法法;程序框架圖;C語言編程

目錄

引言1第一章非線性方程求解算法2

§1.1二分法2

§1.1.1二分法的簡(jiǎn)介2§1.1.2二分法的原理2§1.1.3二分法的算法3§1.2不動(dòng)點(diǎn)迭代法4

§1.2.1不動(dòng)點(diǎn)迭代法的簡(jiǎn)介4§1.2.2不動(dòng)點(diǎn)迭代法的幾何意義4§1.2.3不動(dòng)點(diǎn)迭代法的算法5§1.3牛頓迭代法6

§1.3.1牛頓迭代法的簡(jiǎn)介6§1.3.2牛頓迭代法的原理6§1.3.3牛頓迭代法的算法7§1.4弦截法8

§1.4.1弦截法的簡(jiǎn)介8§1.4.2弦截法的原理8§1.4.3弦截法的算法9

其次章非線性方程求解的C語言算法對(duì)比11

§2.1C語言求解非線性方程的根11

§2.1.1構(gòu)造非線性方程迭代公式11§2.1.2計(jì)算迭代公式11§2.2C語言算法比較分析14§1.2不動(dòng)點(diǎn)迭代法

§1.2.1不動(dòng)點(diǎn)迭代法的簡(jiǎn)介

迭代法的基本思想是逐次迫近,即首先給出方程的根的一個(gè)近似初始值,然后反復(fù)使用迭代公式校正這個(gè)初始值,逐步確切化,直到滿足預(yù)先給出的精度要求為止.首先設(shè)法把方程f(x)?0化為以下等價(jià)形式(g(x)稱為迭代函數(shù))

x?g(x)(1-1)

然后按式(1-1)構(gòu)造迭代公式

在有根區(qū)間?a,b?上取一點(diǎn)x0作為方程f(x)?0根的初始近似根,代入式(1-2)右端,求得x1?g(x0),再把x1作為預(yù)計(jì)值,進(jìn)一步得到x2?g(x1),如此反復(fù)進(jìn)行下去,得到一個(gè)近似根的序列

x0,x1,x2x3?xn,?xk?1?g(xk)(k?0,1,2,3?n)(1-2)

假使迭代序列收斂于x,則當(dāng)g(x)連續(xù)時(shí),便是方程f(x)?0的根.

對(duì)預(yù)先給定的精度要求??0,只要某個(gè)k是滿足xk?xk?1??,即可終止計(jì)算并取x?xk.

**§1.2.2不動(dòng)點(diǎn)迭代法的幾何意義

用迭代法求方程x4?2x2?x?3?0在區(qū)間?1,2?內(nèi)的實(shí)根.可以寫出一下下幾種迭代格式,用Mathematica畫出它們的圖形,以此來觀測(cè)它們的幾何意義.

x??1(x)?(3?x?2x)yy1?423?x?2x21/4

1-2x-112y2?x-1-2

圖1.3迭代幾何圖

4

y1?2x?4?1y1x-112y?x-12x??2(x)?x?4?1圖1.4迭代幾何圖

x??3(x)?x?2x?3

42yy1?x?2x?3-242642-1-21xy2?x圖1.5迭代幾何圖

§1.2.3不動(dòng)點(diǎn)迭代法的算法

由不動(dòng)點(diǎn)迭代法程序框架圖(見附錄A)寫出一下迭代算法給定初始近似值x0,求x?g?x?的解.

輸入:初始近似值x0;容許誤差TOL;最大迭代次數(shù)Nmax.輸出:近似解x或失敗信息.

Step1Setk=1;

Step2While(k?Nmax);dosteps3-6

Step3Setx?g(x0);/*計(jì)算x*/

Step4Ifx?x0

開始輸入x0,x1,?,N1?kyf(x0)?0?x0?x2nf(x1)?0?yx1?x2

k+1?kx1?x0x2?x1f(x1)?f(x0)f(x2)?f(x1)

nf(x1)?f(x0)?0?ynx1?f(x1)f(x1)?f(x0)(x1?x0)?x2yx2?x1???

ynk法比較.

下面用弦截法的C語言的程序來(程序詳見附錄B弦截法C語言程序)計(jì)算(2-4)式的在?1,2?的根,誤差度在0.0001,初始迭代值為x0?1,x1?2,計(jì)算把結(jié)果寫在表2-4.計(jì)算完成后與x進(jìn)行比較,來得出算法的正確與否.

表2-4弦截法的計(jì)算結(jié)果

kxk*xk?xk?1備注1.f?(x)?12.xk?xk?1eps);/*判斷是否達(dá)到精度要求,若沒有達(dá)到,繼續(xù)循環(huán)*/printf(\最終結(jié)果Therootis\\n\printf(\}

牛頓迭代法C語言程序

#include#include

doublejs1(doublex){doublej;

j=pow(x,4)+2*pow(x,2)-x-3;returnj;}

doublejs2(doublec){

doublej;

j=4*pow(c,3)+4*c-1;returnj;}

voidmain(){

doublex1,x,f,f1,h;intk=0;

printf(\scanf(\do

{x=x1;k++;

f=js1(x1);

19

f1=js2(x1);x1=x-f/f1;h=fabs(x1-x);

printf(\}while(fabs(x1-x)>1e-4);printf(\最終結(jié)果\\n\

printf(\}

牛頓迭代法C語言程序

#include

#defineeps0.0001/*容許誤差*/#defineN100/*最大迭代次數(shù)N*/

doublef(doublex)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論