版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——矩陣與數(shù)值分析
矩陣與數(shù)值分析
學(xué)院專業(yè)班級(jí)學(xué)號(hào)姓名
電子信息與電氣工程學(xué)部
生物醫(yī)學(xué)工程
劉江濤
1:考慮計(jì)算給定向量的范數(shù);輸入向量x?(x1,x2,?,xn)T,輸出x1,x2,x?,請(qǐng)編制一個(gè)通用程序,并用你編制的程序計(jì)算如下向量的范數(shù):
1??11Tx??1,,,?,?,y??1,2,?,n?
n??23對(duì)n?10,100,1000甚至更大的n計(jì)算其范數(shù),你會(huì)發(fā)現(xiàn)什么結(jié)果?你能否修改你的程序使得計(jì)算結(jié)果相對(duì)確切呢?
通用求范數(shù)程序:functionNORM(x)y1=sum(abs(x));y2=(sum(x.^2))^(1/2);y3=max(abs(x));
fprintf('1-范數(shù)=%g;2-范數(shù)=%g;inf-范數(shù)=%g\\n',y1,y2,y3);例題的運(yùn)行程序:functionxianglaing(n)x=[];y=[];fori=1:nx(i)=1/i;y(i)=i;end
disp('x的范數(shù):');NORM(x');disp('')
disp('y的范數(shù):');NORM(y');運(yùn)行結(jié)果如下表:
Tn范數(shù)101001000x12.928975.187387.48547x2x?1111.24491.278661.28216n范數(shù)101001000y1555050500500y2y?10100100019.6214581.67918271.1根據(jù)上述的兩個(gè)表的運(yùn)行結(jié)果,我們可以得知無(wú)論n的值如何變化,對(duì)于x??1恒成立;y??n恒成立,其1-范數(shù)與2-范數(shù)隨著n的增大而增大,但是其變化越來(lái)越小,這是由于計(jì)算在進(jìn)行數(shù)值計(jì)算時(shí)有誤差存在,對(duì)于表達(dá)式(1)當(dāng)n很大時(shí)
1卻很n小,會(huì)出現(xiàn)“大數(shù)吃小數(shù)的現(xiàn)象〞;修改方案:當(dāng)n很大時(shí)我們避免用n做除數(shù),由于當(dāng)n十分大時(shí)
1?0成立;所以在求解其范數(shù)時(shí)我們從小數(shù)開始相加,無(wú)窮個(gè)十分n小的數(shù)值相加也可能是個(gè)很大的數(shù),從而可以避免兩個(gè)數(shù)相加時(shí)出現(xiàn)“大數(shù)吃小數(shù)〞的現(xiàn)象;
2:考慮y?f(x)?ln(1?x),其中定義f(0)?1,此時(shí)f(x)是連續(xù)函數(shù),用此公x式計(jì)算當(dāng)x?[?10?15,10?15]時(shí)的函數(shù)值,畫出圖像。另一方面,考慮下面算法:
d?1?x;ifd?1theny?1elsey?lnd/(d?1)endif
用此算法計(jì)算x?[?10?15,10?15]時(shí)的函數(shù)值,畫出圖像,比較一下發(fā)生了什么?程序:
x=-10^(-15):10^(-20):10^(-15);
if(x==0)f=1;elsef=log(1+x)/x;endfigure(1)plot(x,f);d=1+x;ifd==1y=1;else
y=log(d)/(d-1);endfigure(2)Plot(x,y);
有圖可知,直接用公式f(x)?ln(1?x)計(jì)算x?[?10?15,10?15]的函數(shù)值時(shí),除了在xx?0出的值為1,其他的值都是無(wú)限趨近于1;而利用算法二算出的結(jié)果全為1;出
現(xiàn)這這狀況的原因是x的取值十分接近于0,在用公式d?1?x求d得過(guò)程中出現(xiàn)了大數(shù)吃小數(shù)的狀況,所以在用計(jì)算機(jī)計(jì)算時(shí)d?1恒成立,從而使y?1恒成立;
3:首先編寫一個(gè)利用秦九韶算法計(jì)算一個(gè)多項(xiàng)式在定點(diǎn)的函數(shù)值的通用程序,你的程序包括輸入多項(xiàng)式的系數(shù)以及定點(diǎn),輸出函數(shù)值,利用你編寫的程序計(jì)算
f(x)?(x?2)9?x9?18x8?144x7?672x6?2023x5?4032x4?5376x3?4608x2?2304x?512在x?2鄰域附近的值,畫出p(x)在x?[1.95,20.5]上地圖像。
秦九韶算法的通用程序:
%A為多項(xiàng)式的以升冪排列的系數(shù),x為初始值functionp=qinjiushao(A,x)a=A;[~,n]=size(a);n=n-1;S=[];
S(n+1)=a(n+1);fork=n:-1:1
S(k)=x.*S(k+1)+a(k);
endp=S(1);
利用上述程序計(jì)算p(x)在x?2鄰域附近的值具體見下表:
xp(x)1.95-9.6634e-131.96-1.1255e-111.972.8422e-121.987.3896e-121.995.3433e-122.000xp(x)2.01-3.7517e-122.02-7.7875e-122.034.4338e-122.04-3.6380e-122.055.1159e-12當(dāng)x?[1.95,20.5]時(shí),p(x)的圖像如下:畫圖程序如下:functionhuatu(A,x)[~,n]=size(x);fori=1:n
y(i)=qinjiushao(A,x(i));endplot(x,y);程序運(yùn)行如下:>>x=1.95:0.01:20.5;
>>A=[-5122304-46085376-40322023-672144-181];>>huatu(A,x)
3x10112.521.5p(x)10.50-0.50510x152025
4:編制計(jì)算機(jī)給定矩陣A的LU分解和PLU分解的通用程序,然后利用你編寫的程序完成下面兩個(gè)計(jì)算任務(wù):
考慮
?1??1?A??????1???10?1?????01??Rn?n
?11??11??0??????1??1自己取定x?Rn,并計(jì)算b?Ax。然后用你編制的不選主元的Gauss消去法求解
?。對(duì)n從5到30估計(jì)計(jì)算解的精度。該方程組,記你計(jì)算出的解為x(2)對(duì)n從5到30計(jì)算出其逆矩陣。LU分解的通用程序:functionLU(A)[m,n]=size(A);L=zeros(m,n);U=zeros(m,n);forj=1:n
U(1,j)=A(1,j);L(j,j)=1;
endforj=2:m
L(j,1)=A(j,1)/U(1,1);endfori=2:nforj=i:nsum=0;fork=1:i-1
sum=sum+L(i,k)*U(k,j);end
U(i,j)=A(i,j)-sum;endforj=i+1:nsum=0;fork=1:i-1
sum=sum+L(j,k)*U(k,i);end
L(j,i)=(A(j,i)-sum)/U(i,i);endenddisp('L=');disp(L);disp('U=');disp(U);
PLU分解的通用程序:functionPLU(A)
[~,n]=size(A);Ip=1:n;fork=1:n-1
[~,r]=max(abs(A(k:n,k)));r=r+(k-1);ifr>k
A([k,r],:)=A([r,k],:);Ip([k,r])=Ip([r,k]);endforp=k+1:nmu=A(p,k)/A(k,k);A(p,k)=mu;
A(p,k+1:n)=A(p,k+1:n)-mu*A(k,k+1:n);endendp=eye(n,n);P=zeros(n,n);fori=1:n
P(i,1:n)=p(Ip(i),1:n);end
L=tril(A,-1)+eye(n);U=triu(A);disp('P=')disp(P);disp('L=')disp(L);
disp('U=');disp(U);
我選取b?[123?n]Tn?[5,30],n?N*,則我們可以計(jì)算出其確切解
2n?1?12n?2?1?1x?[?n?1?n?2?2222n?1T]2n?1n?[5,30]n?N*
實(shí)現(xiàn)求解的程序如下:functionINV(n)A=ones(n);fori=2:nforj=1:i-1
A(i,j)=-1*A(i,j);endforj=i:n-1A(i-1,j)=0;endendfori=1:nb(i)=i;
X(i)=-(2^(n-i)-1)/(2^(n-i));end
X(n)=(2^n-1)/(2^(n-1));[L,U]=LU(A);x1=inv(U)*inv(L)*b'disp(x1);
我們利用上述的程序計(jì)算出的結(jié)果如下表:
nx1,x2,x3,?,xn
567…-0.9375,-0.8750,-0.7500,-0.5000,1.9375-0.9688,-0.9375,-0.8750,-0.7500,-0.5000,1.9688-0.9844,-0.9688,-0.9375,-0.8750,-0.7500,-0.5000,1.9844…利用我們求出的確切解與用程序求出的近似解求其誤差,再利用matlab編程實(shí)現(xiàn)時(shí)其誤差為零。(2)
對(duì)于題目中的A的求逆的通用程序:functionINV(n)A=ones(n);fori=2:nforj=1:i-1
A(i,j)=-1*A(i,j);endforj=i:n-1A(i-1,j)=0;endendB=inv(A);
disp('A的逆為:');disp(B);n=5時(shí):
-0.2500-0.1250-0.0625-0.0625??0.5000??00.5000-0.2500-0.1250-0.1250???1?A??000.5000-0.2500-0.2500??0000.5000-0.5000????0.25000.12500.06250.0625?0.5000?n=6時(shí):
-0.2500-0.1250-0.0625-0.0313-0.0313??0.5000?0?0.5000-0.2500-0.1250-0.0625-0.0625???0?00.5000-0.2500-0.1250-0.1250A?1???
000.5000-0.2500-0.2500?0??0?0000.5000-0.5000??0.50000.25000.12500.06250.03130.0313????n=7時(shí):
-0.2500-0.1250-0.0625-0.0313-0.0156-0.0156??0.5000?0?0.5000-0.2500-0.1250-0.0625-0.0313-0.0313???0?00.5000-0.2500-0.1250-0.0625-0.0625??A?1??0000.5000-0.2500-0.1250-0.1250?
?00000.5000-0.2500-0.2500???000000.5000-0.5000???0.50000.25000.12500.06250.03130.01560.0156???n=8時(shí):
-0.2500-0.1250-0.0625-0.0313-0.0156-0.0078-0.0078??0.5000?0?0.5000-0.2500-0.1250-0.0625-0.0313-0.0156-0.0156???0?00.5000-0.2500-0.1250-0.0625-0.0313-0.0313??0000.5000-0.2500-0.1250-0.0625-0.0625?A?1???00000.5000-0.2500-0.1250-0.1250???000000.5000-0.2500-0.2500???0000000.5000-0.5000???0.25000.12500.06250.03130.01560.00780.0078???0.5000?
在此不再一一列舉,都可以用上述程序算出;
5:編制計(jì)算對(duì)稱正定陣的Cholesky分解的通用程序,并利用你編制的程序計(jì)算
Ax?b,其中A?(aij)?Rn?n,aij?1,b可以有你自己取定,對(duì)n從10到20驗(yàn)
i?j?1證程序的可靠性。
Cholesky分解求L的通用程序:%LT代表L的轉(zhuǎn)置function[L,LT]=Cholesky(A)[n,m]=size(A);L=zeros(n,n);forj=1:msum=0;fork=1:j-1
sum=sum+(L(j,k))^2;end
L(j,j)=(A(j,j)-sum)^(1/2);fori=j+1:nsum=0;fork=1:j-1
sum=sum+L(i,k)*L(j,k);end
L(i,j)=(A(i,j)-sum)/L(j,j);endendL=L;LT=L';
求解Ax?b的方程解的程序如下:functioncholesky_qiu_jie(n,b)A=zeros(n);fori=1:nforj=1:n
A(i,j)=1/(i+j-1);endend
[L,LT]=Cholesky(A);Y=inv(LT)*inv(L)*b;disp(Y');>>n=10;
>>b=[1000000000]';>>cholesky_qiu_jie(n,b)1.0e+06*
Columns1through5
0.000099995224850
-0.004949584178747
0.079191090719606
-0.6005186308358132.522130446082295
Columns6through10
-6.305225874989181
9.607833253959356
-8.749889022961289
4.374900125373453-0.923581794866949
>>n=11;
>>b=[10000000000]';>>cholesky_qiu_jie(n,b)1.0e+07*Columns1through5
0.000012085421839-0.0007244602419490.014116768083723
-0.1316795188512550.690983916160226
Columns6through10-2.210252357004733
4.471585077358848
-5.747468746188864
4.548898816586863-2.021271620300206
Column11
0.385801129112326n=12;
>>b=[111111111111]';>>cholesky_qiu_jie(n,b)1.0e+08*Columns1through5-0.000000106586186
0.000015496760612
-0.000549242897797
0.008320236358643-0.067089571289062
Columns6through100.321428166562500
-0.969534469375000
1.888382749062500
-2.3698240640625001.849525708125000
Columns11through12
-0.8162375431250000.155564209082031n=13;
>>b=[1111111111111]';>>cholesky_qiu_jie(n,b)1.0e+10*Columns1through50.000000017255662
-0.000002801898660
0.000111021739307
-0.0018912192593750.017318444275000
Columns6through10
-0.0955644689000000.338540141400000-0.795937993200000
1.255304630000000-1.312819645600000
Columns11through13
0.873192546400000-0.3343542442000000.056103628050000>>n=14;
>>b=[11111111111110]';>>cholesky_qiu_jie(n,b)1.0e+15*Columns1through5-0.000000018973466
0.000003062445902
-0.000120619605275
0.002041840742992-0.018571410648157
Columns6through100.101712531234567
-0.357252637738148
0.831474891793232
-1.2948808998775841.331275372322000
Columns11through14-0.862636505012200-0.002171662407011
>>n=15;
>>b=[111111111111101]';>>cholesky_qiu_jie(n,b)1.0e+16*Columns1through50.000000009159679
-0.000000881206821
0.000013799271738
0.314323195943382
-0.045197162809621
0.000103167625626-0.003987948970647
Columns6through100.038905667203020
-0.198056922710865
0.601726021228474
-1.1199202319749541.191735365493764
Columns11through15-0.450794442163960
-0.496191645217859
0.756621451313167
-0.3998383557115620.079684802839153
>>n=16;
>>b=[1111111111111010]';>>cholesky_qiu_jie(n,b)1.0e+16*Columns1through50.000000106506398
-0.000014879116455
0.000507146024044
-0.0072578714099440.052560866946652
Columns6through10-0.198284962679135
0.290609837891524
0.581225032778005
-3.4971342401756436.758520234521732
Columns11through15-5.326111865614911
-2.146668037387352
8.700448141028517
-8.1619190411434813.588648336729691
Column16
-0.635128701903556>>n=17;
>>b=[11111111111110101]';>>cholesky_qiu_jie(n,b)1.0e+17*Columns1through50.000000014777084
-0.000002118394303
0.000074232548837
-0.0010976069501010.008314003699029
Columns6through10-0.034029369522343
0.065917257262332
0.015959536689882
-0.3776216029047730.819475115416494
Columns11through15-0.660163184213223
-0.295786673257216
1.100782605917994
-0.9529071409935970.339855611203294
Columns16through17
-0.014551513983896-0.014219174116106>>n=18;
>>b=[111111111111101012]';>>cholesky_qiu_jie(n,b)1.0e+16*Columns1through50.000000155967115
-0.000021645380087
0.000727005315139
-0.0101303914094080.069910333639844
Columns6through10-0.237692894985775
0.207119320267744
1.320710222270083
-5.3628332770859458.761578864695567
Columns11through15-5.416385894431453
-3.678202876264916
9.162910938126201
-7.6100281754920474.801505077240169
Columns16through18
-3.4602807804032691.887745959501761-0.436632060441746>>n=19;
>>b=[1111111111111010120]';>>cholesky_qiu_jie(n,b)1.0e+17*
Columns1through50.000000000186975
0.000000487130031
-0.000037337486618
0.000907963809187-0.010389239660544
Columns6through100.065117610127561
-0.236770662992548
0.490423724491871
-0.485761304739977-0.006945225699907
Columns11through150.375039361697087
-0.191724740660743
0.584539934693850
-1.6646332685136670.883570199543987
Columns16through191.944997967101147-0.384572610629205
n=20;
b=[11111111111110101200]';>>cholesky_qiu_jie(n,b)1.0e+17*Columns1through5-0.000000005297720
0.000002202326696
-0.000135104609897
-3.195222688027543
1.831459798885819
0.003035236689788-0.033417756031216
Columns6through100.204643883440640
-0.727554702023794
1.433949931025033
-1.101616652841183-1.111630914232476
Columns11through152.722140887157841
-0.945117835365089
-0.676679844961023
-1.6436973612162932.211735585037371
Columns16through203.295476378249488
-7.583406568516137
5.452181213933089
-1.6592423652438400.159333719326849
A?1利用cholesky分解求出的解的確切度高于直接,由于當(dāng)n逐漸增大的過(guò)程中,
越來(lái)越接近奇異矩陣,使得計(jì)算結(jié)果的誤差增大,而使用cholesky分解可以避免這種現(xiàn)象的產(chǎn)生,是計(jì)算結(jié)果更加確切。
6:(1)編制程序House(x),其作用是對(duì)輸入的向量x,輸出單位向量u使得
(I?2uuT)x?x2e1。
編制Householder變換陣H?I?2uuT?Rn?n乘以A?Rn?m的程序HA,注意,你的程序并不顯式的計(jì)算出H。
考慮矩陣
?1???1A???2???10?0?232224??23?e??
??37?75/2??3用你編制的程序計(jì)算H使得HA的第一列為?e1,并將HA的結(jié)果顯示出來(lái)。編制House(x),其作用是對(duì)輸入的向量x,輸出單位向量U使得
(I?2uuT)x?x2e1:
House(x)通用程序:functionHouse(x)[n,~]=size(x);e1=zeros(n,1);e1(1)=1;w=x-norm(x)*e1;U=w/sqrt((w'*w));disp('U=');disp(U);
編制Householder變換陣H?I?2uuT?Rn?n乘以A?Rn?n的程序HA,注意,你的
程序并不顯示的計(jì)算出H。
Householder變換陣H通用程序:functionHouseholder(A)[n,~]=size(A);e1=zeros(n,1);e1(1)=1;x=A(:,1);w=x-norm(x)*e1;U=w/sqrt((w'*w));H=eye(n)-2*(U*U');HA=H*A;disp('HA=');disp(HA);考慮矩陣
?1??-1A??-2???10?0?24??323?2e??
?2?37?2752??3用你編制的程序計(jì)算H使得HA的第一列為?e1的形式,并將HA的結(jié)果顯示:
HA的結(jié)果顯示的通用程序:
functionHouseholder(A)[n,~]=size(A);e1=zeros(n,1);e1(1)=1;x=A(:,1);
w=x-norm(x)*e1;U=w/sqrt((w'*w));H=eye(n)-2*(U*U');HA=H*A;disp('HA=');disp(HA);程序運(yùn)行結(jié)果:
>>A=[1234;-13sqrt(2)sqrt(3);-22exp(1)pi;-sqrt(10)2-37;0275/2];>>Householder(A)HA=
4.0000-2.83111.4090-6.53780.00001.38960.8839-1.78050.0000-1.22081.6576-3.88360.0000-3.0925-4.6770-4.107802.00007.00002.5000
7:用jacobi和Gauss-Scidel迭代求解下面的方程組,輸出每一步的誤差xk?x*;
?5x1?x2?3x3??2???x1?2x2?4x3?1??3x?4x?15x?10123?Jacobi迭代通用程序:functionjacobi(A,b,x0,ep)ifnargin==3ep=1.0e-6;elseifnargin=epfprintf('%d步誤差\\n',n)Error=y-x0;disp(Error)x0=y;y=B*x0+f;n=n+1;end
disp('近似解')disp(y)
在命令窗口輸入以下命令就可以輸出每一步的誤差及最優(yōu)近似解:>>A=[5-1-3;-124;-3415];>>b=[-2110]';>>x0=[000]';>>ep=10e-8;>>jacobi(A,b,x0,ep)
近似解
-0.081967231207363-1.8032786473803261.131147556193974Gauss-Scidel迭代法通用程序:functionGaussseidel(A,b,x0,ep)ifnargin==3ep=1.0e-6;elseifnargin=epfprintf('%d步誤差\\n',n)Error=y-x0;disp(Error)x0=y;y=B*x0+f;
n=n+1;end
disp('x的近似最優(yōu)解:')disp(y);
在命令窗口輸入以下命令就可以輸出每一步的誤差及最優(yōu)近似解:>>A=[5-1-3;-124;-3415];>>b=[-2110]';>>x0=[000]';>>ep=10e-8;
>>Gaussseidel(A,b,x0,ep)x的近似最優(yōu)解:-0.081967202756916-1.8032785851349111.131147515484593
8:取不同的初值用Newton迭代法以及弦截法求解x3?2x2?10x?100?0的實(shí)根,列表或者畫圖說(shuō)明收斂性;
Newton迭代法通用程序:
%使用說(shuō)明f為符號(hào)表達(dá)式,x0為初始值functionNewton(f,x0)symsx;x=x0;
x1=x0-eval(f/diff(f));while(norm(x1-x0)>0.000001)x=x1;
xk=x1-eval(f/diff(f));x0=x1;
x1=xk;disp(xk);enddisp('xk=')disp(xk)
弦截法通用程序:
%使用說(shuō)明f為符號(hào)表達(dá)式,x0,x1為初始值functionXuanjiefa(f,x0,x1)symsx;x=x0;f1=eval(f);x=x1;f2=eval(f);
x2=x1-(f2/(f2-f1))*(x1-x0);while(norm(x2-x1)>0.000001)x=x1;f1=eval(f);x=x2;f2=eval(f);
xk=x2-(f2/(f2-f1))*(x2-x1);x1=x2;x2=xk;enddisp('xk=')disp(xk)
Newton法:
k0123xk33.51023.46113.4606f(xk)-252.99620.03013.1407e-06xk?1?xk0.51020.04915.0362e-04k01234xk24.13333.54043.46193.4606f(xk)-6446.11784.85320.077442.0766e-5xk?1?xk2.13330.59290.07860.0013k0123xk43.51363.46123.4606f(xk)363.19820.03424.059e-6xk?1?xk0.48650.05245.726e-4弦截法:
k012345xk33.23.48793.45913.46063.406f(xk)-25-14.75201.6418-0.0907-5.1186e-041.6105e-07xk?1?xk0.20.28790.02880.00158.5667e-6k0123456xk233.64103.44283.45993.46063.4606f(xk)-64-2511.1937-1.0607-0.03901.4420e-4-1.9486e-8xk?1?xk10.64100.19830.01726.5469e-62.4129e-6從上述兩個(gè)表的結(jié)果我們可以對(duì)照得出,在不同的初始值的條件下運(yùn)行程序都具有收斂性,但是不同的初始值有不同的收斂速度;
9:用二分法求解方程excosx?2?0在區(qū)間[0,4?]上所有根。functioner_fen_fa(f,a,b)symsx;
e=0.0000001;while((b-a)>e)m=(b+a)/2;x=a;f1=eval(f);x=m;f2=eval(f);iff1*f2>=0a=m;elseb=m;endendc=(a+m)/2;disp(c);
根據(jù)函數(shù)的特點(diǎn)將其定義域分為4等分分別為[0,?],[?,2?],[2?,3?],[3?,4?]分別運(yùn)行程序:>>symsx
>>f=exp(x)*cos(x)+2;>>a=0;>>b=pi;>>er_fen_fa(f,a,b近似零點(diǎn):1.8807>>symsx
>>f=exp(x)*cos(x)+2;
a=pi;>>b=2*pi;>>er_fen_fa(f,a,b)近似零點(diǎn):4.6941>>symsx
>>f=exp(x)*cos(x)+2;>>a=2*pi;>>b=3*pi;>>er_fen_fa(f,a,b)近似零點(diǎn):7.8548>>symsx
>>f=exp(x)*cos(x)+2;>>a=3*pi;>>b=4*pi;>>er_fen_fa(f,a,b)近似零點(diǎn):10.9955
;x2?4.6941;x2?7.8548;x4?10.9955由上述程序可知其全部解為x1?1.880710:考慮函數(shù)f(x)?sin(?x),x?[0,1]。用等距節(jié)點(diǎn)作f(x)的Newton插值,求出插值多項(xiàng)式以及f(x)的圖像,觀測(cè)收斂性。
Newton插值求插值多項(xiàng)式的通用程序:functionP=Nweton_xhazhi(X,f)symsx;p=0;
[~,n]=size(X);fori=1:n-1F=0;w=1;sum=1;forl=1:i+1;w=w*(x-X(l));endforj=1:i+1x=X(j);
F=F+f(j)/(eval(diff(w)));endfort=1:isymsx;
sum=sum*(x-X(t));endp=p+F*sum;endP=p+f(1);Disp(‘P=’);
用等距節(jié)點(diǎn)作f(x)的Newton插值多項(xiàng)式的通用程序:X=0:0.1:1;f=sin(pi*X);
O=Nweton_xhazhi(X,f);Y=simple(O);disp(Y);
plot(X,f)P=
x*(11153755408641612500000*x^919582893765599948750000*x^76457490747185549971250*x^5452380176499959382000*x^3
++-
-
55768777028538456250000*x^8256281087074564729875000*x^61150585140486343857745625*x^42327269296084898261641325*x^2
++++
4715634276489610818*x-1414847701376318005254584)
畫圖程序:X=0:0.1:1;x1=0:0.0001:1;f1=sin(x1*pi);symsxx0=0:0.001:1;f=sin(pi*X);
O=Nweton_xhazhi(X,f);x=x0;Y=eval(O);plot(x0,Y,'r');holdonplot(x1,f1);
1.210.80.60.40.20-0.200.10.20.30.40.50.60.70.80.91
由上圖可知:紅色圖形是利用插值多項(xiàng)式畫出的,藍(lán)色圖像是利用原函數(shù)畫出的,將兩者對(duì)比我們可以得出結(jié)論:該插值多項(xiàng)式具有收斂性
11:對(duì)函數(shù)f(x)?1,x?[?5,5],取不同的節(jié)點(diǎn)數(shù)n,用等距節(jié)點(diǎn)作Lagrange1?x2插值,觀測(cè)Runge現(xiàn)象。
Lagrange插值通用程序:
%X為節(jié)點(diǎn),y為節(jié)點(diǎn)對(duì)應(yīng)的函數(shù)值,x0為插值節(jié)點(diǎn)functionLagrange(X,y,x0)symsx;[~,n]=size(X);sum=0;fori=1:n
sum=sum+y(i)*L(X,i);endx=x0;p=eval(sum);plot(x0,p,'r-')holdon
plot(X,y,'b-');
functionl=L(X,k)symsx;sum1=1;sum2=1;[~,n]=size(X);if(k==1)fori=k+1:n
sum1=sum1*(x-X(i));sum2=sum2*(X(k)-X(i));l=sum1/sum2;endelse
fori=1:k-1
sum1=sum1*(x-X(i));sum2=sum2*(X(k)-X(i));endfori=k+1:n
sum1=sum1*(x-X(i));sum2=sum2*(X(k)-X(i));end
l=sum1/sum2;end
取不同的節(jié)點(diǎn)數(shù)n,用等距節(jié)點(diǎn)作Lagrange插值,觀測(cè)Runge現(xiàn)象:
當(dāng)n=10;
X=-5:0.1:5;f=1./(1+X.^2);x0=-5:5:5;Lagrange(X,f,x0)x1=-5:0.0001:5;y1=1./(1+x1.^2);plot(x1,y1)
1.41.210.80.60.40.20-5-4-3-2-1012345
當(dāng)n=20;
X=-5:0.1:5;f=1./(1+X.^2);x0=-5:0.5:5;Lagrange(X,f,x0)x1=-5:0.0001:5;y1=1./(1+x1.^2);plot(x1,y1)
1.41.210.80.60.40.20-5-4-3-2-1012345
當(dāng)n=50;
X=-5:0.1:5;f=1./(1+X.^2);x0=-5:0.2:5;Lagrange(X,f,x0)x1=-5:0.0001:5;y1=1./(1+x1.^2);plot(x1,y1)
1.41.210.80.60.40.20-5-4-3-2-1012345
n=100;X=-5:0.1:5;f=1./(1+X.^2);x0=-5:0.1:5;
Lagrange(X,f,x0)x1=-5:0.0001:5;y1=1./(1+x1.^2);plot(x1,y1)
1.41.210.80.60.40.20-5-4-3-2-1012345
由以上幾個(gè)圖形我們可以得知,插值節(jié)點(diǎn)越多時(shí),插值多項(xiàng)式的收斂性越好;12:令f(x)?e3xcos(?x),考慮積分?2?0f(x)dx。區(qū)間分為50,100,200,500,
1000等,分別用復(fù)合梯形以及復(fù)合Simpson積分公式計(jì)算積分值,將數(shù)值積分的結(jié)果與確切值比較,列表說(shuō)明誤差的收斂性。
復(fù)合梯形公式通用程序:
%f為被積函數(shù),n為積分區(qū)間等分的數(shù)目,a,b分別為積分下上限functiontixing(f,n,a,b)symsx;sum=0;xk=a:(b-a)/n:b;fori=2:n-1x=xk(i);
sum=sum+eval(f);symsx;endx=a;f1=eval(f);x=b;f2=eval(f);
T=(b-a)/(2*n)*(f1+f2+2*sum);disp(T)
復(fù)合sipson公式:functionSimpson(f,n,a,b)symsx;sum=0;sum1=0;xk=a:(b-a)/n:b;fori=1:n-1
x=(xk(i)+xk(i+1))/2;sum=sum+eval(f);symsx;endfori=2:n-1x=xk(i);
sum1=sum1+eval(f);symsx;endx=a;
f1=eval(f);x=b;f2=eval(f);
T=(b-a)/(6*n)*(f1+f2+2*sum1+4*sum);disp(T)
利用matlab內(nèi)置函數(shù)int()求出該積分式的真是值為:>>symsx
>>int(exp(3*x)*cos(pi*x),0,2*pi)ans=
3.5232e+07
利用符合simpson公式計(jì)算如下表:
n501002005001000200030005000近似值FK2.3147e+072.9066e+073.2156e+073.4010e+073.4623e+073.4928e+073.5030e+073.5111e+07誤差F-Fk1.2085e+076.1664e+063.0761e+061.2228e+066.0960e+053.0430e+052.0275e+051.2159e+05
利用復(fù)合梯形公式計(jì)算如下表:
n501002005001000200030005000近似值FK2.3478e+072.9054e+073.2139e+073.4005e+0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度科學(xué)研究合同標(biāo)的及研究課題3篇
- 2025年度保安人員服裝及裝備供應(yīng)合同3篇
- 健身服務(wù)活動(dòng)免責(zé)協(xié)議
- 2024年甲乙雙方就區(qū)塊鏈技術(shù)研發(fā)與應(yīng)用服務(wù)的合作協(xié)議
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編集錦
- 五年級(jí)數(shù)學(xué)(小數(shù)除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)集錦
- 2025年度新媒體平臺(tái)內(nèi)容創(chuàng)作與傳播合作協(xié)議3篇
- 2024年跨國(guó)游學(xué)研學(xué)活動(dòng)合作協(xié)議3篇
- 基于大數(shù)據(jù)的供應(yīng)鏈管理優(yōu)化協(xié)議
- 城市公益性公墓建設(shè)項(xiàng)目施工組織設(shè)計(jì)
- 2022-2024年江蘇中考語(yǔ)文試題匯編:名著閱讀(教師版)
- 2024年秋季新人教版七年級(jí)上冊(cè)數(shù)學(xué)全冊(cè)教案
- 安全員年終總結(jié)報(bào)告
- 《客房服務(wù)與管理》課程標(biāo)準(zhǔn)課程內(nèi)容與要求
- GB/T 44823-2024綠色礦山評(píng)價(jià)通則
- 營(yíng)銷中心建設(shè)實(shí)施方案
- 工程竣工驗(yàn)收(消防查驗(yàn))報(bào)告
- 能源中國(guó)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 中學(xué)美育(藝術(shù)教育)工作發(fā)展年度報(bào)告
- 農(nóng)業(yè)經(jīng)理人職業(yè)技能大賽考試題及答案
評(píng)論
0/150
提交評(píng)論