MATLAB练习例子六(多项式和插值)
返回
多项式和插值
》 A = [9 4; 6 8; 2 7]
A =
9 4
6 8
2 7
》 [U,S,V] = svd(A)
U =
0.6105 -0.7174 0.3355
0.6646 0.2336 -0.7098
0.4308 0.6563 0.6194
S =
14.9359 0
0 5.1883
0 0
V =
0.6925 -0.7214
0.7214 0.6925
》 [U,S,V] = svd(A,0)
U =
0.6105 -0.7174
0.6646 0.2336
0.4308 0.6563
S =
14.9359 0
0 5.1883
V =
0.6925 -0.7214
0.7214 0.6925
》 p = [1 0 -2 -5]
p =
1 0 -2 -5
》 r = roots(p)
r =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
》 p2 = poly(r)
p2 =
1.0000 -0.0000 -2.0000 -5.0000
》 A = [1.2 3 -0.9; 5 1.75 6; 9 0 1];
》 poly(A)
ans =
1.0000 -3.9500 -1.8500 -163.2750
》 polyval(p,5)
ans =
110
》 X = [2 4 5; -1 0 3; 7 1 5];
》 Y = polyvalum(p,X)
??? 'polyvalum' は未定義の関数、または変数です.
》 Y = polyvalm(p,X)
Y =
377 179 439
111 81 136
490 253 639
》
卷积,反卷积
》 a = [1 2 3];
》 b = [4 5 6];
》 c = conv(a,b)
c =
4 13 28 27 18
》 [q,r] = deconv(c,a)
q =
4 5 6
r =
0 0 0 0 0
多项式导数
》 p = [1 0 -2 -5];
》 q = polyder(p)
q =
3 0 -2
》 a=[1 3 5];
》 b=[2 4 6];
》 c = polyder(a,b)
c =
8 30 56 38
》 [q,d] = polyder(a,b)
q =
-2 -8 -2
d =
4 16 40 48 36
曲线拟合
》 x = [1 2 3 4 5]; y=[5.5 43.1 128 290.7 498.4];
》 p = polyfit(x,y,3)
p =
-0.1917 31.5821 -60.3262 35.3400
》 x2=1:.1:5;
》 y2=polyval(p,x2);
》 plot(x,y,'o',x2,y2)
》 grid on
》
部分分式展开
》 b = [-4 8];
》 a = [1 6 8];
》 [r,p,k]=residue(b,a)
r =
-12
8
p =
-4
-2
k =
[]
》 [b2,a2] = residue(r,p,k)
b2 =
-4 8
a2 =
1 6 8
-
比较不同的插值方法
》 [x,y] = meshgrid(-3:1:3);
》 z = peaks(x,y);
》 surf(x,y,z)
》 [xi,yi] = meshgrid(-3:0.25:3);
》 zi1 = interp2(x,y,z,xi,yi,'nearest');
》 surf(xi,yi,zi1)
》 zi2 = interp2(x,y,z,xi,yi,'bilinear');
》 surf(xi,yi,zi2)
》 zi3 = interp2(x,y,z,xi,yi,'bicubic');
》 surf(xi,yi,zi3)
多维数据
》 x1 = -2:0.2:2;
》 x2 = -2:0.25:2;
》 x3 = -2:0.16:2;
》 [X1,X2,X3] = ndgrid(x1,x2,x3);
》 z = X2.*exp(-X1.^2 - X2^2 - X3.^2);
??? エラー: ==> ^
引数引数は2-Dである必要があります.
》 z = X2.*exp(-X1.^2 - X2.^2 - X3.^2);
》 slice(X2,X1,X3,z,[-1.2.8 2],2,[-2 0.2])
》
凸形外壳
》 load seamount
》 plot(x,y,'.','markersize',10)
》 k = convhull(x,y);
》 hold on, plot(x(k),y(k)), hold off
》 grid on
》
德朗奈测量(Delaunay triangulation)
》 load seamount
》 plot(x,y,'.','markerisize',12)
??? エラー: ==> plot
Invalid line property: 'markerisize'.
》 plot(x,y,'.','markersize',12)
》 xlabel('Longitude'),ylabel('Latitude')
》 grid on
》 tri=delaunay(x,y);
》 hold on, trimesh(tri,x,y,z), hold off
》 xlabel('Longitude'); ylabel('Latitude')
》 [xi,yi] = meshgrid(210.8:.01:211.8,-48.5:.01:-47.9);
》 zi=griddata(x,y,z,xi,yi,'cubic');
》 [c,h] = contour(xi,yi,zi,'c-'); clabel(c,h)
》 load seamount
》 voronoi(x,y)
》 grid on
棋盘形布置
》 d = [-1 1];
》 [x,y,z] = meshgrid(d,d,d);
》 X = [x(:),y(:),z(:)];
》 C = convhulln(X)
??? 'convhulln' は未定義の関数、または変数です.
》 X(9,:) = [0 0 0];
》 T =delaunayn(X)
??? 'delaunayn' は未定義の関数、または変数です.
返回