資源描述:
《matlab實驗一:非線性方程求解-牛頓法.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、實驗一:非線性方程求解程序1:二分法:symsfx;f=input('請輸入f(x)=');A=input('請輸入根的估計范圍[a,b]=');e=input('請輸入根的誤差限e=');while(A(2)-A(1))>ec=(A(1)+A(2))/2;x=A(1);f1=eval(f);x=c;f2=eval(f);if(f1*f2)>0A(1)=c;elseA(2)=c;endendc=(A(1)+A(2))/2;fprintf('c=%.6fa=%.6fb=%.6f',c,A)用二分法計算方程:1.請
2、輸入f(x)=sin(x)-x^2/2請輸入根的估計范圍[a,b]=[1,2]請輸入根的誤差限e=0.5e-005c=1.a=1.b=1.2.請輸入f(x)=x^3-x-1請輸入根的估計范圍[a,b]=[1,1.5]請輸入根的誤差限e=0.5e-005c=1.a=1.b=1.程序2:newton法:symsfx;f=input('請輸入f(x)=');df=diff(f);x0=input('請輸入迭代初值x0=');e1=input('請輸入奇異判斷e1=');e2=input('請輸入根的誤差限e2=');N=inpu
3、t('請輸入迭代次數(shù)限N=');k=1;while(k=Nfprintf('失敗')end用newton法計算方程:1.請輸入f(x)=x*exp(x)-1請輸入迭代
4、初值x0=0.5請輸入奇異判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=10x=0.迭代次數(shù)為:42.請輸入f(x)=x^3-x-1請輸入迭代初值x0=1請輸入奇異判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=10x=1.迭代次數(shù)為:53.1:請輸入f(x)=(x-1)^2*(2*x-1)請輸入迭代初值x0=0.45請輸入奇異判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=10x=0.迭代次數(shù)為:43.2:請輸入
5、f(x)=(x-1)^2*(2*x-1)請輸入迭代初值x0=0.65請輸入奇異判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=10x=0.迭代次數(shù)為:93.3:請輸入f(x)=(x-1)^2*(2*x-1)請輸入迭代初值x0=0.55請輸入奇異判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=10x=0.迭代次數(shù)為:4程序3:改進(jìn)的newton法:symsfx;f=input('請輸入f(x)=');df=diff(f);x0=input('請輸入迭代初
6、值x0=');e1=input('請輸入奇異判斷e1=');e2=input('請輸入根的誤差限e2=');N=input('請輸入迭代次數(shù)限N=');k=1;while(k7、ifk>=Nfprintf('失敗')end用改進(jìn)的newton法計算方程:1.請輸入f(x)=(x-1)^2*(2*x-1)請輸入迭代初值x0=0.55請輸入奇異判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=10失敗2.請輸入f(x)=(x-1)^2*(2*x-1)請輸入迭代初值x0=0.55請輸入奇異判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=20失敗3.請輸入f(x)=(x-1)^2*(2*x-1)請輸入迭代初值x0=0.55請輸入奇異
8、判斷e1=0.1e-010請輸入根的誤差限e2=0.5e-005請輸入迭代次數(shù)限N=100失敗