matlab实验报告

实验一 MATLAB的基本使用方法

一、实验目的和要求:

通过完成实验一,掌握MATLAB的基本使用方法。

二、实验内容:

1.练习数据和符号输入法,将前面的命令在命令窗口中执行通过。

1)>>5
2)>>x=[1  2   3   4]
3)>>g=[1   2   3   4];h=[4   3   2   1]
>>s1=g+h,  s2=g.*h,   s3=g.^h
   S1=
       5   5   5   5
   S2=
       4   6   6   4
   S3=
       1   8   9   4

这里写图片描述

2.输入A=[715;256;315],B=[111;222;333],在命令窗口中执行下列表达式,掌握其含义。

 源程序:>>A=[7 1 5;2 5 6;3 1 5];
          B=[1 1 1;2 2 2;3 3 3];
          >>A(2,3)            
          >>A(:,2)
          >>A(:,1:2:3)       % A数组中第一列和第三列            
           >>A(3,:)          %A数组中第三行             
           >>A(:,3).*B(:,2)    %A中第三列和B中第二列相乘
           >> A(:,3)*B(2,:)   %A中第三列和B中第二行相乘竖着排,形成3*3矩阵               
           >>A*B            %A 与B数组相乘            
           >>A.*B
        >>A^2           
           >>A.^2          % A中所有数平方          
           >>B/A            %B矩阵除以A矩阵          
           >>B./A           % B中数除以A中对应位置数

这里写图片描述

这里写图片描述

这里写图片描述

3.输入C=.1:2:20,则C(i)表示什么?其中i=1,2,3…10;

源程序:>>c=1:2:20;
        >>c(1)
        >>c(10)

这里写图片描述

实验二 MATLAB的数值计算

一、实验目的和要求:

通过完成实验二,掌握MATLAB的数值计算。

二、实验内容:

1.用二分法计算多项式方程X^3-2X-5=0在[0,3]内的一个根。

a=0;fa=-inf;
        b=3;fb=inf;
        while  b-a>eps*b
              x=(a+b)/2;
              fx=x^3-2*x-5;
            if sign(fx)==sign(fa)
              a=x;fa=fx
            else
              b=x;fb=fx
            end
        end
        x
运行结果:
          x=2.0945515148154233

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

2.矩形的创建,加减运算

A=[1,1,1;1,2,3;1,3,6]
B=[8,1,6;3,5,7;4,9,2]
A+B=A+B
A-B=A-B
在Matlab命令窗口建入,则
    结果显示    A+B=
                     9   2    7
                     4   7   10
                     5   12   8
                A-B=
                     -7   0   -5
                     -2   -3   -4 
                     -3   -6   4

这里写图片描述

3.混合积

 eg. 计算向量a=(1,2,3),b=(4,5,6)和c=(-3,6,-3)的混合积a.(b*c)
           在MATLAB编辑器中建立M文件
           a=[1   2   3];b=[4   5   6];c=[-3   6   -3]
           x=dot(a,cross(b,c))

这里写图片描述

这里写图片描述

4.符号矩阵的四则运算

  eg.   A=sym(‘[1/x,1/(x+1); 1/(x+2), 1/(x+3)]’)
          B=sym(‘[x,1;x+2,0]’);
         C=B-A
         D=A\B
     则显示
         C=
         x-1/x      1-1/(x+1)
         x+2-1/(x+2)     -1/(x+3)
         D=
         -6*x-2*x^3-7*x^2         1/2*x^3+x+3/2*x^2
         6+2*x^3+10*x^2+14*x    -2*x^2-3/2*x-1/2*x^3

这里写图片描述

5.向量组的最大无关组


    Eg.
      a1=(1,-2,2,3),a2=(-2,4,-1,3),a3=(-1,2,0,-3),a4=(0,6,2,3),a5=(2,6,3,4)的一个最大无关组         在MATLAB编辑器中建立M文件
a1=[1   -2   2   3]’;
a2=[-2   4   -1  3]’;
a3=[-1   2   0   3]’;
a4=[0   6   2    3]’;
a5=[2   -6   3   4]’;
A=[a1   a2   a3   a4   a5]
format rat    %以有理数格式输出
B=rref(A)    %求A的行最简形
运行后的结果为
A=
1   -2   -1   0   2
-2   4   2    6   -6
-2   -1   0   2   3
3    3    3   3   4
B=
1   0   1/3   0   16/9
0   1   2/3   0   -1/9
0   0    0    1   -1/3
0   0    0    0    0 

从中可以得到;向量a1 a2 a4为其中最大无关组

这里写图片描述

实验三 MATLAB的符号计算

一、实验目的和要求:

通过完成实验三,掌握MATLAB的符号计算。

二、实验内容:

1.使用sym函数定义符号变量和符号表达式

使用sym函数定义符号表达式 ax^2+bx+c
     >>a=sym(‘a’)
     >>b= sym(‘b’)
     >>c= sym(‘c’)
     >>x=sym(‘x’)
     >>f=a*x^2+b*x+c
       f=
          a*x^2+b*x+c

这里写图片描述

2.findsym函数用于寻找符号变量

>>syms  a  alpha   b   x1 y
>>findsym  (alpha+a+b)
  ans=
      a,alpha,b
>>findsym(cos(a’pha)*b*x1+14*y,2)
  ans=
      x’,y
>>findsym(y*(4+3*i)+b*j)
  ans=
      y
>>

这里写图片描述

3.符号表达式的四则运算

例: >>syms x  y  a  b
     >>fun1=sin(x)+cos(y)
       fun1=
            sin(x)+cos(y)
     >>fun=a+b
       fun=
           a+b
   >>fun1+fun2
     ans=sin(x)+cos(y)+a+b
   >>fun1*fun2
      ans=
           (sin(x)+cos(y)*(a+b)

这里写图片描述

4.由数值矩阵转换为符号矩阵

   例:>>u=[19  1   2   4;6   1   7   8;9   2   16   3;3   4   3   20]
         u=
            19   1   2   4
             6   1   7   8
             9   2   16  3
             3   43   2  0
      >>s=sym(u)
        s=
           [  19  ,  1   ,   2   ,   4]
           [  6   ,  1   ,   7   ,   8]
           [  9   ,  2   ,   16  ,   3]
           [  3   ,  43  ,   2   ,   0]  

这里写图片描述

5.jacobian函数的使用

   例: >>sym s  x  y  z
        >>a=[x^2+x*y;sin(x)*cos(y)]
          a=
            [x^2+x*y]
            [sin(x)+cos(y)]
        >>jacobian (a,[x,y])          
              [2*x+y,x]
              [cos(x)*cos(y),-sin(x)*sin(y)]

这里写图片描述

实验四 MATLAB的程序设计

一、实验目的和要求:

通过完成实验四,掌握MATLAB的程序设计。

二、实验内容:

1.函数

例:function  isleapyear(year)
sign=0;
if  rem(year,4)==0
     sign=sign+1;
  end
if rem(year,100)==0
      sign=sign-1;
end
if rem(year,400)==0
      sign=sign+1;
end
if sign>=1
    fprintf(‘%4d year is a leap year.\n’,year)
  else 
     fprintf(‘%4d year is not a leap year.\n’,year)
end
>>y1=1000;
>>y2=2000;
>>y3=1996;
>>y4=3000;
>>isleapyear(y1)
1000 year is not a leap year
>>isleapyear(y2)
2000 year is  a leap year
>>isleapyear(y3)
1996 year is a leap year
>>isleapyear(y4)
3000 year is not a leap year

这里写图片描述

这里写图片描述

2.将百分数的分数转化为五级制分数 90~100:优 80~90:良70~79:中 60~69:及格 59以下为不及格

>>function f=change(score)
a=floor (score/10)
switch a
case {10,9}
f=’该成绩为优’
case 8
f=’该成绩为良’
case 7
f=’该成绩为中’
case 6
f=’该成绩为及格’
otherwise
f=’该成绩为不及格’
end

运行结果:
>>b=88
b=
88
>>change(b)
a=
8
f=
该成绩为良

这里写图片描述

这里写图片描述

3.编写三个子函数和一个主函数,实现下列函数在点x=0.5,2.5,6.5处的计算

>>function r=zhs(x)
            if   x<=2/3
                 r=zihanshu1(x)
            else if 2/3<x&x<=6
                 r=zihanshu2(x) 
            else  r=zihanshu3(x)
            end
         function r1=zihanshu1(x)
                 r1=2*x-3
         function r2=zihanshu2(x)
                 r2=(sin(x)+cos(x)^2)/(1+x^2)
         function r3=zihanshu3(x)
                 r3=(x^3+52/(tan(x)+6)
        运行结果:
                 zhs(0.5)
                  r1=-2
                  r=-2
                 ans=
                      -2
                  zhs(2.5)
                  r2=0.1711
                  r=0.1711
                  ans=
                      0.1711
                  zhs(6.5)
                  r3=44.9538
                  r=44.9538
                  ans=
                       44.9538 

这里写图片描述

这里写图片描述

这里写图片描述

实验五 MATLAB 计算结果的可视化

一、实验目的和要求:

通过完成实验一,掌握MATLAB的基本绘图方法。

二、实验内容:

1.绘制二维进线图

例:>>x=0:0.11:10;
>>y1=sin(x);
>>y2=cos(x-2.5);
>>y3=tan(x+1.5)
>>plot(x,y1,x,y2,x,y3)

这里写图片描述

2.文本标注和交互式文本标注

例:>>x=linspace(-3,5,100);
   >>y=cos(x);
   >>z=sin(x);
   >>plot(x,y,x,z);
   >>title('一条正弦曲线和一条余弦曲线’)
   >>xlabel('x的取值范围’)
   >>ylabel('y和z的值’)

这里写图片描述

这里写图片描述

3.条形图和面积图

例 >>y=[1  2  3  4  5  6  7  8  9  10]
   >>y
     y=
1  2  3  4  5  6  7  8  9  10
>>bar(y) 

这里写图片描述

4.给图形添加标题

>> x=0:.1:2;
>> y1=sin(x);
>> y2=sin(x-0.25);
>> y3=sin(x-0.5);
>> plot(x,y1,'-.b',x,y2,'--r*',x,y3,'-.gh')

这里写图片描述

这里写图片描述

5.view函数的使用

>>[x,y]=meshgrid([-5:0.2:5]);
>>z=exp(0.5*(x.^2-y.^2));
>>surf(x,y,z)

>>view(3060

这里写图片描述

这里写图片描述

6.编写三个子函数和一个主函数,实现下列函数在点x=0.5, 2.5, 6.5处的计算

      解:
                   function  r=mf(x)
                   if   x<=2/3
                          r=zihanshu1(x)
                   elseif   2/3<x&x<=6
                           r=zihanshu2(x)
                   else
                         r=zihanshu3(x)
                   end

                   function  r1=zihanshu1(x)
                   r1=2*x-3
                   function  r2=zihanshu2(x)
                     r2=(sin(x)+cos(x)^2)/(1+x^2)

                   function  r3=zihanshu3(x)
                     r3=(x^3+5)/(tan(x)+6)
               >>mf(0.5)
                     ans=
-2
               >>mf(2.5)
                     ans=
                           0.1711
               >>mf(6.5)
                     ans=
44.9538

这里写图片描述

这里写图片描述

这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章