問:1.matlab讀資料 (c讀資料)
2.超出邊界如何處理 自:按旁邊斜率處理 眾:?
見: 3.減少重複程式interp,單獨拉出來
4.減少輸入量,矩陣長度自己計算
測試案例:
clc;
clear;
%%%一維插值測試
a1=[0;1;2;3;4;5];
a2=[1.2;2.4;3.6;4.8;6.0;7.2];
%%%二維插值測試
a21=[2;4;6;8];
a22=[1,2,3,4,5];
a23=[2,3,4,5;
3,4,5,6;
4,5,6,7;
5,6,7,8;
6,7,8,9];
%%%三維插值測試
a31=[1,2,3];
a32=[2;4;6;8];
a33=[1,2,3,4,5];
a34=[2,3,4,5;
3,4,5,6;
4,5,6,7;
5,6,7,8;
6,7,8,9];
a35=[2,3,4,5;
3,4,5,6;
4,5,6,7;
5,6,7,8;
6,7,8,9];
a36=[2,3,4,5;
3,4,5,6;
4,5,6,7;
5,6,7,8;
6,7,8,9];
d(:,:,1)=a34;
d(:,:,2)=a35;
d(:,:,3)=a36;
%%插值子函式
function y=ma_interp(x,a)
[row,col]=size(a);
if row>=col
n=row;
else n=col;
end %判斷數量,%判斷橫豎,不確定來的資料是一行還是一豎。
if(x=a(n))
i=n-1;
else
for i=1:n
if(x>=a(i)&&x一維插值
function y=ma_interp11(a,a,b)
i=ma_interp(a,a);
y=(a-a(i))/(a(i+1)-a(i))*(b(i+1)-b(i))+b(i);
二維插值
function y=ma_interp22(x1,x2,a,b,c)%先橫後縱
%%%橫列
i=ma_interp(x1,a);
%%%豎列
j=ma_interp(x2,b);
%%%計算
y1=(x1-a(i))/(a(i+1)-a(i))*(c(j,i+1)-c(j,i))+c(j,i);
y=(x2-b(j))/(b(j+1)-b(j))*(c(j+1,i)-c(j,i))+y1;
%%三維插值
function y=ma_interp33(x1,x2,x3,a,b,c,d)
i=ma_interp(x1,a);
j=ma_interp(x2,b);
k=ma_interp(x3,c);
y1=(x1-a(i))/(a(i+1)-a(i))*(d(j,i+1,k)-d(j,i,k))+d(j,i,k);
y2=(x2-b(j))/(b(j+1)-b(j))*(d(j+1,i,k)-d(j,i,k))+y1;
y=(x3-c(k))/(c(k+1)-c(k))*(d(j,i,k+1)-d(j,i,k))+y2;
c語言 利用while
if (ma>andm[nma - 1])
else
}for (j = 0; j < nalpha; j++)
f1 = one_interp(andaf,mid1, alpha,1);
插值查詢 插值搜尋
這是一種和二分比較相似的查詢的演算法,不過不同的是,對於分布比較均勻的較大的陣列,插值查詢有時能夠一次就搜尋到位.為什麼能夠這麼快呢 看網上沒有什麼關於這種演算法的描述,我就來描述一下吧.首先要知道一點,這種搜尋方式只能夠針對順序表進行,再乙個要理解順序表中的乙個特點,在順序表中查詢是否存在乙個值,...
hermite插值 分段插值 Hermite插值
1.分段二次多項式插值 試用分段 4段 二次多項式插值來近似 0,1 區間上的 runge 函式 1 取區間的 8 等分點,計算插值節點處的函式值 2 每次取 3 個相鄰的等分點為一組,呼叫 polyinterp 函式,計算繪圖求值點 3 繪圖.2.hermite插值 編寫程式,繪製繪製多項式 p ...
插值法(拉格朗日插值和牛頓插值)
牛頓插值 defnewton interpolation x,y,init sum y 0 temp np.zeros len x len x 將第一行賦值 for i in range 0,len x temp i,0 y i temp sum 1.0 for i in range 1,len x...