电气工程软件训练(三)——Matlab 作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

D1(
江苏大学
《电气工程软件训练三》课程设计报告
设计题目:MATLAB
专业班级:J电气1401
学生姓名:唐鹏
学生学号:4141127007
指导老师:
完成日期:
江苏大学京江学院
一MATLAB课程设计的目的和要求
1.MATLAB软件功能简介
MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks公司推向市场。

它是一种科学计算软件,专门以矩阵的形式处理数据。

MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。

MATLAB 软件包括五大通用功能,数值计算功能(Nemeric)、符号运算功能(Symbolic)、数据可视化功能(Graphic)、数字图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。

其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。

该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。

目前,Mathworks公司已推出30多个应用工具箱。

MATLAB在线性代数、矩阵分析、数值及优化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。

2.MATLAB课程设计的目的
本次课程设计主要是为了使学生了解MATLAB软件的基本知识,熟悉MATLAB的上机环境,掌握MATLAB数值运算、程序设计、二维/三维绘图、符号运算、Simulink仿真等相关知识,并初步具备将一般数学问题转化为对应的计算机进行处理的能力,以便为今后进一步的学习打下坚定基础。

二MATLAB课程内容
1 MATLAB语言基础
实验目的:基本掌握MATLAB 向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。

了解字符串的操作。

实验内容:
①创建以下矩阵:A为初值为1,终值为12,元素数目为6的行向量;
2436153227791235B ⎛⎫


= ⎪ ⎪
⎝⎭
;C 为B 的三次方矩阵;D 由B 和C 横向拼接并去除第一列、最后一列和第一行元素而成;E 由B 和C 纵向拼接而成;F 抽取E 的3~5行和第2~3列元素生成;G 由F 经变形为3×4的矩阵而得;H 由B 和C 数组相乘运算而成,同时将 H (1,1)和H (2,1)分别变为π的平方和立方,H (2,2)=arccos(2),H (3,3)= H (1,1)+ H (2,1)。

源程序:A=linspace(1,12,6)
B=[2,4,3,6;1,5,3,2;2,7,7,9;1,2,3,5]; C=B^3 D1=[B,C]; D=D1(2:4,2:7) E=[B;C] F=E(3:5,2:3) G=reshape(F,3,2) H=B*C
H(1,1)=pi^2; H(2,1)=pi^3; H(2,2)=acos(2); H(3,3)=H(1,1)+H(2,1)
运行结果:A = 1.0000 3.2000 5.4000 7.6000 9.8000 12.0000 C =292 938 873 1140 227 751 681 868 518 1675 1555 2021 227 724 681 895
D =5 3 2 227 751 681
7 7 9 518 1675 1555 2 3 5 227 724 681 E =2 4 3 6
1 5 3
2 2 7 7 9 1 2
3 5 292 938 873 1140 227 751 681 868 518 1675 1555 2021 227 72
4 681 89
5 F =7 7 2 3 938 873 G =7 7 2 3 938 873
H =4408 14249 13221 17185 3435 11166 10305 13333 7842 25374 23527 30558 3435 11085 10305 13414 H = 1.0e+004 *
0.0010 1.4249 1.3221 1.7185 0.0031 0 + 0.0001i 1.0305 1.3333 0.7842 2.5374 0.0041 3.0558 0.3435 1.1085 1.0305 1.3414 ② (1)用矩阵除法求下列方程组的解 x=[x 1;x 2;x 3];
⎪⎩

⎨⎧-=---=++-=++7
3847523436321321321x x x x x x x x x (2) 求矩阵的秩(rank 函数);
(3) 求矩阵的特征值与特征向量(eig函数);
(4) 系数矩阵的3次幂与开方;
(5) 系数矩阵的指数运算和数组对数运算;
(6) 系数矩阵a(1,2)、a(1,3)、a(2,2)、a(2,3)的元素不变,其余元素变为零。

(7) 提取系数矩阵主对角线上的元素,并依次相加赋予b。

源程序:A=[6,3,4;-2,5,7;8,-1,-3];B=[3;-4;-7];X=inv(A)*B
rank(A)
[v,d]=eig(A)
A1=A^3
A2=sqrt(A)
A3=expm(A)
A4=logm(A)
A(:,1)=0;A(3,:)=0
运行结果:
X =1.0200
-14.0000
9.7200
ans =3
v =0.8013 -0.1094 -0.1606
0.3638 -0.6564 0.8669
0.4749 0.7464 -0.4719
d =9.7326 0 0
0 -3.2928 0
0 0 1.5602
A1 =578 298 352
228 156 202
384 154 156
A2 =2.4495 1.7321 2.0000
0 + 1.4142i 2.2361 2.6458
2.8284 0 + 1.0000i 0 + 1.7321i
A3 =1.0e+004 *
1.0653 0.5415 0.6323
0.4830 0.2465 0.2876
0.6316 0.3206 0.3745
A4 =1.7129 + 0.4686i 0.5305 - 0.2425i 0.5429 - 0.6049i
1.1938 +
2.8123i 0.3658 - 1.4552i -0.5514 -
3.6305i
-0.0748 - 3.1978i 0.7419 + 1.6546i 1.8333 + 4.1282i
A =0 3 4
0 5 7
0 0 0
2 MATLAB数值运算
实验目的:掌握MATLAB 的数值运算及其运算中所用到的函数,掌握结构数组的操作。

实验内容:
①已知多项式a(x)=x2+2x+3;b(x)=4x2+5x+6
(1)求多项式a(x)和多项式b(x)的乘法运算结果,并在命令窗口中显示该多项式c;
(2)求多项式c的根及其微分;
源程序:p1=[1,2,3];p2=[4,5,6];
p=conv(p1,p2);c=poly2sym(p)
roots(p)
c2=diff(c)
运行结果:c =4*x^4+13*x^3+28*x^2+27*x+18
ans =-1.0000 + 1.4142i
-1.0000 - 1.4142i
-0.6250 + 1.0533i -0.6250 - 1.0533i c2 =16*x^3+39*x^2+56*x+27
②求1
2)1)(3)(1(3
2+++++s s s s s 的“商”及“余”多项式并在命令窗口中显示该多项式。

源程序:root=[-i,i,-3,-1];p=poly(root);
d=[1,0,2,1]; [q,r]=deconv(p,d); c3=poly2sym(q) c4=poly2sym(r)
运行结果:c3 =x+4 c4 =2*x^2-5*x-1 ③(1)计算当x=2,x=3时,
23
3
(0.98)1
()5()( 1.25)x f x x x x x -=+-++的值;
(2)
计算cos60arccos()π+
(3) 2
4361
53227791
235A ⎛⎫


= ⎪

⎝⎭
,B=A 2+3,C= A-2B ,,求: C
源程序:x=2
y1=x^3+(x-0.98)^2/(x+1.25)^3-5*(x+1/x) x=3
y1=x^3+(x-0.98)^2/(x+1.25)^3-5*(x+1/x) y2=cos(60)+acos(pi)-sqrt(9-sqrt(2))
A=[2,4,3,6;1,5,3,2;2,7,7,9;1,2,3,5] ;B=A^2+3;C=A-2*B
运行结果:x =2 y1 =-4.4697 x =3 y1 =10.3865
y2 =-3.7066 + 1.8115i C =-44 -124 -117 -154 -35 -109 -93 -110 -72 -219 -205 -265 -35 -94 -93 -125
3 MATLAB 符号运算
实验目的:掌握符号变量和符号表达式的创建, 掌握MATLAB 的symbol 工具箱的一些基本应用。

实验内容:
①已知 )14()3(232-+--++=bx cx a c bx ax f ,按照自变量x 和自变量a ,对表达式f 分别进行降幂排列(同幂合并)。

源程序:syms a b c x
f=sym('(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1)') collect(f) collect(f,a)
运行结果: f =(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1) ans=
a^3*x^6+3*b*a^2*x^5+((c-3)*a^2+2*b^2*a+a*(2*(c-3)*a+b^2))*x^4+(4*(c-3)*b*a +b*(2*(c-3)*a+b^2))*x^3+((c-3)*(2*(c-3)*a+b^2)+2*b^2*(c-3)+a*(c-3)^2-a*c)*x^2+(3*(c-3)^2*b-4*b*a)*x+(c-3)^3+a ans =
a^3*x^6+3*(b*x+c-3)*x^4*a^2+(3*(b*x+c-3)^2*x^2-c*x^2-4*b*x+1)*a+(b*x+c-3)^3
②已知f1=1/(a-b),f2=2a/(a+b),f3=(a+1)(b-1)(a-b),分别求f1和f2的符号和、f1和f3的符号积、f1和f3的符号商。

源程序:syms a b
f1=sym('1/(a-b)'); f2=sym('2*a/(a+b)');f3=sym('(a+1)*(b-1)*(a-b)');
f1+f2 f1*f3 f1/f3
运行结果:ans =1/(a-b)+2*a/(a+b) ans =(a+1)*(b-1) ans =1/(a-b)^2/(a+1)/(b-1 ③对下列表达式进行符号运算
(1) 已知数学表达式y(x)= (e x +x)(x+2),将其展开。

(2) 已知数学表达式y(x)=a 3-1,对其进行因式分解。

(3) 已知数学表达式2
31
()(1)(2)
x x y x x x x x +-=
+++,对其进行通分。

(4) 已知数学表达式y(x)=2cos 2x-sin 2x ,对其进行化简。

源程序:syms x a
y1=sym('(e^x+x)*(x+2)');s1=expand(y1) y2=sym('a^3-1');s2=factor(y2)
y3=sym('(x+3)/(x*(x+1))+(x-1)/(x^2*(x+2))');[a,b]=numden(y3) y4=sym('2*(cos(x))^2-(sin(x))^2'); s3=simple(y4) 运行结果:s1 =e^x*x+2*e^x+x^2+2*x s2 =(a-1)*(a^2+a+1) a =x^3+6*x^2+6*x-1 b =x^2*(x+1)*(x+2) s3 =3*cos(x)^2-1
④ 已知数学表达式f(x)=ax n +bt+c ,对其进行如下的符号替换: (1) a=sint,b=lnz,c=de2t 的符号变量替换。

(2) n=3,c=л的符号常量替换。

(3) c=1:2:5替换。

(4) 1324c ⎛⎫
= ⎪⎝⎭
的数组矩阵替换。

源程序:syms a x b t c n sint lnz de2t f=sym('a*x^n+b*t+c')
f1=subs(f,'a',sint) ; f2=subs(f1,'b',lnz); subs(f2,'c',de2t) f3=subs(f,'n',3); subs(f3,'c',pi) subs(f,'c',1:2:5) subs(f,'c', [1,3;2,4]) 运行结果:f =a*x^n+b*t+c ans =sint*x^n+lnz*t+de2t ans =a*x^3+b*t+pi
ans =[ a*x^n+b*t+1, a*x^n+b*t+3, a*x^n+b*t+5]
ans =[ a*x^n+b*t+1, a*x^n+b*t+3][ a*x^n+b*t+2, a*x^n+b*t+4]
⑤已知符号表达式x f 2
sin 1-=,12+=x g ,计算x =0.5时,f 的值;计算复合函数f (g (x ))。

源程序:syms x
f=sym('1-(sin(x))^2'); g=sym('2*x+1'); f1=subs(f,'x',0.5) f2=compose(f,g) 运行结果:f1 =0.7702 f2 =1-sin(2*x+1)^2
⑥求 1
31lim 222+--→x x x x 。

源程序:syms x
f=sym('(x^2-1)/(x^2-3*x+1)'); limit(f,x,2) 运行结果:ans =-3
⑦求函数 f (x )= cos 2x -sin 2x 的积分;求函数x x e x g x sin )(+=的导数。

源程序:syms x
f=sym('cos(2*x)-sin(2*x)'); g=sym('sqrt(e^x+x*sin(x))'); f1=int(f) f2=diff(g)
运行结果:f1 =1/2*sin(2*x)+1/2*cos(2*x)
f2 =1/2/(e^x+x*sin(x))^(1/2)*(e^x*log(e)+sin(x)+x*cos(x))
⑧计算定积分⎰+60
)2(sin π
dx
x
源程序:syms x
f=sym('sin(x)+2'); s1=int(f,x,0,pi/6) 运行结果:s1 =-1/2*3^(1/2)+1/3*pi+1 ⑨求下列线性代数方程组的解。

⎪⎩

⎨⎧=-+=++=++132142310z y x z y x z y x 源程序:syms x y z f1=sym('x+y+z=10') f2=sym('3*x+2*y+z=14') f3=sym('2*x+3*y-z=1') [s1,s2,s3]=solve(f1,f2,f3) 运行结果:f1 =x+y+z=10 f2 =3*x+2*y+z=14 f3 =2*x+3*y-z=1 s1 =1 s2 =2 s3 =7
⑩求解当y (0)=2,z (0)=7时,微分方程组的解。

⎪⎩⎪⎨⎧+=+=-x y dx
dz
x
z dx dy
1sin 源程序:syms x z y
[s1,s2]=dsolve('Dy-z=sin(x)','Dz+y=1+x','y(0)=2','z(0)=7','x')
运行结果:s1 =cos(x)+6*sin(x)+1/2*x*sin(x)+1+x
s2 =-3/2*sin(x)+6*cos(x)+1+1/2*x*cos(x)
4 MATLAB程序设计
实验目的:掌握MATLAB程序设计的主要方法,熟练编写MATLAB函数。

实验内容:
①用π /4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6为止,试编写其M脚本文件。

源程序:n=1; sum1=0;
while (1/(2*n-1))>1.0000e-006
sum1=sum1+4*(-1)^(n+1)*(1/(2*n-1)); n=n+1;
end
sum1
运行结果:sum1 =3.1416
②分别用for和while结构计算1+22+33+…+100100的运行程序。

源程序:①n=1; sum2=0;
while n<=100
sum2=sum2+n^n;
n=n+1;
end
sum2
②sum2=0;
for n=1:100
sum2=sum2+n^n;
end
sum2
运行结果:sum2 =1.0037e+200
5 MATLAB 绘图
实验目的:掌握MATLAB 二维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。

实验内容:①绘制图形
图1
其中x 初值为0,终值为12.5,步长为0.1,第一个曲线y1为sin()6
x
π,第二
个曲线y2为cos(
)6
x
π。

写出图1的绘制源程序。

按照以下的步骤进行(1)产生曲线
的数据(共有3组数据:x,y1,y2);(2)选择合适的线形、标记、颜色(正弦曲线为红色,余弦曲线为紫色);(3)添加图例及文字说明信息;(4)添加坐标轴说明与图标题。

源程序:x=0:0.1:12.5; y1=sin(pi/6*x); y2=cos(pi/6*x); plot(x,y1,'r',x,y2,'--m') title('两曲线比较图') x=[2/3*pi;6/3*pi]; y=[0.42;0];
s=['sin(pi/6*x)';'cos(pi/6*x)']; text(x,y,s)
legend('sinx','cosx') xlabel('时间t') ylabel('幅值') grid on 运
行结
果:
2
4
6
8
101214
-1-0.8-0.6-0.4-0.200.2
0.40.60.81两曲线比较图
时间t
幅值
②在同一窗口不同坐标系里分别绘出y1=sinx ,y2=cosx ,y3=cinh(x),y4=cosh(x)4个图形,其中x 为以0为初值,2 为终值,元素数目为30的行向量。

源程序:x=linspace(0,2*pi,30);
y1=sin(x); y2=cos(x); y3=sinh(x); y4=cosh(x); subplot(2,2,1);plot(x,y1'); subplot(2,2,2); plot(x,y2'); subplot(2,2,3); plot(x,y3'); subplot(2,2,4); plot(x,y4'); 运




02468-1
-0.500.5
102468
-1
-0.500.5
102468
100200
30002468
100
200
300
③绘制一个三维曲线其中x=cosp ,y=sinp ,z=p ,p 为以0为初值,20π为终值,步长 0.1π的行向量。

源程序:p=0:0.1*pi:20*pi; x=cos(p); y=sin(p); z=p; plot3(x,y,z); 运




三课程设计体会
通过这次matlab的课程设计,让我对matlab这个软件更加的熟悉,也知道了电脑软件对学习上工作上的帮助是十分的巨大的。

本来自己对编写程序这些东西不是很熟练,自己也懒的去练习,认为自己不能学会,这次通过自己认真的练习,感觉自己的能力有了显著的提升。

matlab自己带的函数十分的多,所以需要不断的去翻看老师给的资料和上网去查一些知识,这些都能够提高我们的熟练度,让我能进一步了解电脑编程。

总之,这次学习让我对matlab更加熟悉了。

四、参考资料
MATLAB PPT。

相关文档
最新文档