MATLAB在數(shù)值分析中的應(yīng)用_第1頁
MATLAB在數(shù)值分析中的應(yīng)用_第2頁
MATLAB在數(shù)值分析中的應(yīng)用_第3頁
MATLAB在數(shù)值分析中的應(yīng)用_第4頁
MATLAB在數(shù)值分析中的應(yīng)用_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1牛頓插值代碼%1-1 homework of someone (ID)%創(chuàng)建插值原始數(shù)據(jù)x,yx=-1:0.2:1;y=1./(1+9.*x.2);%讀取插值維數(shù)n = length(x);%定義需要的變量c(1:n) = 0.0;syms t;f = y(1);y1 = 0;l = 1;%循環(huán)生成插值多項式for(i=1:n-1) for(j=i+1:n) y1(j) = (y(j)-y(i)/(x(j)-x(i); end c(i) = y1(i+1); l = l*(t-x(i); f = f + c(i)*l; simplify(f); y = y1; %化簡 f = collect

2、(f); f = vpa(f, 6);end%輸出ff%畫圖sym p;q=1/(1+9*p2);ezplot(q,-1,1)%標(biāo)題hold onezplot(f,-1,1)title('牛頓插值 someone (ID)') 牛頓插值運行截圖:三次樣條插值代碼%1-1 homework of someone (ID)%創(chuàng)建插值原始數(shù)據(jù)x0,y0x0=-1:0.2:1;y0=1./(1+9.*x0.2);yy=spline(x0,y0);%讀取插值維數(shù)n=length(x0);%創(chuàng)建符號變量xsyms xfor i=1:n-1 y=yy.coefs(i,1)*(x-x0(i)3

3、+yy.coefs(i,2)*(x-x0(i)2+yy.coefs(i,3)*(x-x0(i)1+yy.coefs(i,4);%因三次樣條插值與原圖過于相似,為避免重合,分列在兩張圖里面 subplot(2,1,1) ezplot(y,x0(i),x0(i+1) title('someone (ID) 三次樣條') hold on axis(-1 1 0 1)endy=1/(1+9*x2);subplot(2,1,2)ezplot(y,-1,1);title('someone (ID) 三次樣條')三次樣條插值截圖因三次樣條插值與原圖過于相似,為避免重合,分列在

4、兩張圖里面2二次勒讓德逼近代碼%2 homework of someone (ID)%定義逼近原始函數(shù)%創(chuàng)建符號變量xsyms x;%定義目標(biāo)函數(shù),并作等值變換使得自變量的區(qū)間為-1,1azf=sin(0.5*pi+0.5*pi*x);%定義逼近次數(shù)n=2;%定義Legender多項式f1=1 x 1.5*x2-0.5;%通過循環(huán)依次計算系數(shù)for i=1:n+1 g(i)=f1(i)*f; temp(i)=int(g(i),-1,1); a(i)=(2*i-1)*temp(i)/2;end%累加得出插值多項式pf=0;for i=1:n+1 pf=pf+a(i)*f1(i);end%化簡,取

5、六位有效數(shù)字pf=simplify(pf);pf=vpa(pf,6);ezplot(pf,0,1)hold onezplot(f,0,1)title('someone (ID) 逼近')二次勒讓德逼近截圖3-1牛頓插值代碼:%3-1 homework of someone (ID)%創(chuàng)建插值原始數(shù)據(jù)x,yx=-5:5;y=1./(1+x.2);%讀取插值維數(shù)n = length(x);%定義需要的變量c(1:n) = 0.0;syms t;f = y(1);y1 = 0;l = 1;%循環(huán)生成插值多項式for(i=1:n-1) for(j=i+1:n) y1(j) = (y(j

6、)-y(i)/(x(j)-x(i); end c(i) = y1(i+1); l = l*(t-x(i); f = f + c(i)*l; simplify(f); y = y1; %化簡 f = collect(f); f = vpa(f, 6);end%畫圖syms p;q=1/(1+p2);ezplot(q,-5,5)%標(biāo)題hold onezplot(f,-5,5)title('牛頓插值 someone (ID)')牛頓插值截屏:3-2拉格朗日插值代碼:%3-2 homework of someone (ID)%創(chuàng)建插值原始數(shù)據(jù)p=0:20;x=5*cos(2*p+1)*

7、pi/42);y=1./(x.2+1);%創(chuàng)建符號變量syms t;n = length(x);f = 0.0;%循環(huán)生成基函數(shù),分兩段以繞過xi=xjfor(i = 1:n) l = y(i); for(j = 1:i-1) l = l*(t-x(j)/(x(i)-x(j); end; for(j = i+1:n) l = l*(t-x(j)/(x(i)-x(j); end; f = f + l;%化簡 simplify(f);end; %將插值多項式展開f = collect(f); %將插值多項式的系數(shù)化成6位精度的小數(shù)f = vpa(f,6); %輸出ff%畫圖 ezplot(f,-5

8、,5);%標(biāo)題title('拉格朗日 someone (ID)')hold onsyms s;q=1/(s2+1);ezplot(q,-5,5)拉格朗日插值截圖3-3分段線性插值代碼:%3-3 homework of someone (ID)%創(chuàng)建插值原始數(shù)據(jù)x0,y0x0=-5:5;y0=1./(1+x0.2);%讀取插值維數(shù)n = length(x0);%生成符號變量xsyms x;%循環(huán)生成每段直線for i=1:n-1;%斜率 k=(y0(i)-y0(i+1)/(x0(i)-x0(i+1);%生成插值函數(shù) y=k*(x-x0(i)+y0(i);%畫圖 ezplot(y,

9、x0(i),x0(i+1);%設(shè)置坐標(biāo)軸 axis(-5 5 0 2); hold onend%畫原圖syms p;p=1/(1+x2);ezplot(p,-5 5);title('someone 分段線性 (ID)');分段線性插值截圖3-5三次保形(埃爾米特)插值代碼:%3-4 homework of someone (ID)%創(chuàng)建插值原始數(shù)據(jù)x0,y0x0=-5:5;y0=1./(1+x0.2);yy=pchip(x0,y0);%讀取插值維數(shù)n=length(x0);%創(chuàng)建符號變量xsyms xfor i=1:n-1 y=yy.coefs(i,1)*(x-x0(i)3+y

10、y.coefs(i,2)*(x-x0(i)2+yy.coefs(i,3)*(x-x0(i)1+yy.coefs(i,4);%因三保形條插值與原圖過于相似,為避免重合,分列在兩張圖里面 subplot(2,1,1) ezplot(y,x0(i),x0(i+1) title('someone (ID) 三次保形') hold on axis(-5 5 0 1)endy=1/(1+x2);subplot(2,1,2)ezplot(y); axis(-5 5 0 1)title('someone (ID) 三次保形')三次保形(埃爾米特)插值截屏:3-5三次樣條插值代碼

11、:%3-5 homework of someone (ID)%創(chuàng)建插值原始數(shù)據(jù)x0,y0x0=-5:5;y0=1./(1+x0.2);yy=spline(x0,y0);%讀取插值維數(shù)n=length(x0);%創(chuàng)建符號變量xsyms xfor i=1:n-1 y=yy.coefs(i,1)*(x-x0(i)3+yy.coefs(i,2)*(x-x0(i)2+yy.coefs(i,3)*(x-x0(i)1+yy.coefs(i,4);%因三次樣條插值與原圖過于相似,為避免重合,分列在兩張圖里面 subplot(2,1,1) ezplot(y,x0(i),x0(i+1) title('so

12、meone (ID) 三次樣條') hold on axis(-5 5 0 1)endy=1/(1+x2);subplot(2,1,2)ezplot(y); axis(-5 5 0 1)title('someone (ID) 三次樣條')三次樣條插值截屏:因三次樣條插值與原圖過于相似,為避免重合,分列在兩張圖里面4圖像放大原理思路在進行圖像放大處理時,需要把原有的像素點拆開,在原有的像素點之間插入新的像素點,并計算新的像素點的顏色,為保證圖片比例協(xié)調(diào),一般對其縱橫兩向同時放大,此時如果在圖片中取出一個3*3像素大小的矩陣,則其四角的元素為已知的。其余元素均為未知。(如圖

13、所示)如何計算出上述圖示的未知量是圖像放大算法成功的關(guān)鍵,可以采用雙線性插值的方法進行計算,也即在行方向和列方向分別進行一次線性插值,具體的流程為:步已知像素點可求像素點11,1,1,31,213,1,3,33,221,1,3,12,121,2,3,22,221,1,3,22,3圖像放大代碼%4 homework of someone (ID)%讀取圖片“4像素.jpg”到矩陣AA=imread('C:UsersEdimionDesktop學(xué)習(xí)文檔4像素4像素.jpg');%讀取圖片的大小a,b,c=size(A);%創(chuàng)建放大后尺寸在矩陣 B=zeros(2*a-1,2*b-1

14、,c);%通過循環(huán)語句把原來圖片中的像素點間隔布置到放大后的矩陣中去for i=1:c; for j=1:a; for k=1:b; B(2*j-1,2*k-1,i)=A(j,k,i); end endend%首先對行進行線性插值for i=1:c; for j=1:2*a-1; for k=1:b-1; B(j,2*k,i)=0.5*B(j,2*k+1,i)+0.5*B(j,2*k-1,i); end endend%然后在列方向插值for i=1:c; for k=1:2*b-1; for j=1:a-1; B(2*j,k,i)=0.5*B(2*j-1,k,i)+0.5*B(2*j+1,k,

15、i); end endendimwrite(B,'C:UsersEdimionDesktop學(xué)習(xí)文檔4像素4像素-big.jpg')imshow('C:UsersEdimionDesktop學(xué)習(xí)文檔4像素4像素-big.jpg')%為保證運算速度,使用了較小的圖片(4*4像素,放大為7*7像素),原理和效果已經(jīng)很明確。截圖過小請老師見諒運行結(jié)果說明原圖像的矩陣:val(:,:,1) = 0 0 255 255 0 0 255 255 255 255 0 0 255 255 0 0val(:,:,2) = 0 0 255 255 0 0 255 255 255 2

16、55 0 0 255 255 0 0val(:,:,3) = 0 0 255 255 0 0 255 255 255 255 0 0 255 255 0 0放大后圖像的矩陣:val(:,:,1) = 0 8 0 255 255 254 255 16 6 0 255 236 251 246 0 0 9 255 255 255 250 255 255 255 246 255 226 248 255 245 255 255 0 13 18 250 255 255 246 0 0 0 255 254 241 252 12 10 0val(:,:,2) = 0 8 0 255 255 254 255 16 6 0 255 236 251 246 0 0 9 255 255 255 250 255 255 255 246 255 226 24

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論