版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2.用下列方法求方程ex+10x-2=0的近似根,要求誤差不超過5*10的負4次方,并比較計算量(1)二分法(局部,大圖不太看得清,故后面兩小題都用局部截圖)(2)迭代法(3)牛頓法順序消元法#include<stdio.h>#include<stdlib.h>#include<math.h>int main() int N=4,i,j,p,q,k; double m; double a45; double x1,x2,x3,x4; for (i=0;i<N ;i+ ) for (j=0;j<N+1; j+ ) scanf("%lf&q
2、uot;,&aij); for(p=0;p<N-1;p+) for(k=p+1;k<N;k+) m=akp/app; for(q=p;q<N+1;q+) akq=akq-m*apq; x4=a34/a33; x3=(a24-x4*a23)/a22; x2=(a14-x4*a13-x3*a12)/a11; x1=(a04-x4*a03-x3*a02-x2*a01)/a00; printf("%f,%f,%f,%f",x1,x2,x3,x4); scanf("%lf",&aij); (這一步只是為了看到運行的結(jié)果) 運行結(jié)果
3、列主元消元法functionx,det,flag=Gauss(A,b)n,m=size(A);nb=length(b);flag='OK'det=1;x=zeros(n,1);for k=1:n-1 max1=0; for i=k:n if abs(A(i,k)>max1 max1=abs(A(i,k);r=i; end end if max1<1e-10 flag='failure'return;end if r>k for j=k:n z=A(k,j);A(k,j)=A(r,j);A(r,j)=z; end z=b(k);b(k)=b(r)
4、;b(r)=z;det=-det; end for i=k+1:n m=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m*A(k,j); end b(i)=b(i)-m*b(k); end det=det*A(k,k); end det=det*A(n,n) if abs(A(n,n)<1e-10 flag='failure'return;end x(n)=b(n)/A(n,n);for k=n-1:-1:1 for j=k+1:n b(k)=b(k)-A(k,j)*x(j); end x(k)=b(k)/A(k,k);end 運行結(jié)果
5、:雅可比迭代法function y=jacobi(a,b,x0)D=diag(diag(a);U=-triu(a,1);L=-tril(a,-1);B=D(L+U);f=Db;y=B*x0+f;n=1;while norm(y-x0)>1e-4x0=y;y=B*x0+f;n=n+1;endyn高斯賽德爾迭代法function y=seidel(a,b,x0)D=diag(diag(a);U=-triu(a,1);L=-tril(a,-1);G=(D-L)U;f=(D-L)b;y=G*x0+f;n=1;while norm(y-x0)>10(-4)x0=y;y=G*x0+f;n=n+
6、1;endynSOR迭代法function y=sor(a,b,w,x0)D=diag(diag(a);U=-triu(a,1);L=-tril(a,-1);lw=(D-w*L)(1-w)*D+w*U);f=(D-w*L)b*w;y=lw*x0+f;n=1;while norm(y-x0)>10(-4)x0=y;y=lw*x0+f;n=n+1;endyn1.分段線性插值:function y=fdxx(x0,y0,x) p=length(y0);n=length(x0);m=length(x); for i=1:m z=x(i); for j=1:n-1 if z<x0(j+1)
7、break; end end y(i)= y0(j)*(z-x0(j+1)/(x0(j)-x0(j+1)+y0(j+1)*(z-x0(j)/(x0(j+1)-x0(j); fprintf('y(%d)=%fnx1=%.3fy1=%.3fnx2=%.3fy2=%.3fnn',i,y(i),x0(j),y0(j),x0(j+1),y0(j+1); end end 結(jié)果0.39404 0.38007 0.356932.分段二次插值:function y=fdec(x0,y0,x)p=length(y0);n=length(x0);m=length(x); for i=1:m z=x(
8、i); for j=1:n-1 if z<x0(j+1) break; end end if j<2 j=j+1; elseif (j<n-1) if (abs(x0(j)-z)>abs(x0(j+1)-z) j=j+1; elseif (abs(x0(j)-z)=abs(x0(j+1)-z)&&(abs(x0(j-1)-z)>abs(x0(j+2)-z) j=j+1; end end ans=0.0; for t=j-1:j+1 a=1.0; for k=j-1:j+1 if t=k a=a*(z-x0(k)/(x0(t)-x0(k); end
9、end ans=ans+a*y0(t); end y(i)=ans; fprintf('y(%d)=%fn x1=%.3f y1=%.3fn x2=%.3f y2=%.3fn x3=%.3f y3=%.3fnn',i,y(i),x0(j-1),y0(j-1),x0(j),y0(j),x0(j+1),y0(j+1);end end 結(jié)果為0.39447 0.38022 0.357253.拉格朗日全區(qū)間插值function y=lglr(x0,y0,x) p=length(y0);n=length(x0);m=length(x); for t=1:m ans=0.0; z=x(t)
10、; for k=1:n p=1.0; for q=1:n if q=k p=p*(z-x0(q)/(x0(k)-x0(q); end end ans=ans+p*y0(k); end y(t)=ans; fprintf('y(%d)=%fn',t,y(t);endend結(jié)果為0.39447 0.38022 0.35722function p,S,mu = polyfit(x,y,n)if isequal(size(x),size(y) errorendx = x(:);y = y(:);if nargout > 2 mu = mean(x); std(x); x = (x
11、 - mu(1)/mu(2);endV(:,n+1) = ones(length(x),1,class(x);for j = n:-1:1 V(:,j) = x.*V(:,j+1);end Q,R = qr(V,0);ws = warning; p = R(Q'*y); warning(ws);if size(R,2) > size(R,1) warning;elseif warnIfLargeConditionNumber(R) if nargout > 2 warning; else warning; endendif nargout > 1 r = y - V*
12、p; S.R = R; S.df = max(0,length(y) - (n+1); S.normr = norm(r);endp = p.' function flag = warnIfLargeConditionNumber(R)if isa(R, 'double') flag = (condest(R) > 1e+10);else flag = (condest(R) > 1e+05);endx=1,3,4,5,6,7,8,9,10;y=10,5,4,2,1,1,2,3,4;p=polyfit(x,y,2);y=poly2sym(p);a=-p(1)
13、/p(2)*0.5;xa=-p(2)/(2*p(1);min=(4*p(1)*p(3)-p(2)2)/(4*p(1);yxamin運行截圖運行結(jié)果function I = CombineTraprl(f,a,b,eps)if(nargin =3) eps=1.0e-4; endn=1;h=(b-a)/2;I1=0;I2=(subs(sym(f),findsym(sym(f),a)+subs(sym(f),findsym(sym(f),b)/h;while abs(I2-I1)>eps
14、 n=n+1; h=(b-a)/n; I1=I2; I2=0; for i=0:n-1 x=a+h*i;
15、60; x1=x+h; I2=I2+(h/2)*(subs(sym(f),findsym(sym(f),x)+subs(sym(f),findsym(sym(f),x1); endendI=I2;程序:>> q=CombineTraprl('(1-exp(-x)0.5/x'10-12,1)結(jié)果:q =1.8521歐拉方法function x,y=euler(fun,x0,xf
16、inal,y0,n);if nargin<5,n=50;endh=(xfinal-x0)/n; x(1)=x0;y(1)=y0;for i=1:n x(i+1)=x(i)+h; y(i+1)=y(i)+h*feval(fun,x(i),y(i); end程序:x,y=euler('doty',0,1,1,10)結(jié)果:改進歐拉方法function x,y=eulerpro(fun,x0,xfinal,y0,n); if nargin<5,n=50; endh=(xfinal-x0)/n; x(1)=x0;y(1)=y0; for i=1:n x(i+1)=x(i)+h; y1=y(i)+h*feval(fun,x(i),y(i); y2=y(i)+h*feval(fun,x(i+1),y1); y(i+1)=(y1+y2)/2; end程序:>> x,y=eulerpro('doty',0,1,1,10)結(jié)果:經(jīng)典RK法function x,y=RungKutta4(dyfun,xspan,y0,h)x=xspan(1):h:xspan(2);y(1)=y0;for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n); k2=feval(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度工程建設(shè)項目協(xié)議范本
- 2024年商用經(jīng)營權(quán)租賃協(xié)議
- 7.5相對論時空觀與牛頓力學的局限性(含答案)-2022-2023學年高一物理同步精講義(人教2019必修第二冊 )
- 2024年國際貨物運輸銷售協(xié)議模板
- 兒童撫養(yǎng)權(quán)轉(zhuǎn)移協(xié)議模板2024年
- 2024年無房產(chǎn)證私房買賣協(xié)議范本
- 2024年度個人汽車租賃協(xié)議范本
- 2024年酒吧業(yè)主權(quán)益轉(zhuǎn)讓協(xié)議
- BF2024年二手房銷售協(xié)議模板
- 2024年度龍湖房地產(chǎn)開發(fā)建設(shè)協(xié)議
- 北京市商業(yè)地產(chǎn)市場細分研究
- 2023-2024學年重慶市大足區(qū)八年級(上)期末數(shù)學試卷(含解析)
- 肺結(jié)節(jié)科普知識宣講
- 網(wǎng)絡(luò)直播營銷
- 2024年節(jié)能減排培訓資料
- 2024傳染病預防ppt課件完整版
- 2024年華融實業(yè)投資管理有限公司招聘筆試參考題庫含答案解析
- 2024年1月普通高等學校招生全國統(tǒng)一考試適應(yīng)性測試(九省聯(lián)考)歷史試題(適用地區(qū):貴州)含解析
- 《寬容待人 正確交往》班會課件
- HSK五級必過考前輔導課件
- 小兒胃腸功能紊亂護理查房課件
評論
0/150
提交評論