日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab用插值法plot,Matlab插值法

發布時間:2023/12/10 循环神经网络 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab用插值法plot,Matlab插值法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗目的:

1.Matlab中多項式的表示及多項式運算

2.用Matlab實現拉格朗日及牛頓插值法

3.用多項式插值法擬合數據

實驗要求:

1.掌握多項式的表示和運算

2.拉格朗日插值法的實現(參見呂同富版教材)

3.牛頓插值法的實現(參見呂同富版教材)

實驗內容:

1.多項式的表達式和創建;多項式的四則運算、導數與積分。

2.用Matlab實現拉格朗日及牛頓插值法。

3.用多項式插值法擬合數據。

實驗步驟:

1.多項式的表達式,MATLAB中使用以為向量來表示多項式,將多項式的系數按照降冪次序存放在向量中。多項式P(x)的具體表示方法:

的系數構成向量為:

。示例如下:

將向量表示的多項式用字符串輸出的通用函數示例:

例子

運行示例:

多項式的加法:

結果是

多項式乘法:

結果是

多項式除法:

多項式導數:

2.用Matlab實現拉格朗日,拉格朗日代碼:

1 function yi=Lagrange(x,y,xi)2 m=length(x);n=length(y);p=length(xi);3 if m~=n4 error(‘向量x與y的長度必須一致‘);5 end6 s=0;7 for k=1:n8 t=ones(1,p);9 for j=1:n10 if j~=k11 t=t.*(xi-x(j))./(x(k)-x(j));12 end13 end14 s=s+t.*y(k);15 end16 yi=s;17 end

Lagrange

運行示例:

牛頓插值法代碼:

1 function yi=newtonint(x,y,xi)2 m=length(x);n=length(y);3 if m~=n4 error(‘向量x與y的長度必須一致‘);5 end6 A=zeros(n);7 A(:,1)=y;8 for j=2:n%j為列標9 for i=1:(n-j+1) %i為行標10 A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i));%計算差商表11 end12 end13 %根據差商表,求對應的牛頓插值多項式在x=xi處的值yi14 N(1)=A(1,1);15 for j=2:n16 T=1;17 for i=1:j-1

18 T=T*(xi-x(i));19 end20 N(j)=A(1,j)*T;21 end22 yi=sum(N); %將x=xi帶入牛頓插值多項式,得到的yi的值23 %A 輸出差商表24 end

newtonint

運行實例:

等距節點的牛頓向后插值代碼:

1 function yi=newtonint1(x,y,xi)2 h=x(2)-x(1);t=(xi-x(1))/h;3 n=length(y);Y=zeros(n);Y(:,1)=y‘;

4 for k=1:n-1

5 Y(:,k+1)=[diff(y‘,k);zeros(k,1)];

6 end7 yi=Y(1,1);8 for i=1:n-1

9 z=t;10 for k=1:i-1

11 z=z*(t-k);12 end13 yi=yi+Y(1,i+1)*z/prod([1:i]);14 end

newtonint1

運行實例:

等距節點的牛頓向前插值代碼:

1 function yi=newtonint2(x,y,xi)2 n=length(x);h=x(n)-x(n-1);t=(x(n)-xi)/h;3 n=length(y);Y=zeros(n);Y(:,1)=y‘;

4 for k=1:n-1

5 Y(:,k+1)=[zeros(k,1);diff(y‘,k)];

6 end7 h=x(n)-x(n-1);t=(x(n)-xi)/h;yi=Y(n,1);8 for i=1:n-1

9 z=t;10 for k=1:i-1

11 z=z*(t-k);12 end13 yi=yi+Y(n,i+1)*(-1)^i*z/prod([1:i]);14 end

newtonint2

運行示例:

3.使用4次牛頓插值多項式插值,并作圖:

解:由4次牛頓插值多項式,

求上述多項式的系數:(修改newtonint.m代碼,得到差商表),代碼如下:

1 function B=newtonint4(x,y)2 m=length(x);n=length(y);3 if m~=n4 error(‘向量x與y的長度必須一致‘);5 end6 A=zeros(n);7 A(:,1)=y;8 for j=2:n%j為列標9 for i=1:(n-j+1) %i為行標10 A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i));%計算差商表11 end12 end13 B=A;14 end

newtonint4

代入數據得到差商表:

0.98

-0.3

-0.625

-0.2083

-0.5208

0.92

-0.55

-0.75

-0.625

0

0.81

-0.85

-1.125

0

0

0.64

-1.3

0

0

0

0.38

0

0

0

0

已知,第一行的便是插值多項式的系數,代入插值多項式:

并作出圖像:

1 x0=[0.2 0.4 0.6 0.8 1.0];2 y0=[0.98 0.92 0.81 0.64 0.38];3 plot(x0,y0,‘b-o‘)4 hold on5 k=0:1:10;6 x=0.2+0.08*k;7 for i=1:1:11

8 y(i)=0.98-0.3*(x(i)-0.2)-0.625*(x(i)-0.2)*(x(i)-0.4)-0.2083333*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)-0.520833333*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)*(x(i)-0.8);9 end10 plot(x,y,‘r-o‘);11 legend(‘原圖像‘,‘4次插值圖像‘);

plot3

小結:

在編寫牛頓插值的代碼時,我遇到了超出元組索引的問題。我在MATLAB的提示下(它的提示是英語),如圖:

這個f是使用迭代來求差商的,但是出現了問題。我根據它的提示創建了一個全零數組用于存儲運算得到的差商,在某種程度上解決了這個問題。

在解決第3題時,我特意編寫了一個算差商的程序和一個4次牛頓插值多項式代入數據畫圖的程序。差商的程序是修改第2題的牛頓插值程序得到的,這在一定程度上說明,一個程序的功能是可以分開的同時也可以寫在一起的。但在寫4次多項式代入畫圖的程序時,并沒有參考的我,只能回看書本關于4次牛頓插值的知識,我得到了這個牛頓插值多項式的公式,并發現它的關鍵就是每一項的系數,而那些系數就是算得的差商,所以,很快,我就寫出了4次多項式代入畫圖的程序。很開心的是,算得的多項式擬合得很好。

原文:https://www.cnblogs.com/jianle23/p/12817734.html

總結

以上是生活随笔為你收集整理的matlab用插值法plot,Matlab插值法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。