復(fù)旦大學(xué)Matlab課件—— (1)_第1頁
復(fù)旦大學(xué)Matlab課件—— (1)_第2頁
復(fù)旦大學(xué)Matlab課件—— (1)_第3頁
復(fù)旦大學(xué)Matlab課件—— (1)_第4頁
復(fù)旦大學(xué)Matlab課件—— (1)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Matlab MathCleve Morler著陳文斌()零點和根1Bisection 我們知道 在1和2之間,先試x=3/2,因為x的平方大于2,那么 在1,3/2 M=2;a=1;b=3;k=0; while b-aeps x=(a+b) /2; if x2 M b=x else a = x end k=k+1;end2Interval bisection觀察一下a,b變化的情況: 程序結(jié)束需要多少次? 最后a,b是多少? 用format hex表示呢?為什么是這樣的?3Interval bisectionf(x) Find a very small interval, perhaps t

2、wo successive floating point numbers, on which the function change sign.k=0; while abs(b-a)eps*abs(b) x=(a+b) /2; if sign(f(x)=sign(f(b) b=x; else a = x; end k = k+1; end f = inline(x2-2); a=1; b=2;計算sqrt(2)4Interval bisection 二分法是慢的,用上面的代碼,對任何函數(shù)她都需要運行52步,但是她是完全可靠的。這與我們后面介紹的方法不同。5Newtons Method 對于求f

3、(x) = 0的根,Newton法要求過y=f(x)上任一點的切線,并求切線與x-軸的交。迭代過程是k=0; while abs(x-xprev)eps*abs(x) xprev = x; x = x-f(x)/fprime(x)end6Newtons Method對于平方根問題,Newton法是優(yōu)雅而有效的Newton法k=0; while abs(x-xprev)eps*abs(x) xprev = x; x = 0.5*(x+M/x)end 1.500 1.41666666666667 1.41421568627451 1.41421356237469 1.41421356237309

4、1.414213562373096步7Newtons Method缺點: 函數(shù)f(x)必須是光滑的,要容易計算導(dǎo)數(shù);初始猜想要靠近零點。優(yōu)點:收斂速度快,二次收斂。如果函數(shù)的一階和二階導(dǎo)數(shù)連續(xù),且初始值靠近零點,我們可以證明8Newtons Method下面構(gòu)造一個讓Newton方法無限進(jìn)行而不收斂的例子Newton方法不收斂,原因?910Secant Method用有限差分來代替導(dǎo)數(shù)的計算k=0; while abs(b-a)eps*abs(b) c=a;a=b; b=b+(b-c)/(f(c)/f(b)-1); k=k+1;end 1.33333333333333 1.400 1.4146

5、3414634146 1.41421143847487 1.41421356205732 1.41421356237310 1.414213562373107步11Secant Method如果f(x)的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)連續(xù)Superline convergence即每作一次迭代有效位將增加1.6位再考慮一下 12Inverse Quadratic InterpolationSecant方法用前兩個點來確定第三個點,能不能用三個點呢?IQIk=0; while abs(c-b)eps*abs(c) x=polyinterp(f(a),f(b),f(c),a,b,c,0); a=b;b=c;c

6、=x; k=k+1;end1.666666666666671.451.4061.414213788335491.414213562373331.414213562373101.41421356237309a,b,c=0,1,213Inverse Quadratic Interpolation a,b,c = -2,0,2 a,b,c = -2.00001,0,1.99999看一下下面兩組數(shù)據(jù),IQI方法會發(fā)生什么情況?14Zeroin Start with a and b so that f(a) and f(b) have opposite signs Use a secant step t

7、o give c between a and bRepeat the following steps until |b-a|eps|b| or f(b)=0 Arrange a,b and c so that f(a) and f(b) have opposite signs |f(b)|=|f(a)| c is the previous value of b If c=a, consider an IQI stepIf c=a, consider a secant stopIf the IQI or secant step is in the interval a,b,take it If

8、the step is not in the interval, use bisection.15fzerotxMatlab中zeroin的算法實現(xiàn)是fzero. x = fzero(FUN,x0) %x0可以是數(shù),或區(qū)間 x = fzero(besselj(0,x),0) %? x = fzero(besselj(0,x),0,pi) x = fzerotx(besselj(0,x),0,pi)16 ezplot(besselj(0,x),-30,30)17函數(shù)調(diào)用 字符串表達(dá)式 cos(pi*t) besselj(0,x) Inline函數(shù)Function handle bessj0 z = fzerotx(bessj0,0,pi) function y=bessj0(x) y=besselj(0,x)符號表示 syms x F=besselj(0,x) z=f

溫馨提示

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

最新文檔

評論

0/150

提交評論