算法策略最新課件_第1頁
算法策略最新課件_第2頁
算法策略最新課件_第3頁
算法策略最新課件_第4頁
算法策略最新課件_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、算法策略最新第四章第四章 基本的算法策略基本的算法策略4.1 4.1 迭代算法迭代算法 4.1.1 4.1.1 遞推法遞推法 4.1.2 4.1.2 倒推法倒推法 4.1.3 4.1.3 迭代法解方程迭代法解方程算法策略最新4.1 迭代算法迭代算法迭代法迭代法(Iteration)也稱)也稱“輾轉(zhuǎn)法輾轉(zhuǎn)法”,是一種不斷用變量的舊,是一種不斷用變量的舊值遞推出新值的解決問題的方法。迭代算法一般用于數(shù)值值遞推出新值的解決問題的方法。迭代算法一般用于數(shù)值計(jì)算。迭代法應(yīng)該是我們?cè)缫咽煜さ乃惴ú呗?,程序設(shè)計(jì)計(jì)算。迭代法應(yīng)該是我們?cè)缫咽煜さ乃惴ú呗裕绦蛟O(shè)計(jì)語言課程中所學(xué)的累加、累乘都是迭代算法策略的基礎(chǔ)

2、應(yīng)語言課程中所學(xué)的累加、累乘都是迭代算法策略的基礎(chǔ)應(yīng)用。用。利用迭代算法策略求解問題,設(shè)計(jì)工作利用迭代算法策略求解問題,設(shè)計(jì)工作主要有三步主要有三步: 1)確定迭代模型)確定迭代模型 2)建立迭代關(guān)系式)建立迭代關(guān)系式 3)對(duì)迭代過程進(jìn)行控制)對(duì)迭代過程進(jìn)行控制算法策略最新411 遞推遞推法 【例【例1】兔子繁殖問題】兔子繁殖問題問題描述:?jiǎn)栴}描述:一對(duì)兔子從出生后第三個(gè)月開始,每月生一對(duì)小兔一對(duì)兔子從出生后第三個(gè)月開始,每月生一對(duì)小兔子。小兔子到第三個(gè)月又開始生下一代小兔子。假若兔子子。小兔子到第三個(gè)月又開始生下一代小兔子。假若兔子只生不死,一月份抱來一對(duì)剛出生的小兔子,問一年中每只生不死,

3、一月份抱來一對(duì)剛出生的小兔子,問一年中每個(gè)月各有多少只兔子。個(gè)月各有多少只兔子。問題分析:?jiǎn)栴}分析:因一對(duì)兔子從出生后第三個(gè)月開始每月生一對(duì)小兔因一對(duì)兔子從出生后第三個(gè)月開始每月生一對(duì)小兔子,則每月新下小兔子的對(duì)兒數(shù)子,則每月新下小兔子的對(duì)兒數(shù)(用斜體數(shù)字表示用斜體數(shù)字表示)顯然由前顯然由前兩個(gè)月的小兔子的對(duì)兒數(shù)決定。則繁殖過程如下:兩個(gè)月的小兔子的對(duì)兒數(shù)決定。則繁殖過程如下: 一月一月 二月二月 三月三月 四月四月 五月五月 六月六月 1 1 1+1=2 2+1=3 3+2=5 5+3=8 算法策略最新算法算法1 1: main( )main( ) int i,a=1,b=1; int i,

4、a=1,b=1; print(a,b); print(a,b); for(i=1;i for(i=1;i=10;i+)=10;i+) c=a+b; c=a+b; print (c); print (c); a=b; a=b; b=c b=c; 數(shù)學(xué)建模:數(shù)學(xué)建模:y y1 1=y=y2 2=1=1,y yn n=y=yn-1n-1+y+yn-2n-2,n=3n=3,4 4,5 5,。算法策略最新算法算法2 2: 表表4-1 4-1 遞推迭代表達(dá)式遞推迭代表達(dá)式1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9a b c=a+b a=b+c b=a+c c=a+b a=b+c

5、b=a+c a b c=a+b a=b+c b=a+c c=a+b a=b+c b=a+c 由此歸納出可以用由此歸納出可以用“c=a+b; a=b+c; b=c+a;”c=a+b; a=b+c; b=c+a;”做循環(huán)做循環(huán)“不變不變式式”。算法算法2 2如下:如下: main( )main( ) int i,a=1,b=1; int i,a=1,b=1; print(a,b); print(a,b); for(i=1; i for(i=1; i=4;i+)=4;i+) c=a+b; a=b+c; b=c+a; print(a,b,c); c=a+b; a=b+c; b=c+a; print(a

6、,b,c); 算法算法2 2,最后輸出的并不是,最后輸出的并不是1212項(xiàng),而是項(xiàng),而是2+32+3* *4 4共共1414項(xiàng)。項(xiàng)。 算法策略最新 表表4-2 4-2 遞推迭代表達(dá)式遞推迭代表達(dá)式1 21 2 3 4 5 6 7 8 93 4 5 6 7 8 9a b a=a+b b=a+b a=a+b b=a+b a b a=a+b b=a+b a=a+b b=a+b 由此歸納出可以用由此歸納出可以用“a=a+b; b=a+b;”a=a+b; b=a+b;”做循環(huán)做循環(huán)“不變式不變式”,從而得到以下算法從而得到以下算法3:3:main( )main( ) int i,a=1,b=1; int

7、 i,a=1,b=1; print(a,b); print(a,b); for(i=1; i for(i=1; i=5;i+)=5;i+) a=a+b; b=a+b; print(a,b); a=a+b; b=a+b; print(a,b); 算法策略最新【例【例2 2】求兩個(gè)整數(shù)的最大公約數(shù)。求兩個(gè)整數(shù)的最大公約數(shù)。數(shù)學(xué)建模:數(shù)學(xué)建模:輾轉(zhuǎn)相除法是根據(jù)遞推策略設(shè)計(jì)的。輾轉(zhuǎn)相除法是根據(jù)遞推策略設(shè)計(jì)的。不妨設(shè)兩個(gè)整數(shù)不妨設(shè)兩個(gè)整數(shù)abab且且a a除以除以b b商商x x余余c c;則;則a-bx=ca-bx=c,不難看出,不難看出a a、b b的最大公約數(shù)也是的最大公約數(shù)也是c c的約數(shù)(一個(gè)

8、數(shù)能整除等式左邊就一定能整除的約數(shù)(一個(gè)數(shù)能整除等式左邊就一定能整除等式的右邊),則等式的右邊),則a a、b b的最大公約數(shù)與的最大公約數(shù)與b b、c c的最大公約數(shù)相同。的最大公約數(shù)相同。同樣方法推出同樣方法推出b b、c c的最大公約數(shù)與的最大公約數(shù)與,直到余數(shù)為,直到余數(shù)為0 0時(shí),除數(shù)即時(shí),除數(shù)即為所求的最大公約數(shù)。為所求的最大公約數(shù)。算法設(shè)計(jì):算法設(shè)計(jì):循環(huán)循環(huán)“不變式不變式”第一次第一次是求是求a a、b b相除的余數(shù)相除的余數(shù)c c,第二第二次次還是求還是求“a”“b” a”“b” 相除的余數(shù),經(jīng)相除的余數(shù),經(jīng)a=b,b=ca=b,b=c操作,就實(shí)現(xiàn)了第操作,就實(shí)現(xiàn)了第二次還是

9、求二次還是求“a”“b” a”“b” 相除的余數(shù),這就找到了循環(huán)不變式。循相除的余數(shù),這就找到了循環(huán)不變式。循環(huán)在余數(shù)環(huán)在余數(shù)c c為為0 0時(shí)結(jié)束。時(shí)結(jié)束。 算法策略最新算法如下:算法如下:mainmain()() int a, b; int a, b; input(a,b); input(a,b); if(b=0) if(b=0) print(“data error”); return; else else c = a mod b; c = a mod b; while c0 while c0 a=b; a=b; b=c; b=c; c=a mod b; c=a mod b; print(

10、b); print(b); 算法策略最新4.1.2 4.1.2 倒推法倒推法 所謂所謂倒推法倒推法:是對(duì)某些特殊問題所采用的違反通常習(xí)慣的,從:是對(duì)某些特殊問題所采用的違反通常習(xí)慣的,從 后向前推解問題的方法。如下面的例題,因不同方面的需求而采后向前推解問題的方法。如下面的例題,因不同方面的需求而采用了倒推策略。用了倒推策略。例例1在不知前提條件的情況下,經(jīng)過從后向前遞推,從而求解問在不知前提條件的情況下,經(jīng)過從后向前遞推,從而求解問題。即由結(jié)果倒過來推解它的前提條件。又如例題。即由結(jié)果倒過來推解它的前提條件。又如例2由于存儲(chǔ)的要由于存儲(chǔ)的要求,而必須從后向前進(jìn)行推算。另外,在對(duì)一些問題進(jìn)行分

11、析或求,而必須從后向前進(jìn)行推算。另外,在對(duì)一些問題進(jìn)行分析或建立數(shù)學(xué)模型時(shí),從前向后分析問題感到比較棘手,而采用倒推建立數(shù)學(xué)模型時(shí),從前向后分析問題感到比較棘手,而采用倒推法(如例法(如例3),則問題容易理解和解決。下面分別看這幾個(gè)例子:),則問題容易理解和解決。下面分別看這幾個(gè)例子:算法策略最新【例【例1 1】猴子吃桃問題猴子吃桃問題一只小猴子摘了若干桃子,每天吃現(xiàn)有桃的一半多一個(gè),一只小猴子摘了若干桃子,每天吃現(xiàn)有桃的一半多一個(gè),到第到第1010天時(shí)就只有一個(gè)桃子了,求原有多少個(gè)桃?天時(shí)就只有一個(gè)桃子了,求原有多少個(gè)桃?數(shù)學(xué)模型:數(shù)學(xué)模型:每天的桃子數(shù)為:每天的桃子數(shù)為:a10=1, a9

12、=(1+a10)a10=1, a9=(1+a10)* *2, 2, a8=(1+a9)a8=(1+a9)* *2,a10=12,a10=1, 遞推公式為:遞推公式為:ai=(1+ai+1)ai=(1+ai+1)* *2 I = 9,8,7,612 I = 9,8,7,61算法如下算法如下 : main( )main( ) int i,s; int i,s; s=1; s=1; for (i=9 ;i=1;i=i-1) for (i=9 ;i=1;i=i-1) s=(s+1) s=(s+1)* *2 2 print (s) print (s); 算法策略最新【例【例2 2】 輸出如圖輸出如圖4-

13、14-1的楊輝三角形(限的楊輝三角形(限定用一個(gè)一維數(shù)組完成)。定用一個(gè)一維數(shù)組完成)。數(shù)學(xué)模型:數(shù)學(xué)模型:上下層規(guī)律較明顯,中間的數(shù)上下層規(guī)律較明顯,中間的數(shù)等于上行左上、右上兩數(shù)之和。等于上行左上、右上兩數(shù)之和。問題分析:?jiǎn)栴}分析:題目中要求用一個(gè)一維數(shù)組即題目中要求用一個(gè)一維數(shù)組即完成。數(shù)組空間一定是由下標(biāo)從小到大完成。數(shù)組空間一定是由下標(biāo)從小到大利用的,這樣其實(shí)楊輝三角形是按下圖利用的,這樣其實(shí)楊輝三角形是按下圖4-24-2形式存儲(chǔ)的。若求形式存儲(chǔ)的。若求n n層,則數(shù)組最多層,則數(shù)組最多存儲(chǔ)存儲(chǔ)n n個(gè)數(shù)據(jù)。個(gè)數(shù)據(jù)。1 11 11 11 2 11 2 11 3 3 11 3 3 11

14、 1 4 6 4 14 6 4 1圖圖4-2 楊輝三角形存儲(chǔ)格式楊輝三角形存儲(chǔ)格式 算法設(shè)計(jì):算法設(shè)計(jì): A1 = Ai=1A1 = Ai=1Aj = Aj + Aj-1 j=i-1Aj = Aj + Aj-1 j=i-1,i-2i-2,2 2i i行行 i-1i-1行行 i-1i-1行行算法策略最新算法如下:算法如下:main( ) int n,i,j,a100;input(n); print(“1”); print(“換行符換行符”);a1=a2=1;print(a1,a2); print(“換行符換行符”);for (i=3;i1,j=j-1) aj=aj+aj-1; for (j=1;

15、j=i;j=j+1) print(aj); print(“換行符換行符”); 算法策略最新【例【例3 3】穿越沙漠問題穿越沙漠問題 用一輛吉普車穿越用一輛吉普車穿越10001000公里的沙漠。吉普車的總裝油量為公里的沙漠。吉普車的總裝油量為500500加侖,耗油率為加侖,耗油率為1 1加侖加侖/ /公里。由于沙漠中沒有油庫(kù),公里。由于沙漠中沒有油庫(kù),必須先用這輛車在沙漠中建立臨時(shí)油庫(kù)。該吉普車以最少必須先用這輛車在沙漠中建立臨時(shí)油庫(kù)。該吉普車以最少的耗油量穿越沙漠,應(yīng)在什么地方建油庫(kù),以及各處的貯的耗油量穿越沙漠,應(yīng)在什么地方建油庫(kù),以及各處的貯油量。油量。 問題分析:?jiǎn)栴}分析: 1 1)先看

16、一簡(jiǎn)單問題:有一位探險(xiǎn)家用先看一簡(jiǎn)單問題:有一位探險(xiǎn)家用5 5天的時(shí)間徒步天的時(shí)間徒步 橫穿橫穿A A、B B兩村,兩村間是荒無人煙的沙漠,如果一兩村,兩村間是荒無人煙的沙漠,如果一 個(gè)人只能擔(dān)負(fù)個(gè)人只能擔(dān)負(fù)3 3天的食物和水,那么這個(gè)探險(xiǎn)家至天的食物和水,那么這個(gè)探險(xiǎn)家至 少雇幾個(gè)人才能順利通過沙漠。少雇幾個(gè)人才能順利通過沙漠。 算法策略最新 A A城雇用一人與探險(xiǎn)家同帶城雇用一人與探險(xiǎn)家同帶3 3天食物同行一天,然后被雇天食物同行一天,然后被雇 人帶一天食物返回,并留一天食物給探險(xiǎn)家,這樣探險(xiǎn)人帶一天食物返回,并留一天食物給探險(xiǎn)家,這樣探險(xiǎn) 家正好有家正好有3 3天的食物繼續(xù)前行,并于第三

17、天打電話雇天的食物繼續(xù)前行,并于第三天打電話雇B B城城 人帶人帶3 3天食物出發(fā),第四天會(huì)面他們會(huì)面,探險(xiǎn)家得到一天食物出發(fā),第四天會(huì)面他們會(huì)面,探險(xiǎn)家得到一 天的食物赴天的食物赴B B城。如圖城。如圖4-34-3主要表示了被雇用二人的行程。主要表示了被雇用二人的行程。 A BA B 圖圖4-3 4-3 被雇用二人的行程被雇用二人的行程 2 2)貯油點(diǎn)問題要求要以最少的耗油量穿越沙漠,即到達(dá)終貯油點(diǎn)問題要求要以最少的耗油量穿越沙漠,即到達(dá)終 點(diǎn)時(shí),沙漠中的各臨時(shí)油庫(kù)和車的裝油量均為點(diǎn)時(shí),沙漠中的各臨時(shí)油庫(kù)和車的裝油量均為0 0。這樣只。這樣只 能從終點(diǎn)開始向前倒著推解貯油點(diǎn)和貯油量。能從終點(diǎn)

18、開始向前倒著推解貯油點(diǎn)和貯油量。算法策略最新數(shù)學(xué)模型:數(shù)學(xué)模型:根據(jù)耗油量最少目標(biāo)的分析,下面從后向前分段根據(jù)耗油量最少目標(biāo)的分析,下面從后向前分段討論。討論。第一段長(zhǎng)度為第一段長(zhǎng)度為500500公里且第一個(gè)加油點(diǎn)貯油為公里且第一個(gè)加油點(diǎn)貯油為500500加侖。加侖。第二段中為了貯備油,吉普車在這段的行程必須有往返。第二段中為了貯備油,吉普車在這段的行程必須有往返。下下面討論怎樣走效率高:面討論怎樣走效率高:1 1)首先不計(jì)方向這段應(yīng)走奇數(shù)次(保證最后向前走)。首先不計(jì)方向這段應(yīng)走奇數(shù)次(保證最后向前走)。2 2)每次向前行進(jìn)時(shí)吉普車是滿載。每次向前行進(jìn)時(shí)吉普車是滿載。3 3)要能貯存夠下一加

19、油點(diǎn)的貯油量,路上耗油又最少。要能貯存夠下一加油點(diǎn)的貯油量,路上耗油又最少。算法策略最新下圖是滿足以上條件的最佳方案,此段共走下圖是滿足以上條件的最佳方案,此段共走3 3次:第一、二次:第一、二次來回耗油次來回耗油2/32/3貯油貯油1/31/3,第三次耗油,第三次耗油1/31/3貯油貯油2/32/3,所以第,所以第二個(gè)加油點(diǎn)貯油為二個(gè)加油點(diǎn)貯油為10001000加侖。由于每公里耗油率為加侖。由于每公里耗油率為1 1加侖,加侖,則此段長(zhǎng)度為則此段長(zhǎng)度為500/3500/3公里。公里。第三段與第二段思路相同。下圖是一最佳方案此段共走第三段與第二段思路相同。下圖是一最佳方案此段共走5 5次:次:第

20、一、二次來回耗油第一、二次來回耗油2/52/5貯油貯油3/53/5,第三、四次來回耗油,第三、四次來回耗油2/52/5貯油貯油3/53/5,第五次耗油,第五次耗油1/51/5貯油貯油4/54/5,第三個(gè)加油點(diǎn)貯油,第三個(gè)加油點(diǎn)貯油為為15001500加侖。此段長(zhǎng)度為加侖。此段長(zhǎng)度為500/5500/5。 500/5500/5公里公里 第二第二 第三第三 終點(diǎn)終點(diǎn)貯油點(diǎn)(貯油點(diǎn)(500500)貯油點(diǎn)(貯油點(diǎn)(10001000)貯油點(diǎn)(貯油點(diǎn)(15001500)圖圖4-4 4-4 貯油點(diǎn)及貯油量示意貯油點(diǎn)及貯油量示意算法策略最新綜上分析綜上分析,從終點(diǎn)開始分別間隔,從終點(diǎn)開始分別間隔 500500

21、,500/3500/3,500/5500/5,500/7500/7,(公里)設(shè)立貯油點(diǎn),直到總距離超過(公里)設(shè)立貯油點(diǎn),直到總距離超過10001000公里。每個(gè)貯油點(diǎn)的油量為公里。每個(gè)貯油點(diǎn)的油量為500500,10001000,15001500,。 算法設(shè)計(jì):算法設(shè)計(jì):由模型知道此問題并不必用倒推算法解決(只由模型知道此問題并不必用倒推算法解決(只是分析過程用的是倒推法),只需通過累加算法就能解決。是分析過程用的是倒推法),只需通過累加算法就能解決。變量說明:變量說明:disdis表示距終點(diǎn)的距離,表示距終點(diǎn)的距離,1000- dis1000- dis則表示距起則表示距起點(diǎn)的距離,點(diǎn)的距離

22、,k k表示貯油點(diǎn)從后到前的序號(hào)。表示貯油點(diǎn)從后到前的序號(hào)。算法策略最新desertdesert( ) int dis int dis,k k,oil,k;oil,k; dis=500;k=1;oil=500; dis=500;k=1;oil=500; do do p r i n t ( “ s t o r e p o i n t ” , k , ” d i s t a n c e ” , 1 0 0 0 -p r i n t ( “ s t o r e p o i n t ” , k , ” d i s t a n c e ” , 1 0 0 0 -dis,”oilquantity”,oil

23、)dis,”oilquantity”,oil); k=k+1;k=k+1; dis=dis+500/(2 dis=dis+500/(2* *k-1);k-1); oil= 500 oil= 500* *k;k; while ( dis1000) while ( dis1000) oil=500*(k-1)+(1000-dis)*( 2*k-1); print(“storepoint”,k,”distance”,0,”oilquantity”,oil)print(“storepoint”,k,”distance”,0,”oilquantity”,oil); 算法策略最新4.1.3 4.1.3 迭

24、代法解方程迭代法解方程迭 代 法 解 方 程 的 實(shí) 質(zhì)迭 代 法 解 方 程 的 實(shí) 質(zhì) 是 按 照 下 列 步 驟 構(gòu) 造 一 個(gè) 序 列是 按 照 下 列 步 驟 構(gòu) 造 一 個(gè) 序 列x x0 0,x,x1 1,x,xn n, ,來逐步逼近方程來逐步逼近方程f(x)=0f(x)=0的解:的解: 1 1)選取適當(dāng)?shù)某踔颠x取適當(dāng)?shù)某踔祒 x0 0; 2 2)確定迭代格式,即建立迭代關(guān)系,需要將方程確定迭代格式,即建立迭代關(guān)系,需要將方程f(x)=0f(x)=0改改 寫為寫為x=(x)x=(x)的等價(jià)形式;的等價(jià)形式; 構(gòu)造序列構(gòu)造序列x0,x1,xn,即先求得,即先求得x1=(x0),再求

25、,再求 x2=(x1),如此反復(fù)迭代,就得到一個(gè)數(shù)列如此反復(fù)迭代,就得到一個(gè)數(shù)列x0, x1,xn,若這個(gè)數(shù)列收斂,即存在極值,且函數(shù),若這個(gè)數(shù)列收斂,即存在極值,且函數(shù) (x)連續(xù),則很容易得到這個(gè)極限值連續(xù),則很容易得到這個(gè)極限值 x*就是方程就是方程f(x)=0的根。的根。 算法策略最新【例【例1 1】迭代法求方程組根迭代法求方程組根算法說明:算法說明:方程組解的初值方程組解的初值X=X=(x0 x0,x1x1,xn-1xn-1), ,迭代迭代關(guān)系方程組為:關(guān)系方程組為:xi=gi(X)(i=0,1,n-1),wxi=gi(X)(i=0,1,n-1),w為解的精度為解的精度, ,則則算法

26、如下:算法如下: for (i=0;in;i+)for (i=0;in;i+) xi= xi=初始近似根初始近似根; ; do k=k+1; do k=k+1; for (i=0;in;i yi=xi; for (i=0;in;i yi=xi; for (i=0;in;i+) xi=gi(X); for (i=0;in;i+) xi=gi(X); for (i=0;in;i+) c=c+fabs(yi-xi) for (i=0;iw and kw and kmaxn ); for (i=0;in;i+) for (i=0;in;i+) print(i print(i,“變量的近似根是變量的近似

27、根是”,xi)xi); 算法策略最新【例【例2 2】牛頓迭代法】牛頓迭代法 牛頓迭代法又稱為切線法,它比一般的迭代法有更高的收斂速度,牛頓迭代法又稱為切線法,它比一般的迭代法有更高的收斂速度,如圖如圖4-54-5所示。首先所示。首先, , 選擇一個(gè)接近函數(shù)選擇一個(gè)接近函數(shù)f(x)f(x)零點(diǎn)的零點(diǎn)的x0, x0, 計(jì)算相應(yīng)計(jì)算相應(yīng)的的f(x0)f(x0)和切線斜率和切線斜率f(x0)f(x0)(這里(這里f f 表示函數(shù)表示函數(shù)f f的導(dǎo)數(shù))。然后的導(dǎo)數(shù))。然后我們計(jì)算穿過點(diǎn)我們計(jì)算穿過點(diǎn)(x0,f (x0)(x0,f (x0)且斜率為且斜率為f (x0)f (x0)的直線方程為:的直線方程為

28、:和和x x軸的交點(diǎn)的軸的交點(diǎn)的x x坐標(biāo)坐標(biāo), , 也就是求如下方程的解:也就是求如下方程的解:)()(000 xxxfxfy0000)()(xxxfxf圖圖4-5 4-5 牛頓迭代法牛頓迭代法 示意圖示意圖算法策略最新迭代公式可化簡(jiǎn)為:迭代公式可化簡(jiǎn)為:此公式就是有名的牛頓迭代公式此公式就是有名的牛頓迭代公式。已經(jīng)證明。已經(jīng)證明, , 如果如果ff是連是連續(xù)的續(xù)的, , 并且待求的零點(diǎn)并且待求的零點(diǎn)x x是孤立的是孤立的, , 那么在零點(diǎn)那么在零點(diǎn)x x周圍存在周圍存在一個(gè)區(qū)域一個(gè)區(qū)域, , 只要初始值只要初始值x0 x0位于這個(gè)鄰近區(qū)域內(nèi)位于這個(gè)鄰近區(qū)域內(nèi), , 那么牛頓那么牛頓法必定收

29、斂。法必定收斂。 下面給出用牛頓迭代法,求形如下面給出用牛頓迭代法,求形如ax3+bx2+cx+d=0方程根的方程根的算法,系數(shù)算法,系數(shù)a、b、c、d的值依次為的值依次為1、2、3、4,由主函數(shù),由主函數(shù)輸入。求輸入。求x在在1附近的一個(gè)實(shí)根。求出根后由主函數(shù)輸出。附近的一個(gè)實(shí)根。求出根后由主函數(shù)輸出。 算法策略最新main( ) float a , b, c, d, fx; print(輸入系數(shù)輸入系數(shù) a,b,c,d:); input(a,b,c,d); fx=f(a,b,c,d); printf(方程的根為:方程的根為:,fx);算法策略最新 令令a0,b0=a,ba0,b0=a,b,c0=(a0+b0)/2c

溫馨提示

  • 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)論