
(*平均取得100個樣本點*)
data=Table[Sin[x+y],{x,0,Pi,Pi/10},{y,0,Pi,Pi/10}];
(*擬合函數,並將函數定義為f[x,y]*)
f=ListInterpolation[data,{{0,Pi},{0,Pi}}]
(*繪圖真實函數*)
Plot3D[Sin[x+y],{x,0,Pi},{y,0,Pi}]

Plot3D[f[x,y],{x,0,Pi},{y,0,Pi}]

pt=Flatten@{#,f@@#}&/@RandomReal[{0,Pi},{100,2}]
(*繪圖真實函數與隨機取得之樣本點*)
Show[Plot3D[Sin[x+y],{x,0,Pi},{y,0,Pi}],
Graphics3D[{Red,PointSize[0.025],Point[pt]}]]
Ex2.
data=Import["~/Downloads/afm_06_mesh.txt","Data"][[2;;301]][[All,{2,3,4}]];
f=Interpolation[{{#[[1]],#[[2]]},#[[3]]}&/@data,InterpolationOrder->1];
ListPlot3D[data]
Show[Plot3D[f[x,y],{x,Min@data[[All,1]],Max@data[[All,1]]},{y,Min@data[[All,2]],Max@data[[All,2]]}],
Graphics3D[{Red,PointSize[0.02],Point[data]}]]
range=Table[#@data[[All,z]]&/@{Min,Max},{z,2}];
testpoint=Quiet@Flatten[{#,f@@#}]&/@(RandomReal[range[[#]]]&/@{1,2}&/@Range[100]);
Show[Plot3D[f[x,y],{x,Min@data[[All,1]],Max@data[[All,1]]},
{y,Min@data[[All,2]],Max@data[[All,2]]}],
Graphics3D[{Red,PointSize[0.02],Point[testpoint]}]]
讀者回應 ( 0 意見 )
訂閱發佈留言 (Atom)
發佈留言
Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.
如果這篇文章對你有幫助,那請留個訊息給我~