MATLAB一維插值和二維插值 比較
插值問題描述:已知一個函式上的若干點,但函式具體表示式未知,現在要利用已知的若干點求在其他點處的函式值,這個過程就是插值的過程.
1.一維插值
一維插值就是給出y=f(x)上的點(x1,y1),(x2,y2),…,(xn,yn),由此求出y=f(x)在點xa處的值ya的值.
實現一維插值使用interp1命令,使用引數為interp1(x,y,xa,’method’) ,其中x和y是已知點對應橫縱座標,xa為代求值的橫座標,method引數代表插值型別,引數可以選擇的選項如下表,若預設則為linear.
method 含義 特 點
linear 線性插值 快,精度不高
cubic 三次多項式插值 較慢,精度高,平滑
spline 三次樣條插值 最慢,精度高,最平滑
例如,求y=xln(x)的插值問題,程式碼如下
%為了說明插值問題,根據已知函式構造一組插值點
%而實際問題中,只有這些點,函式是未知的
x = 0.2:0.4:2;
y = x.*log(x);%構造一組插值點
plot(x,y,'o');
xa =0.2:0.1:2;%d代求y值得x值點
ya = interp1(x,y,xa,'cubic');
hold on;
plot(xa,ya,'b-');
box on;
hold on;
fplot(@(x)x*log(x),[0.2,2]);
legend('插值點','三次多項式插值','原圖');%圖例
2.二維插值
二維插值就是給出z=f(x,y)上的點(x1,y1,z1),…,(xn,yn,zn),由此求出在(xa,ya)處求出za的值.實現一維插值使用interp2命令,使用引數為interp1(x,y,z,xa,ya,’method’),引數含義與interp1類似.
例如,求z = exp(-x^2-y^2)的空間插值問題,程式碼如下
x = linspace(-2,2,10);
y = linspace(-2,2,10);
[X,Y] = meshgrid(x,y);
Z = exp(-X.^2 - Y.^2);
subplot(1,2,1);
surf(X,Y,Z);
title('插值點曲圖');
hold on;
xa = linspace(-2,2,50);
ya = linspace(-2,2,50);
[Xa,Ya] = meshgrid(xa,ya);
Za = interp2(X,Y,Z,Xa,Ya,'cubic');
subplot(1,2,2);
surf(Xa,Ya,Za);
title('三次插值曲面');
轉載自 https://blog.csdn.net/ten_sory/article/details/54429482
相關文章
- MATLAB插值Matlab
- 九種常見二維插值方法及雙線性插值的理解
- 介紹一種二維線性插值計算方法
- 二、插值操作
- 牛頓插值 C++ 和 Matlab實現C++Matlab
- SCSS #{} 插值CSS
- 實驗二 插值方法(android)Android
- 【java】【插值查詢】Java
- 求插值係數
- 插值技術研究
- 數值計算 插值與擬合
- c#-string 插值C#
- B樣條插值加速
- 拉格朗日插值
- 【Android 動畫】動畫詳解之插值器(二)Android動畫
- 影象放大並進行BiCubic插值 Matlab/C++程式碼MatlabC++
- 插值查詢演算法演算法
- Swift 5 字串插值之美Swift字串
- Swift 5 字串插值-簡介Swift字串
- 插值演算法總結演算法
- CoffeeScript攻略3.8:字串插值字串
- 2.Vue插值表示式Vue
- Vue 模板語法第一式 —— 插值Vue
- 基於Matlab的BP神經網路分段插值模擬Matlab神經網路
- scala實現球面插值(Slerp)
- 插值查詢的簡單理解
- MemoryCache 的原生插值方式淺談
- vue.js插值與表示式Vue.js
- 影象縮放--插值法(opencv,原理)OpenCV
- 連續插值,用forall實現。
- Qt自定義動畫插值函式QT動畫函式
- 圖形影象處理-之-高質量的快速的影象縮放 中篇 二次線性插值和三次卷積插值卷積
- 數值分析Python實現系列—— 一、拉格朗日插值法Python
- 查詢演算法__插值查詢演算法
- 常用演算法 插值演算法演算法
- webgl centroid質心插值的一點理解Web
- 層次分析法 插值與擬合
- 拉格朗日插值學習筆記筆記