实验Matlab数值运算,MATLAB数值实验一(数据的插值运算及其应用完整版
《MATLAB數(shù)值實(shí)驗(yàn)一(數(shù)據(jù)的插值運(yùn)算及其應(yīng)用完整版》由會(huì)員分享,可在線閱讀,更多相關(guān)《MATLAB數(shù)值實(shí)驗(yàn)一(數(shù)據(jù)的插值運(yùn)算及其應(yīng)用完整版(6頁珍藏版)》請(qǐng)?jiān)谌巳宋膸炀W(wǎng)上搜索。
1、佛山科學(xué)技術(shù)學(xué)院實(shí) 驗(yàn) 報(bào) 告課程名稱 數(shù)值分析 實(shí)驗(yàn)項(xiàng)目 插值法與數(shù)據(jù)擬合 專業(yè)班級(jí) 機(jī)械工程 姓 名 余紅杰 學(xué) 號(hào) 指導(dǎo)教師 陳劍 成 績(jī) 日 期 月 日 一、實(shí)驗(yàn)?zāi)康?、學(xué)會(huì)Lagrange 插值、牛頓插值和三次樣條插值等基本插值方法;2、討論插值的Runge現(xiàn)象3、學(xué)會(huì)Matlab提供的插值函數(shù)的使用方法,會(huì)用這些函數(shù)解決實(shí)際問題。二、實(shí)驗(yàn)原理1、拉格朗日插值多項(xiàng)式2、牛頓插值多項(xiàng)式3、三次樣條插值三、實(shí)驗(yàn)步驟1、用MATLAB編寫?yīng)毩⒌睦窭嗜詹逯刀囗?xiàng)式函數(shù)2、用MATLAB編寫?yīng)毩⒌呐nD插值多項(xiàng)式函數(shù)3、用MATLAB編寫?yīng)毩⒌娜螛訔l函數(shù)(邊界條件為第一、二種情形)4、已知函數(shù)。
2、在下列各點(diǎn)的值為:0.20.40.60.81.00.980.920.810.640.38根據(jù)步驟1,2,3編好的程序,試分別用4次拉格朗日多項(xiàng)式、牛頓插值多項(xiàng)式以及三次樣條函數(shù)(自然邊界條件)對(duì)數(shù)據(jù)進(jìn)行插值,并用圖給出,、和。5、在區(qū)間-1,1上分別取用兩組等距節(jié)點(diǎn)對(duì)龍格函數(shù)作多項(xiàng)式插值,對(duì)不同值,分別畫出插值函數(shù)及的圖形。6、下列數(shù)據(jù)點(diǎn)的插值01491625364964012345678可以得到平方根函數(shù)的近似,在區(qū)間0,64上作圖。(1) 用這9個(gè)點(diǎn)作8次多項(xiàng)式插值。(2) 用三次樣條(第一邊界條件)程序求。7、對(duì)于給函數(shù)在區(qū)間-1,1上取,試求3次曲線擬合,試畫出擬合曲線并打印出方程,與。
3、第5題的結(jié)果比較。四、實(shí)驗(yàn)過程與結(jié)果:1、Lagrange 插值多項(xiàng)式源代碼:function ya=lag(x,y,xa)%x 所有已知插值點(diǎn)%y 插值點(diǎn)對(duì)應(yīng)函數(shù)值%xa 所求點(diǎn),自變量%ya 所求點(diǎn)插值估計(jì)量ya=0;mu=1;%初始化%循環(huán)方式求L系數(shù),并求和:for i = 1:length(y)for j = 1:length(x)if i = jmu = mu * (xa - x(j) ) / ( x(i) - x(j) );elsecontinueendendya = ya + y(i) * mu ; mu = 1;end2、 Newton源代碼:function ya = ne。
4、wton(x,y,xa)%x 所有已知插值點(diǎn)%y 插值點(diǎn)對(duì)應(yīng)函數(shù)值%xa 所求點(diǎn),自變量%ya 所求點(diǎn)插值估計(jì)量%建立系數(shù)零矩陣D及初始化:D = zeros(length(x)-1);ya = y(1);xi = 1;%求出矩陣D,該矩陣第一行為牛頓插值多項(xiàng)式系數(shù):for i=1:(length(x)-1)D(i,1) = (y(i+1) -y(i)/(x(i+1) -x(i);endfor j=2:(length(x)-1)for i=1:(length(x)-j)D(i,j) = (D(i+1,j-1) - D(i,j-1) / (x(i+j) - x(i);endend%xi為單個(gè)多項(xiàng)。
5、式(x-x(1)(x-x(2).的值for i=1:(length(x)-1)for j=1:ixi = xi*(xa - x(j);endya = ya + D(1,i)*xi;xi = 1;end3、 三次樣條插值多項(xiàng)式(1)(第一邊界條件)源代碼:function y=yt1(x0,y0,f_0,f_n,x) _____________(1)%第一類邊界條件下三次樣條插值;%xi 所求點(diǎn);%yi 所求點(diǎn)函數(shù)值;%x 已知插值點(diǎn);%y 已知插值點(diǎn)函數(shù)值;%f_0左端點(diǎn)一次導(dǎo)數(shù)值;%f_n右端點(diǎn)一次導(dǎo)數(shù)值;n = length(x0);z = length(y0);h = zeros(n-1。
6、,1);k=zeros(n-2,1);l=zeros(n-2,1);S=2*eye(n);for i=1:n-1h(i)= x0(i+1)-x0(i);endfor i=1:n-2k(i)= h(i+1)/(h(i+1)+h(i);l(i)= 1-k(i);end%對(duì)于第一種邊界條件: k = 1;k; _______________________(2)l = l;1; _______________________(3)%構(gòu)建系數(shù)矩陣S:for i = 1:n-1S(i,i+1) = k(i);S(i+1,i) = l(i);end%建立均差表:F=zeros(n-1,2);for i =。
7、 1:n-1F(i,1) = (y0(i+1)-y0(i)/(x0(i+1)-x0(i);endD = zeros(n-2,1);for i = 1:n-2F(i,2) = (F(i+1,1)-F(i,1)/(x0(i+2)-x0(i);D(i,1) = 6 * F(i,2);end%構(gòu)建函數(shù)D:d0 = 6*(F(1,2)-f_0)/h(1); ___________(4)dn = 6*(f_n-F(n-1,2)/h(n-1); ___________(5)D = d0;D;dn; ______________(6)m= SD;%尋找x所在位置,并求出對(duì)應(yīng)插值:for i = 1:lengt。
8、h(x)for j = 1:n-1if (x(i)=x0(j)y(i) =( m(j)*(x0(j+1)-x(i)3)/(6*h(j)+.(m(j+1)*(x(i)-x0(j)3)/(6*h(j)+.(y0(j)-(m(j)*h(j)2)/6)*(x0(j+1)-x(i)/h(j)+.(y0(j+1)-(m(j+1)*h(j)2)/6)*(x(i)-x0(j)/h(j) ;break;else continue;endendend (2)(自然邊界條件)源代碼:僅僅需要對(duì)上面部分標(biāo)注的位置做如下修改:__(1):function y=yt2(x0,y0,x)__(2):k=0;k__(3):l。
9、=l;0__(4)+(5):刪除(6):D=0:D:04、PS:另建了一個(gè)f方程文件,后面有一題也有用到。function y=f(x0)y = 1./(1+25.*x0.2);___________________________clc;clear;x1=0.2,0.4,0.6,0.8,1.0;y1=0.98,0.92,0.81,0.64,0.38;plot(x1,y1,.);hold onxo=0.2:0.08:1;y=lag(x1,y1,xo);plot(xo,y,o)hold on;y=newton(x1,y1,xo);plot(xo,y,r);hold on;y=yt2(x1,y1,。
10、xo);plot(xo,y,*)h = legend(原始,拉格,牛頓,自樣,4);5、clc,clear;x1=linspace(-1,1,10);x2=linspace(-1,1,20);xo=-1:0.02:1;yo=f(xo);plot(xo,yo);hold on;y=f(x1);y=newton(x1,y,xo);plot(xo,y,k);hold on;y=f(x2);y=newton(x2,y,xo);plot(xo,y,r)h = legend(原始,10插,20插,3); 6、clc,clear;x1=0 1 4 9 16 25 36 49 64;y1=0 1 2 3 4 。
11、5 6 7 8 ;xo=0:1:64;y=lag(x1,y1,xo)plot(xo,y,k);hold ony=yt2(x1,y1,xo)plot(xo,y,r)h = legend(拉格,自然樣條,2);7、clc,clear; x1=linspace(-1,1,11);xo=-1:0.02:1;y=f(x1);yo=f(xo);plot(xo,yo,r);hold onp=polyfit(x1,y,3);y1=polyval(p,xo);plot(xo,y1)h = legend(原圖,三次曲線擬合,2);p%該曲線的三次多項(xiàng)式系數(shù)依次顯示5、 討論分析及感想個(gè)人感覺就是在數(shù)據(jù)點(diǎn)比較少,要。
12、求比較低的情況下,使用拉格朗日或是牛頓插值就足夠了。但是當(dāng)數(shù)據(jù)點(diǎn)比較多的時(shí)候,使用樣條曲線就更好。當(dāng)數(shù)據(jù)更多時(shí),就可以使用曲線擬合方法來求近似值。工程數(shù)學(xué)的基礎(chǔ)知識(shí)并不是很苦難,但是很實(shí)用,是有必要好好學(xué)下的。Matlab也是比較強(qiáng)大的工具,比較符合人的思維邏輯,上手很快。看書上的程序例子和實(shí)際編寫還是有區(qū)別的,看得懂不一定編寫的好,主要還是思維方式的鍛煉吧格式方法之類,只要了解了其基本功能,然后就是一系列的組合,多訓(xùn)練就熟悉了,比較有趣的課程吧,關(guān)鍵是有數(shù)據(jù),有輸出圖像,看的清晰明白。而且出現(xiàn)的錯(cuò)誤,都有清晰的指導(dǎo),修改起來也很快捷。至于具體的分析,在編寫三次樣條的時(shí)候發(fā)現(xiàn),使用矩陣的思想分析世界是有很大優(yōu)勢(shì)的,以后自己會(huì)多加訓(xùn)練。
總結(jié)
以上是生活随笔為你收集整理的实验Matlab数值运算,MATLAB数值实验一(数据的插值运算及其应用完整版的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql派生数据,在数据库中,应该何时
- 下一篇: 正则表达式笔试题php,2017年初级P