MATLAB 基本计算1.1熟悉Matlab 的集成环境,掌握MATLAB 的基本运算函数并能够编写简单的应用程序。
1.2熟悉以下基本数学运算函数的用法abs(x):纯量的绝对值或向量的长度 sqrt(x):开平方 real(x):复数x 的实部 imag(x):复数x 的虚 部 conj(x):复数x 的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x 化为分数表示 rats(x):将实数x 化为多项分数展开 sign(x):符号函数 (Signum function) mod(x): 求余。
1.3 上机练习题 1、 设a=5.76, b=7.811, 计算)lg(b a e ba ++a=5.76;b=7.811;c=exp(a+b)/log10(a+b) c= 6.9140e+0052、已知三角形的三边x=17,y=27,z=37;求三角形的面积。
x=17; y=27; z=37; p=(x+y+z)/2; s=sqrt(p*(p-x)*(p-y)*(p-z)) p=212.06183、首先将题1的运算结果保存到文件MyVar中,再将题2的运算结果保存到该文件中。
MATLAB矩阵运算2.1实验要求:熟悉矩阵的生成,掌握与矩阵运算相关的函数。
熟悉多项式表达方法及相关计算。
2.2实验内容A 矩阵生成练习不同的方式生成矩阵:直接法冒号法linspace矩阵函数: eye() , rand(), zeros(), ones(), hadamard()等B 矩阵加减与数乘运算先建立两个同型(行数列数都相同)的矩阵,命令和结果如下:>> A=[1 1 1;-2 0 9;3 4 5]A =1 1 1 -2 0 93 4 5>> B=[2 3 1;-8 99 1;3 1 1]B =2 3 1-8 99 13 1 1上述两个矩阵的和、差、数乘、转置运算的命令和结果依次显示如下:>> C=A+BC =3 4 2-10 99 106 5 6>> D=A-BD =-1 -2 06 -99 80 3 4>> E=5*A+(-1)*BE =3 2 4-2 -99 4412 19 24>> W=A'W =1 -2 31 0 41 9 5说明:只有同型的矩阵才能进行加减。
转置运算只是在矩阵变量的右上角加上一个单引号,有时会被忽略,希望使用的同学注意。
C 矩阵的乘法矩阵的乘法对相乘的两个矩阵的要求是:第一个矩阵的列数与第二个矩阵的行数相等。
下面我们通过实例来看看具体的操作。
先建立两个矩阵,然后再计算它们的乘积,命令和结果如下:>> A1=[1 2 3 4;0 9 2 1]A1 =1 2 3 4 0 9 2 1 >> B1=[1 2;3 4;5 6;7 8] B1 =1 23 45 67 8>> P1=A1*B1P1 =50 6044 56>> P2=B1*A1P2 =1 20 7 6 3 42 17 16 5 64 27 26 7 86 37 36D 简单应用验证如下两条运算律:(AB)C=A(BC) (AB)T=B T A T下面是验证的基本命令和结果:>> A=[1 2 3;3 4 5;2 2 2]A =1 2 33 4 52 2 2>> B=[-1 -2 -3;0 -10 9;1 23]B =-1 -2 -30 -10 91 2 3>> C=[1 1 -2;3 2 1;0 9 8]C =1 1 -23 2 10 9 8>> (A*B)*Cans =-46 186 172-106 308 296-60 122 124>> A*(B*C)ans =-46 186 172-106 308 296-60 122 124>> (A*B)'ans =2 2 0-16 -36 -2024 42 18>> B'*A'ans =2 2 0-16 -36 -2024 42 18由此可见作为验证性的工具,Matlab是很方便的。
我们还可进一步看到:>> A*Bans = 2 -16 242 -36 420 -20 18>> B*Aans =-13 -16 -19-12 -22 -3213 16 19即矩阵的乘法一般不满足交换律。
E 矩阵的操作1、随机生成一个矩阵,读取或改变某一个、某一行、某一列的数值。
2、生成一个5阶的随机方阵,使用以下函数对其操作,并观测结果:fliplr(A) flipud(A) flipdim (A,m)rot90 (A,k)tiag(A,k)tril(A,k) triu(A,k) 2.3练习题1、已知A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--111111111,B=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--150421321,求3AB-2A 及A T BA=[1 1 1;1 1 -1;1 -1 1]; B=[1 2 3;-1 -2 4;0 5 1]; C=3*A*B-2*B D=A'*B2、求解一元六次方程018741233456=+++++x x x x x 的根。
p=[3 12 4 7 0 8 1]; X=roots(p) 3、求多项式18741233456+++++x x x x x 被)5)(3(3x x x +-除后的结果。
x=[3 12 4 7 8 0 1]; y=[1 -3 5 -15 1]; deconv(x,y)实验三 MATLAB 符号计算 3.1实验要求:熟悉基本符号计算的命令,符号微积分,符号方程组的求解。
掌握符号对象定义的方法,掌握符号表达式的运算及矩阵运算,符号导数和极限的求法,符号函数积分和定积分的求法,符号方程组的求法。
3.2实验内容:用相关的符号计算命令,求解以下各题 1、将行矩阵[1 0 5 7 9 2]表示成符号多项式。
f=('x^5+5*x^3+7*x^2+9*x+2') 2、将数12345678901234567890 进行互质分解。
factor(sym('12345678901234567890'))3、求下列微分方程组(0)1,(1)0x xx λλλ⎧=-⎪=-⎨⎪==⎩[x,y]=dsolve('Dy=-x,Dx=-y ','x(0)=1,y(1)=0')4、 求下列微分方程组12221210xx xλλλλ==-== 边界条件:1212(0)1(0)1(2)0(2)0x x x x ====[x1,x2,y1,y2]=dsolve('Dx1=x2,Dx2=-y2,Dy1=0,Dy2=y1','x1(0)=1,x2(0)=1,x1(2)=0,x2(2)=0')实验四 计算结果可视化4.1 实验要求:熟悉二维和三维绘图命令,图形的修饰与控制,特殊图形的绘制。
要求熟练地掌握MATLAB 中各种绘图函数,熟练地绘制各种通用与特殊图形。
4.2实验内容:1 绘制单位圆,要求所绘的图形为方型,单位圆的颜色统一。
xsqrt(1-x.2)2 将实验3中第三题的结果,用图形化的方式表示出来。
t=0:pi/100:2*pi; x=sin(t); y=cos(t);plot(x,y)3、绘制椭球x^2/16+y^2/25+z^2/9=1的图形。
[x,y,z]=ellipsoid(0,0,0, 4,5,3);surf(x,y,z)4、在一幅图形中建立4个子图,分别绘制正弦、余弦、正切和余切函数的图形。
要求曲线的式样分别为:实线/五角星节点/线宽1.2/兰色;虚线/菱形节点/线宽1.5/红色;点划线/三角形节点/线宽1.8/砖红;点线/六边形节点/线宽2/青绿色。
x1=0:pi/15:2*pi;x2=-pi/3:pi/10:pi/3;y1=sin(x1);y2=cos(x1);y3=tan(x2);y4=cot(x2);subplot(2,2,1);plot(x1,y1,'-pb','linewi dth',1.2);subplot(2,2,2);plot(x1,y2,'--dr','linew idth',1.5);subplot(2,2,3);plot(x2,y3,'-.^r','linew idth',1.8);subplot(2,2,4);plot(x2,y4,':hc','linewidth',2);实验五 MATLAB语言编程5.1 实验要求:熟练掌握matlab的几种控制结构,和命令文件、函数文件的编写。
5.2 实验内容:编程,使程序能够判断10000以内的整数是否满足以下条件:1 该数的各位数字之和为偶数,2 该数为素数x=input('x=');if(x<10000&x>0)a1=mod(x,10);y=(x-a1)/10;a2=mod(y,10);y1=(y-a2)/10;a3=mod(y1,10);y2=(y1-a3)/10;a4=mod(y2,10);y3=(y2-a4)/10;endif mod(a1+a2+a3+a4,2)==0 fprintf('yes')elsefprintf('no')endfor i=2:xif(mod(x,i))>0continueelse fprintf('bushi'); break;endend实验六 MATLAB 动画6.1实验目的了解图形句柄的特点,掌握线性图形句柄的定义方法,能够利用先性图形句柄制作动画。
6.2实验内容设置一个动点沿以下曲线循环运动。
曲线的方程为:10*sin()10*cos()x ty tz t=⎧⎪=⎨⎪=⎩z=0:pi/1000:2*pi;x=10*sin(z);y=10*cos(z);plot3(x,y,z);n=length(z);i=1;h=line('linestyle','.','mark ersize',50,'erasemode','xor' );set(h,'xdata',x(i),'ydata',y (i),'zdata',z(i));while 1set(h,'xdata',x(i),'ydata',y (i),'zdata',z(i));drawnow;i=i+1;if i>ni=1;endend实验七用户图形界面设计目的掌握利用GUI开发环境设计图形用户界面内容设计一个GUI,其上有一个axes,两个button,三个editbox,可以显示日期,当按下其中一个button,在axes按另一个关闭GUI.z=0:pi/1000:2*pi;x=10*sin(z);y=10*cos(z);plot3(x,y,z);n=length(z);i=1;h=line('linestyle','.','markersize',50,'erasemode','xor') ;set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i));while 1a=fix(clock);set(handles.edit1,'string',a(1));set(handles.edit2,'string',a(2));set(handles.edit3,'string',a(3));set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i));drawnow;i=i+1;if i>ni=1;endend实验八SIMULINK使用目的熟悉SIMULINK基本模块的使用,能够用podersystem模块进行简单的电路仿真,内容建立model文件,对电路进行仿真,将负载上的电压波形用图形表示出来。