matlab 上机作业1,中国石油大学

合集下载

中国石油大学matlab实验程序

中国石油大学matlab实验程序

function area_1(a,b,c)if(a+b<=c|a+c<=b|b+c<=a)error('²»Äܹ¹³ÉÒ»¸öÈý½ÇÐÎ') ends=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c))结果>> area_1(2,3,4)area =2.9047>> area_1(2,3,6)??? Error using ==> area_1不能构成一个三角形程序2function NUM(num)if num==-1disp('You are a teacher.') elseif num==0disp('You are a student') elseif num==1disp('I am a teacher')elseif num==2disp('I am a student')end结果>> NUM(1)I am a teacher>> NUM(0)You are a student>> NUM(-1)You are a teacher.>> NUM(2)I am a student○1 function f1(n) K=0;for i=1:nK=K+2^i;endK=K结果>> f1(2)K =6>> f1(4)K =30○2function f2(n) i=1;K=0;while i<=nK=K+2^i;i=i+1;endK=K结果>> f2(2)K =6>> f2(5)K =62function countcj=input('ÇëÊäÈë¸Ã°àѧÉú³É¼¨'); A=cj>=90;B=cj>=80&cj<90;C=cj>=70&cj<80;D=cj>=60&cj<70;E=cj<60;i=numel(cj);a=0;b=0;c=0;d=0;e=0;for x=1:iif A(x)==1a=a+1;endendfor x=1:iif B(x)==1b=b+1;endendfor x=1:iif C(x)==1c=c+1;endendfor x=1:iif D(x)==1d=d+1;endendfor x=1:iif E(x)==1e=e+1;endendfprintf('³É¼¨ÓÅÐ㣺%d\n',a); fprintf('³É¼¨Á¼ºÃ£º%d\n',b); fprintf('³É¼¨Öеȣº%d\n',c); fprintf('³É¼¨¼°¸ñ£º%d\n',d); fprintf('³É¼¨²»¼°¸ñ£º%d\n',e);>> count请输入该班学生成绩[34 67 98 89 78]成绩优秀:1成绩良好:1成绩中等:1成绩及格:1成绩不及格:1>> count请输入该班学生成绩[36 65 98 69 95 87 81 75 77 68]成绩优秀:2成绩良好:2成绩中等:2成绩及格:3成绩不及格:1程序5function JIAGEprice=input('ÊäÈëÉÌÆ·¼Û¸ñ£º');switch fix(price/1000)case 0rate=0;case 1rate=0.03;case 2rate=0.05;otherwiserate=0.08;endfprintf('ʵ¼ÊÏúÊÛ¼Û¸ñΪ£º%d\n',price*(1-rate))结果>> JIAGE输入商品价格:1500实际销售价格为:1455。

matlab上机实验题

matlab上机实验题

“MATLAB及其在通信中的应用”上机实验一1姓名学号班级一、MATLAB环境与帮助1.简述command window的作用。

(5分)答案:输入命令,输出结果。

具体有:(1)输入语句(2)输入变量名(3)输入系统命令/函数(4)输入.m 文件名(5)输出上述的运算结果,包括数值或图形2.(1)简述command history的作用;(2)列举出四个在command window中快速操作command history内容的快捷键。

(5分)答案:(1)存储运行过的命令,便于以后调用或修改(2)快捷键:方向键上、下、左、右。

3.简述workspace的作用,并说明workspace的菜单上的五个按钮的功能。

(5分)答案:(1)列出程序创建的所有变量(2)加入新变量,打开所有变量,装载数据文件,保存空间或变量,删除变量4.简述清除command window、command history、workspace中内容的方法(5分)答案:清除command window内容:在command window键入clc清除command history内容:command history窗口上点右键,选择clear command history清除工作空间的内容:在command window键入clear5.(1)简述current directory的作用;(2)在桌面新建一个文件夹,命名为自己的学号,如(1110920101),将current directory1完成后以附件形式发送到邮箱commu_*******************。

邮件主题为“班级”加“下划线”加“姓名”加“下划线”加“实验一”,如“通信1101_姓名_实验一”,word文件名类似,如“通信1101_姓名_实验一”。

改为新建文件夹的路径,简述操作方法,并对更改后的current directory截图,填入到下面空白处。

Matlab基础及应用第一章上机作业

Matlab基础及应用第一章上机作业

1、新建一个文件夹(自己的名字命名)
答:
2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。

保存,关闭对话框。

使用path命令查看MATLAB搜索路径。

3、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye。

4、使用clc、clear,观察command window、command history和workspace等窗口的变化结果。

5、编写一段简短的脚本文件,保存并显示运行结果。

6、创建两个double型变量a=32、b=5,并计算a+b、a-b、a*b、a/b、a\b;
创建两个int8型变量a、b,取同样数值,并计算a+b、a-b、a*b、a/b、a\b,对于计算结果与前次计算结果不同的情形请给出解释。

7、查看int16数据类型的取值范围(intmin,intmax);查看单精度数据类型的取值范围和精度(realmin,realmax,eps)。

8、求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量:
(1)sin(60o) (2) e3 (3) cos(3/4π)
9、用两种定义复数的方法计算(直接定义,complex(a,b))
(1)(3-5i)(4+2i) (2) sin(2-8i)。

2020—2021学年第1学期虚拟样机仿真大作业石油大学

2020—2021学年第1学期虚拟样机仿真大作业石油大学

项目一:游梁式抽油机某游梁式抽油机模型见图1。

该抽油机减速箱为两级减速,有三根轴和两组齿轮组成。

各齿轮的参数见表1。

抽油机冲次为3次/分,抽油机运行时从当前位置向下移动。

试进行如下分析:(每小题10分,共计40分)a.分别分析两个配重与四个配重无悬点载荷条件下输入轴的扭矩大小,绘制其扭矩变化曲线,并分析电机做正功与负功的区间。

b.悬点载荷上冲程为8吨,下冲程为6吨时,分析两个配重与四个配重条件下输入轴扭矩变化,绘制变化曲线。

c.根据上述结果,试分析配重变化与悬点载荷变化对扭矩的影响。

d.绘制四个配重施加悬点载荷条件下驴头沿竖直方向的速度变化曲线。

题图1 游梁式抽油机模型图题表1 减速箱齿轮参数序号名称齿轮模数齿数传动比1 高速传动端输入轴齿轮8 174.88 中间轴大齿轮8 832 低速传动端中间轴小齿轮8 206.5 输出轴齿轮8 130问题解答1. 问题a1.1 创建模型(1)导入模型按照图示步骤,导入相关模型。

(2)简化模型先对各个零部件进行重命名,然后再进行模型的简化。

在进行模型简化时,需要通过布尔运算将两个无相对运动并且有接触的部件进行布尔操作。

简化后如图:1.2添加约束(1)固定副按照图示过程,在连接中选择固定副。

考虑系统整体的运动过程和规律,确定相对于地面不发生运动的部件及各部件相互之间没有相对运动的部件,创建固定副。

(2)旋转副在左侧的图标中选择旋转副,默认的就是2 Bodies-1Locations,依次选择第一个body 和第二个body,然后选择旋转副的位置,即可创建旋转副。

确定旋转副位置时注意要选择中心位置。

图示左半部分为创建过程,右半部分为创建完成后的旋转副。

(3)齿轮副由齿轮副的命令窗口可以看出,齿轮副实际上是在确定的位置上(common velocity maker)、于两个相对于大地的旋转副之间创建的,所以我们在上文建立了齿轮轴与大地之间的的转动副。

再创建同速标记点。

MATLAB上机练习及作业

MATLAB上机练习及作业

MATLAB上机练习及作业第一章1. 熟悉MATLAB环境,练习第一章的命令;2. 练习显示格式(P13)1利用Help命令,搞清楚MATLAB的所有主题,利用help signal和help control 搞清楚这两个工具箱2练习whos,who,disp,clear,which,ver等命令第二章3练习矩阵操作,书上P34~404练习逻辑和关系运算,书上P40~435练习随机数产生,书上P506练习时间和日期函数,P56~577矩阵操作diag,reshape,rot90,fliplr,flipud,tril,triu等8练习MATLAB基本函数P669上交:第二章习题中的No.3, No.6第3章1. 练习产生图3.1~3.5, 3.9~3.12, 3.14, 3.18,3.21,3.22, 3.24~3.312. 第3章习题: (P122) 2, 5--93. 交程序:5;74. 并练习图形旋转、标注、复制等功能5. 交结果:与习题7类似,只是画出你自己上个月的消费饼图第4章1. 上机前好好复习这章内容,练习P137页的两段程序,并将终值扩大到500,体会两者的速度差异。

2. 熟悉MATLAB的调试技术。

3. 第4章习题: (P158)4. 1,3,5,8,95. 交结果:3;5,8(分别求出当I=54,I=105时的结果);9第5章习题(p.222)1, 2, 3, 7, 8, 9, 13, 15, 16, 20交结果: 1, 2, 8, 9, 13, 16第6章P.251 看懂综合设计示例, 设计程序计算每个班的平均成绩, 计算教师的实际学时数。

(交结果)P.269 2, 3第7章1. 在[-1,1]区间上绘制出y=-2x^2+4的曲线, 并在图中标注出最大值点的坐标.2. 任意给定一句英文句子, 请提取其每个单词, 并设计一结构, 其域有Name、No、Length、Value,分别用于存储每个单词的名称、句中序号、单词长度、单词各个字符的ASCII 码。

MATLAB上机实验1答案

MATLAB上机实验1答案

实验1 Matlab 初步一、问题已知矩阵A 、B 、b 如下:⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡-------------=031948118763812654286174116470561091143A ⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡------=503642237253619129113281510551201187851697236421B []1187531=b应用Matlab 软件进行矩阵输入及各种基本运算。

二、实验目的学会使用Matlab 软件构作已知矩阵对应的行(列)向量组、子矩阵及扩展矩阵,实施矩阵的初等变换及线性无关向量组的正交规范化,确定线性相关相关向量组的一个极大线性无关向量组,且将其余向量用极大线性无关向量组线性表示,并能编辑M 文件来完成所有的实验目的。

三、预备知识1、 线性代数中的矩阵及其初等变换、向量组的线性相关性等知识。

2、 Matlab 软件的相关命令提示如下;(1) 选择A 的第i 行做一个行向量:ai=A(i,:);(2) 选择A 的第j 行做一个列向量:ai=A(j,:);(3) 选择A 的某几行、某几列上的交叉元素做A 的子矩阵:A([行号],[列号]);(4) n 阶单位阵:eye(n);n 阶零矩阵:zeros(n);(5) 做一个n 维以0或1为元素的索引向量L ,然后取A(:,L),L 中值为1的对应的列将被取到。

(6) 将非奇异矩阵A 正交规范化,orth(A) ;验证矩阵A 是否为正交阵,只需做A*A'看是否得到单位阵E 。

(7) 两个行向量a1和a2的内积:a1*a2'。

(8) 让A 的第i 行与第j 列互换可用赋值语句:A([i,j],:)=A([j,i],:);(9)让K乘以A的第i行可用赋值语句:A(i,:)=K*A(i,:);(10)让A的第i行加上第j行的K倍可用赋值语句:A(i,:)=A(i,:)+K*A(j,:);(11)求列向量组的A的一个极大线性无关向量组可用命令:rref(A)将A化成阶梯形行的最简形式,其中单位向量对应的列向量即为极大线性无关向量组所含的向量,其它列向量的坐标即为其对应向量用极大线性无关组线性表示的系数。

MATLAB实验作业一

MATLAB实验作业一

MATLAB的基本操作(一)实验内容及步骤1.进入MATLAB工作环境,熟悉各窗口的功能。

(1)双击桌面图标,或从“开始”菜单打开MATLAB.exe,启动MATLAB。

(2)查看MATLAB界面各窗口的布局、了解其功能,并完成各窗口之间的切换。

(3)设置当前工作目录。

在D盘创建mymatlab目录,并将其作为当前工作目录。

今后的实验过程中以此目录作为当前工作目录。

2.计算5.542+cos(35π)√17.89÷3.5−e2的值。

(1)在命令窗口(Command Window)中输入程序:a=5.54^2+cos(3/5*pi)*sqrt(17.89)/3.5-exp(2)(2)按回车键运行,如果出现“Error”(出错信息),则应找出原因并改正,再运行。

(3)运行结果22.9291过程: >> a=5.54^2+cos(3/5*pi)*sqrt(17.89)/3.5-exp(2)a =22.9291>>3.输入矩阵A=[428256319], B=[111222333], 在命令窗口中执行下列表达式,掌握其含义:A(2,3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A(1)在命令窗口键入A=[4 2 8;2 5 6;3 1 9] ,生成矩阵A;键入B=[1 1 1;2 22;3 3 3] ,生成矩阵B。

>>A=[4 2 8;2 5 6;3 1 9] A =4 2 82 5 63 1 9>> B=[1 1 1;2 2 2;3 3 3]B =1 1 12 2 23 3 3>> A(2,3)ans =6>> A(6)ans =1>> A(:,2)ans =251>> A(3,:)ans =3 1 9>> A(:,1:2:3)4 82 63 9>> A(:,3).*B(:,2)ans =81227>> A(:,3)*B(2,:)ans =16 16 16 12 12 12 18 18 18>> A*Bans =32 32 32 30 30 30 32 32 32>> A.*Bans =4 2 8 4 10 12 9 3 27>> A^2ans =44 26 116 36 35 10041 20 111>> A.^2ans =16 4 644 25 369 1 81>> B/Aans =0.5000 0.0769 -0.38461.0000 0.1538 -0.76921.5000 0.2308 -1.1538>> B./Aans =0.2500 0.5000 0.12501.0000 0.4000 0.33331.0 3.0000 0.3333>> B.\Aans =4.0000 2.0000 8.00001.00002.50003.00001.0000 0.3333 3.0000>>4. 产生一个5阶魔方矩阵,将矩阵的第3行4列元素赋值给变量a;将由矩阵第2,3,4行第2,5列构成的子矩阵赋值给变量b。

Matlab上机作业部分参考答案

Matlab上机作业部分参考答案

上机练习二 参考答案
1. 产生一个1x10的随机矩阵,大小位于(-5 5),并 且按照从大到小的顺序排列好! 【求解】 a=10*rand(1,10)-5; b=sort(a,'descend')
上机练习二 参考答案
2、用MATLAB 语句输入矩阵A 和B
前面给出的是4 ×4 矩阵,如果给出A(5,6) = 5 命令,矩阵A将得出什么 结果?
Matlab 上机课作业
吴梅红 2012.10.15
上机练习一
上机练习一 参考答案
上机练习一 参考答案
上机练习一 参考答案
上机练习二
1. 产生一个1x10的随机矩阵,大小位于(-5 5),并且按 照从大到小的顺序排列好! 2、用MATLAB 语句输入矩阵A 和B
前面给出的是4 ×4 矩阵,如果给出A(5,6) = 5 命令,矩阵 A将得出什么结果? 3、假设已知矩阵A ,试给出相应的MATLAB 命令,将其全 部偶数行提取出来,赋给B 矩阵,用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。
【求解】用课程介绍的方法可以直接输入这两个矩阵 >> A=[1 2 3 4; 4 3 2 1; 2 3 4 1; 3 2 4 1] A= 1234 4321 2341 3241 若给出A(5,6)=5 命令,虽然这时的行和列数均大于A矩阵当前的维数, 但仍然可以执行该语句,得出 >> A(5,6)=5 A= 123400 432100 234100 324100 000005 复数矩阵也可以用直观的语句输入 3+2i 4+1i; 4+1i 3+2i 2+3i 1+4i; 2+3i 3+2i 4+1i 1+4i; 3+2i 2+3i 4+1i 1+4i]; B= 1.0000 + 4.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i 4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一次上机实习
1.编写一个程序ex1_1.m,对输入的方阵计算其伴随矩阵。

a)要求第一行帮助行注明这个函数的用途,能在matlab命令窗口可以用help或lookfor
查到该帮助;
b)对输入的变量进行检测,如果输入的不是方阵或者矩阵元素不是数,则报错,退出程
序。

function A=ex1_1(X)
% 建立函数A=ex1_1(X),求矩阵X的伴随矩阵
[a,b]=size(X);
if a~=b||~isnumeric(X) || ~ismatrix(X)
error('输入的不是方阵或者矩阵元素不是数!');
end
for i=1:a
for j=1:b
A(i,j)=(-1)^(i+j)*X(i,j)*det(X([1:i-1,i+1:end],[1:j-1,j+1:end]));
end
end
A=A';
2.已知表达式y=6*x^5+4*x^3+2*x^2-7x+10,x的范围是[0,100],使用三阶拟合和五阶的方法得出多项式的表达式,并编程在图中绘制出原曲线、三阶拟合和五段拟合的曲线。

clc
clear all
x=linspace(0,100,2000);
p1=[6 0 4 2 -7 0];
y=polyval(p1,x);
p3=polyfit(x,y,3);
p5=polyfit(x,y,5);
y1=polyval(p3,x);
y2=polyval(p5,x);
plot(x,y,'r-o')
hold on
grid on
plot(x,y1,'b-.',x,y2,'y--*');
grid on
三条曲线
放大图(原曲线与五阶拟合完全重合):
3.读如图像5.tif(450*450),做fourier变换,
a)将变换之后所得到的矩阵只保留前10行10列,后10行10列的数据,其他位置都
设置为0,然后再作反fourier变换,观察结果;
原图:
运行程序:
clc
clear all
I=imread('5.tif');
figure(1);
imshow(I);
B=fft2(I);
C=ones(size(B));
C(11:end-10,11:end-10)=0;
B1=B.*C;
B1=B1./256;
I1=ifft2(B1);
figure(2);
imshow(I1);
图像:
b)将变换之后所得到的矩阵将前10行10列,后10行10列的数据置为0,然后再作
反fourier变换,观察结果;
clc
clear all
I=imread('5.tif');
figure(1);
imshow(I);
B=fft2(I);
C=zeros(size(B));
C(11:end-10,11:end-10)=1;
B1=B.*C;
B1=B1./256;
I1=ifft2(B1);
figure(2);
imshow(I1);
c) 从观察的结果你有什么体会。

1, 图像数据中大量的信息储存在矩阵的外围,中心部分数据是将图像锐化的信息;
2, 图像数据储存的方式有很多种,该例每个点应该是0或者1,所以逆变换之后应该将每
个点的数据变为0或者1(即除以256)
4. 完成课本P310页起实验1,实验2中的基本操作。

5. 已知线性代数方程组
123123123
123315183156x x x x x x x x x -+=⎧⎪-+-=-⎨⎪++=⎩(1)
(1)分别应用“求逆”法和“左除”法来求解;
(2)求系数矩阵的特征值和特征向量;
(3)求系数矩阵的行列式,并用cram 法则求解方程组(建议编写一个通用的函数进行计算);
(4)求矩阵的秩。

求逆:
A=[12 -3 3;-18 3 -1;1 1 1];
b=[15;-15;6];
x1=A\b;
x2=inv(A)*b;
[V A,VB]=eig(A);
d=eig(A);
R=rank(A);
D=det(A);
Cramer 法函数
function Cramer(~,~)
%Cramer's Law
A=input('输入系数矩阵:');
b=input('输入解向量:');
if det(A)==0
error('输入的系数矩阵无解!'); end
return
[~,c]=size(A);
a=zeros(c,1);
for i=1:3
Ai=A;
Ai(:,i)=b;
a(i)=det(Ai)/det(A);
end。

相关文档
最新文档