MATLAB例题既demo

来源:互联网 发布:新网域名如何实名认证 编辑:程序博客网 时间:2024/05/01 23:18

1.3-2 输入一个行矩阵

 

1.3-3 可以分行输入一个行矩阵


1.3-4 MATLAB提示出现错误


1.3-5 用函数 zeros生成全零阵


1.3-6 用函数eye生成全零阵


1.3-7 矩阵的加减运算


1.3-8 两个矩阵的乘法运算


1.3-9 矩阵的数乘运算


1.3-10 向量的点积


1.3-11 向量的叉乘


1.3-12 向量的混合乘


1.3-13 左乘和右乘


1.3-14 矩阵的乘方


1.3-15 矩阵的转置


1.3-16 对奇异矩阵求逆时MATLAB给出的警告信息


1.3-17 用初等变换的方式求逆矩阵


1.3-18 以有理格式输出结果


demo1:稀疏矩阵的应用以及图形和矩阵之间的关系

图形是一组节点,它们之间具有指定的连接。一个例子是Buckminster Fuller测地圆顶(也是足球或碳-60分子)的连通图。在MATLAB中,测地圆顶图可以用BUCKY函数生成

%定义变量。
[B,V] =巴基;
H =稀疏(60,60);
k = 31:60;
H(k,k)= B(k,k);
%可视化变量。
gplot(B-H,V,'b-');
等一下
gplot(H,V,'r-');
拖延
轴关闭相等


可以通过其邻接矩阵来表示图。为了构造邻接矩阵,节点被编号为1至N.然后,如果节点i连接到节点j,则矩阵的元素(i,j)被设置为1,否则为0 。

%定义矩阵A.
A = [0 1 1 0; 1 0 0 1; 1 0 0 1; 0 1 1 0];
%绘制显示连接的节点的图片。
cla
子图(1,2,1);
gplot(A,[0,1; 11; 0 0; 10],'.-');
text([ - 0.2,1.2 -0.2,1.2],[1.2,1.2,-.2,-.2],('1234')',...
     'HorizontalAlignment','center')
轴([ - 1 2 -1 2],'off')
%绘制显示邻接矩阵的图片。
子图(1,2,2);
xtemp = repmat(1:4,1,4);
ytemp = reshape(repmat(1:4,4,1),16,1)';
text(xtemp-.5,ytemp-.5,char('0'+ A(:)),'HorizontalAlignment','center');
线[[25 0 0 .25 NaN 3.75 4 4 3.75],[0 0 4 4 NaN 0 0 4 4])
轴关闭


这里是巴基球一个半球中的节点,由polygon.subplot(1,1,1)编号的多边形。

子图(1,1,1);
gplot(B(1:30,1:30),V(1:30,:),'b-');
对于j = 1:30,
     文本(V(j,1),V(j,2),int2str(j),'FontSize',10);
结束
轴关闭相等


为了可视化该半球的邻接矩阵,我们使用SPY函数绘制非零元素的轮廓。注意矩阵是对称的,因为如果节点i连接到节点j,则节点j连接到节点i。

间谍(B(1:30,1:30))
title('spy(B(1:30,1:30))')


现在我们通过将一个半球的编号反映到另一个半球中,将我们的编号方案扩展到整个图形。

[B,V] =巴基;
H =稀疏(60,60);
k = 31:60;
H(k,k)= B(k,k);
gplot(B-H,V,'b-');
等一下
gplot(H,V,'r-');
对于j = 31:60
     文本(V(j,1),V(j,2),int2str(j),...
         'FontSize',10,'HorizontalAlignment','center');
结束
拖延
轴关闭相等


最后,这里是一个SPY图的最终稀疏矩阵.

间谍(B)
title('spy(B)')


在许多有用的图中,每个节点仅连接到几个其他节点。结果,邻接矩阵每行仅包含几个非零条目。本示例显示了SPARSE矩阵在handy.gplot(B-H,V,'b-')中的一个位置。

gplot(B-H,V,'b-');
轴关闭相等
等一下
gplot(H,V,'r-');
拖延




demo2 1900年到2000年的美国人口普查数据。

% 时间间隔
t =(1900:10:2000)';
%人口
p = [75.995 91.972 105.711 123.203 131.669 ...
      150.697 179.323 203.212 226.505 249.633 281.422]';
%图
plot(t,p,'bo');
轴([1900 2020 0 400]);
标题('美国人口1900-2000');
('Millions');


你在2010年的人口估计是多少?
p =


   75.9950
   91.9720
  105.7110
  123.2030
  131.6690
  150.6970
  179.3230
  203.2120
  226.5050
  249.6330
  281.4220


让我们用t中的多项式拟合数据,并使用它外推到t = 2010。多项式中的系数是通过求解涉及11乘11 Vandermonde矩阵的线性方程组获得的,其中元素是缩放时间的幂,n(n),n(j),n(i,j)
s =(t-1950)/ 50;
A = zeros(n);
A(:,end)= 1;
对于j = n-1:-1:1,A(:,j)= s * A(:,j + 1)结束
通过求解涉及Vandermonde矩阵的最后d + 1列的方程的线性系统,获得适合数据p的度为d的多项式的系数c:A(:nd:n)* c - = pIf d小于10,有比未知数更多的方程,最小二乘解是适当的。如果d等于10,则可以精确求解方程,并且多项式实际内插数据。在任一情况下,系统都用MATLAB的反斜杠运算符求解。这里是立方fit.c = A(:,n-3:n)\ p的系数
c =


    1.2629
   23.7261
  100.3659
  155.9043


现在我们从1900年至2010年每年评估多项式,并绘制结果.v =(1900:2020)';
x =(v-1950)/ 50;
w =(2010-1950)/ 50;
y = polyval(c,x);
z = polyval(c,w);
等一下
plot(v,y,'k-');
plot(2010,z,'ks');
text(2010,z + 15,num2str(z));
拖延


将立方拟合与四次方拟合比较。 注意,外推点是非常不同的c = A(:,n-4:n)\ p;
y = polyval(c,x);
z = polyval(c,w);
等一下
plot(v,y,'k-');
plot(2010,z,'ks');
text(2010,z-15,num2str(z));
拖延


随着度的增加,外推变得更加不稳定
plot(t,p,'bo'); 等一下; 轴([1900 2020 0 400]);
colors = hsv(8); labels = {'data'};
对于d = 1:8
    [Q,R] = qr(A(:,n-d:n));
    R = R(1:d + 1,:); Q = Q(:,1:d + 1);
    c = R \(Q'* p); %与c = A(:,n-d:n)\ p相同;
    y = polyval(c,x);
    z = polyval(c,11);
    plot(v,y,'color',colors(d,:));
    标签{end + 1} = ['degree ='int2str(d)];
结束
图例(标签,2)


1 0
原创粉丝点击