1、對青島西海岸唐島灣公園沿海線選取取樣點;
2、建立計算青島西海岸唐島灣公園沿海長度的模型,並實現。
matlab匯入唐島灣公園沿海地圖並取樣
三次樣條插值求取樣點擬合函式
插值函式求一類曲線積分
換算比例尺,求得實際長度
匯入並取樣
a=imread
('c:\users\aierxuan\desktop\唐島灣公園_副本.png');
image
(a);
[x1,y1]
=ginput;
image
(a);
[x2,y2]
=ginput;
三次樣條插值
a=x1(1
):2:
x1(end);b=
x2(1)
:2:x2
(end)
;z1=
spline
(x1,y1)
;z2=
spline
(x2,y2)
;f1=
ppval
(z1,a)
;f2=
ppval
(z2,b)
;列印取樣圖
plot
(x1,y1,
'b.'
,x2,y2,
'r.'
,a,f1,
'-b'
,b,f2,
'-r'
,'linewidth'
,1.5
,'markersize',15
);title
('取樣點-擬合曲線圖');
legend
('曲線1取樣點'
,'曲線2取樣點'
,'擬合曲線1'
,'擬合曲線2');
求區段點和函式插值係數
插值函式s在各區段上滿足
node1=z1.breaks;
%返回各區段的的端點x值
node2=z2.breaks;
xs1=z1.coefs;
%返回的是插值函式s各區段的係數d c b a
xs2=z2.coefs;
積分求長度
l1=0
;l2=0;
m=size
(node1);n=
size
(node2)
; syms x;
l1=0;
l2=0;
for i=1:
m(2)
-1y=
xs1(i,1)
*(x-
node1
(i))^3
+xs1
(i,2)*
(x-node1
(i))^2
+xs1
(i,3)*
(x-node1
(i))
+xs1
(i,4);
f=sqrt(1
+diff
(y)*
diff
(y))
; l1=l1+
double
(int
(f,node1
(i),
node1
(i+1))
);endfor i=1:
n(2)
-1y=
xs2(i,1)
*(x-
node2
(i))^3
+xs2
(i,2)*
(x-node2
(i))^2
+xs2
(i,3)*
(x-node2
(i))
+xs2
(i,4);
f=sqrt(1
+diff
(y)*
diff
(y))
; l2=l2+
double
(int
(f,node2
(i),
node2
(i+1))
);endl=l1+l2
比例尺計算
image
(a);
[v1,v2]
=ginput
s=sqrt((
v1(1)
-v1(2
))^2
+(v2(
1)-v2
(2))
^2)實際長度
l=l/s*c;
三次樣條插值
條件 1 輸入 x y f x 0 leq i leq n 2 要求擬合的曲線 s x 滿足 對於任意的 1 leq i leq n 1 在 x 處一階二階導數連續,s x 也連續,且 s x f x s x f x 求解過程 設 s m 對於區間 x x s x 是 x x 上的線性函式,所以設 ...
三次樣條插值 c
include include include include using namespace std double zuigan double a,double b,double c,double f,int n 追趕法求線性方程組 for int i 0 ifor int i n 2 i 0 i...
三次樣條插值介紹
樣條插值是一種工業設計中常用的 得到平滑曲線的一種插值方法,三次樣條是其中用的較為廣泛的一種。樣條插值最初是用於函式擬合 對於平面上的離散點,進行函式擬合時,一種簡單粗暴的方法就是不光滑的直線來將離散的點相連,即我們通常所說的線性擬合。線性擬合會存在乙個問題,擬合出來的函式不夠 光滑 為了讓線條更加...