首頁>Club>
6
回覆列表
  • 1 # zpend48785

    %%以下是不動點主程式function[xc,num,eps]=fpi(g,x0,phi,step)ifnargin<3phi=1e-6;endifnargin<4step=100;endpreNum=x0;num=0;eps=1;whileeps>phiafterNum=g(preNum);eps=abs(afterNum-preNum);preNum=afterNum;num=num+1;ifnum>stepdisp("超過迭代次數,可能不收斂")break;endendxc=afterNum;==================下面是該程式的用法,比如我們想要求x^3+x-1=0的根,按如下的步驟進行:1、首先將其轉換成x=g(x)的形式,比如我將其轉換成x=(1-x)^(1/3)這種開立方的形式2、將這種形式寫成函式,即此時有g(x)=(1-x)^(1/3),將下面的程式碼儲存成g.m檔案:  functiony=g(x)  y=nthroot(1-x,3);3、呼叫上面的主程式,後面兩個引數是可選的,第三個引數表示你要求的最低精度,預設值為1e-6,第四個引數表示最大迭代次數,預設是100次。  [xc,num,eps]=fpi(@g,0.8)獲得結果如下:(xc就是根,num是實際迭代次數,eps是根的精度)xc=0.6823num=38eps=9.5514e-07================以下是幾點說明:①不動點的形式也可能有其它種形式,比如x=1-x^3,但是它不收斂,具體原因請參考數學書,這裡可以提示一下,在根附近的其導數的絕對值大小1②所取的初始值最好在根附近,別太遠。不動點法在離根較遠時可能不收斂(雖然在根附近會收斂),上面的程式若取初值為1的話,最後並不收斂,會在0與1之間來回折騰。可自行驗證有問題請留言

  • 2 # lanfengz3

    你的題目打的有點錯誤。

    設g(x)=f(x)-x,g(x)在[0.1]連續,

    g(0)=f(0)>0,g(1)=f(1)-1

    所以[0,1]中必存在一點c,使得g(c)=0,即f(c)=c

  • 中秋節和大豐收的關聯?
  • 雙十一想選一款拍照好用的手機,OPPO Reno2可以嗎?