Matlab作业1

Matlab作业1
Matlab作业1

Matlab Worksheet 1

Part A

1. Get into Matlab: Use the diary command to record your activity in to a file: diary mydiary01.doc before you start your work. (And diary off to switch off your diary when you finish your work.)

At the Command Window assign a v alue x=10, then use the Up Key ↑ to repeat the expression, editing it to show the effect of using a semicolon (分号) after the 10, namely x=10;

Answers:

2. Confirm whether the following names of variables are acceptable: a) Velocity Yes No

b) Velocity1 Yes No

c) Velocity.1 Yes No

d) Velocity_1 Yes No

e) Velocity-01 Yes No

f) velocityONE Yes No

g) 1velocity Yes No

3. Assign two scalar variables (标量) x and y values x=1.5, y=2.3, then construct Matlab expressions for the following: a) y x y x z +=35 b) ()3/27y x z = c) ()

y e x x z 25106

/111log -???????+-= d) )2cos()2sin(x e y x z x ππ+-=

Answers:

4. Assign two variables with complex values u=2+3j and v=4+10j and then construct expression for:

a) v

u b) j uv 2+ c) j u 2 d) u j ve π2- Answers:

5. Use the colon operator : to assign numerical values between 0 and 1 to vector array variable a in steps of 0.1.

Answer: x=0:0.1:1

https://www.360docs.net/doc/ad17587527.html,e linspace function to assign 20 values to vector variable y between 20 and 30. Answer: x=linspace(20,30,20)

7.Assign 20 values to a variable h increasing logarithmically(用对数) between 10

and 1000.

Next, use the colon operator to assign the first 10 elements of h to a variable p. Answers: h=log10(linspace(10,1000,20))

p=h(1:10)

8.Create 6 element row vector z with values 1.0 1.2 1.6 -1.7 1.8 1.9, then construct

an expression for the sum of the 2nd 4th and 6th elements of z.

Answers: v=[1.0 1.2 1.6 -1.7 1.8 1.9];

u=[0;0;0;1;0;1];

z=v*u

https://www.360docs.net/doc/ad17587527.html,e the colon operator to create a vector array x between 10 and -10in steps of -1,

and second, an array vector y between 20 and -20 in steps -2 .

a)Add x and y, b) subtract 10x from 5y.(5y-10x)

Answers: x=-10:1:10;

y=-20:2:20;

z1=x+y

z2=5*y-10*x

https://www.360docs.net/doc/ad17587527.html,e the size,length, who and whos commands to establish the size and length of x

and y from Question 9, and use transpose operator ’ to convert vector x from

Question 9.

Answers: x=-10:1:10;

y=-20:2:20;

z1=x+y

z2=5*y-10*x

size(x)

length(x)

who

whos

x'

11.Show that if w=[ 2i 3i 3+i] the .’ operator creates the transpose. What effect does the

operator ’ applied to w have on its own?

Answer: w=[ 2i 3i 3+i]

w'

w.'

w =

0 + 2.0000i 0 + 3.0000i 3.0000 + 1.0000i

ans =

0 - 2.0000i

0 - 3.0000i

3.0000 - 1.0000i

ans =

0 + 2.0000i

0 + 3.0000i

3.0000 + 1.0000i

https://www.360docs.net/doc/ad17587527.html,e the ones function to create a 4 by 6 array of 1’s. Considering just the sha pe of

the resulting array, what do the expression ones(3), ones(5) and ones(7) all have in common?

Answer: ones(4,6)

ones(3)

ones(5)

ones(7)

Ones(3) is 3 by 3

Ones (5) is 5 by 5

13.Create using the rand function a 5 by 4 random matrix and assign it to matrix array

variable A and observe carefully what A(:,3) A(1:2) and A(3,[2 4]) mean.

Answer:

A=rand([5,4])

A(:,3) %提取第三列元素

A(1:2) %提取第一行前两个元素

A(3,[2 4]) %提取第三行第二第四个元素

A =

0.6787 0.1712 0.0971 0.0344

0.7577 0.7060 0.8235 0.4387

0.7431 0.0318 0.6948 0.3816

0.3922 0.2769 0.3171 0.7655

0.6555 0.0462 0.9502 0.7952

ans =

0.0971

0.8235

0.6948

0.3171

0.9502

ans =

0.6787 0.7577

ans =

0.0318 0.3816

https://www.360docs.net/doc/ad17587527.html,ing array subscripts, create an expression for the sum of the element in the top

right-hand-corner(右上角) of A and the bottom left-hand-corner of A(左下

角). Also assign the 2nd column(列) of A to a column vector b, and assign the 3rd row of A to a row vector d(行).

Answer: A=rand([5,4])

A(1,4)+A(5,1)

b=A(:,2)

d=A(3,:)

>>diary off to switch off your diary now.

15. Using the colon operator, assign a row vector array t, values between 0 and 10 in steps of 0.01. Use the ; operator to prevent displaying the information. Obtain the term-by-term values of functions:

a) t e z 05.0-= b) )sin(05.0t e z t π-= c) )2cos()sin(05.0t t e z t ππ-=

Answers:

t=0:0.01:10; z=exp(-0.05 *t)

t=0:0.01:10; z=exp(-0.05 *t) .*sin(pi*t)

t=0:0.01:10; z=exp(-0.05 *t) .*sin(pi*t).*cos(2*pi*t)

16. For Question 15 c), use the plot function to plot the value z against t. And use xlabel and ylabel to label the t axis ‘time’ and z axis ‘Response’ and use title to give your figure a title. Copy the figure into your mydiary01.doc (from the figure edit menu, select copy, then open mydiary01.doc and paste in the figure as an object).

Answers:

t=0:0.01:10;

z=exp(-0.05 *t) .*sin(pi*t).*cos(2*pi*t);

plot(t,z);

xlabel('time');

ylabel('reponse');

title('time and reponse');

Part B

1.Create a new Script m-file, called myfirst.m, to assign values to three vector arrays

a, b, and c; add each component together and assign to array d, where

A=[ 1, 2, 3], b=[4 5 6], c=[7 8 9]. Run myfirst.m. Examine the variable values in

the WorkSpace . Edit myfirst.m to change variable b to b=[10 20 30]. Re-run myfirst.m

Answers:

A=[ 1, 2, 3];

b=[4 5 6] ;

c=[7 8 9];

A+b+c

2.Create a function m-file, called myfun.m, that accepts two arrays x and y as

arguments(自变量), and produces the sum of x and y, and gives as the function output, the maximum of x+y.

Answer: function[A]=myfun(x,y)

sum=x+y;

A=max(sum);

end

3.Modify your script m-file myfirst.m by calling in it myfun.m twice, namely with a

and b as parameters in the argument list, and second with parameters b and c. Run myfirst.mand afterwards. Examine the WorkSpace variable values.

Answers:

a=[1 2 3];

b=[4 5 6] ;

c=[7 8 9];

A1=myfun(a,b)

A=myfun(b,c)

4. Modify your script m-file myfirst.m by introducing variables A and B. Assign

scalar values A=1, B=2. Declare A and B as global variables both in myfirst.m and myfun.m. Modify myfun.m by adding A and B to the maximum value of x+y.

Answers:

global A;

global B;

A=1;

B=2;

a=[1 2 3];

b=[4 5 6] ;

c=[7 8 9];

A1=myfun(a,b)

A2=myfun(b,c)

function[S]=myfun(x,y)

global A;

global B;

sum=x+y+A+B;

S=max(sum);

end

5.Create a script m-file and, using a pair of nested(嵌套的)for loops, assign to a

5 by 5 matrix array A, values equal to the sum of the subscripts(下标之和).

Ensure that the array is first cleared before the loops and afterwards display the array values. Run the m-file.

Answer:

for i=1:5

for j=1:5

A(i,j)=i+j;

end

end

A

6.Relational Operators:- Assign variables x=1 and y=2, then examine the values of

the expressions:

a)x>y, b)xy)*(x==y)?

Answer:

x=1;

y=2;

x>y

x

x==y

z=(x>y)*(x==y)

7. While loop:- Create a script m-file, and using a ‘while loop’, generate the partial sum for the series: ...31211+++π

ππ which stops adding-on terms when they are less than 1e-6 times the total sum.

Answer:

s=0;

n=1;

while s*n*pi<10^6

s=s+1/(n*pi);

n=n+1;

end

s

n

注意括号!!!

8. While loop:- Use a ‘while loop’ to keep adding array A to itself until just one of

the elements in A is greater than, but not equal to 40 where, initially ??

????=4321A .

Answer:

A=[1 2; 3 4];

sum_A=zeros(2);

while sum_A <= 40 *ones(2);

sum_A=sum_A+A;

end ;

sum_A

9. If statements:- Create a function m-file that receives variable x and y as arguments, then uses an ‘if’ statement internally (内在的) to execute the condition that: ‘if x is greater than y the function takes the value x, otherwise it takes the value y’. Test it on 2 numbers x=1 and y=1.

Answer: function [S]=myfun(x,y)

if x>y

S=x;

else

S=y;

end

10.If statements:- Create a function m-file that receives variable x, y and z as

arguments, then uses an ‘if elseif and else’ statements, generate the output va lue to be =x if first of all x>1, otherwise =y if y>10, otherwise =z if z>20, otherwise =1 if none of those conditions hold. Test it on values (100,100,100) and (0, 0,0).

Answer:

function [ m ] = Untitled8(x,y,z)

%UNTITLED8 Summary of this function goes here

% Detailed explanation goes here

function[m]=xym(x,y,z)

if x>1

m=x;

else if y>10

m=y;

else if z>20

m=z;

else

m=1;

end

end

end

end

ans =

100

ans =

1

11.Switch Statement:- Create a function with one input argument x to test whether the

expression: real(x^2) is equal to 0,1, or -1, which then displays a string stating appr opriately whether: ‘x is equal to zero’, ‘x is equal to +1 or -1’ or ‘x is equal to +j or –j’; otherwise display ‘test failed’. Test your m-file on three values: x=0, x=10 and x=j (1

=

j).

-

Answer:

switch x^2

case 0

disp('x is equal to zero');

case 1

disp('x is equal to +1 or -1');

case -1

disp('x is equal to +j or -j');

otherwise

disp('test failed');

end

x is equal to zero

test failed

x is equal to +j or –j

12. Polynomials:- Create a script m-file to generate the 5th degree polynomial (多项式): 104322345+++++x x x x x and find all the roots. Use the plot function to plot the polynomial between x=-2 and x=2. Give the plot a title ‘A 5th degree polynomial for different domains’.

Answer:

p=[1,2,3,4,1,10];

y=roots(p)

x=-2:0.01:2;

plot(x,x.^5+2*x.^4+3*x.^3+4*x.^2+5*x+10,'r');

title('A 5th degree polynomial for different domains'); y =

-2.0000

-0.6566 + 1.6409i

-0.6566 - 1.6409i

0.6566 + 1.0815i

0.6566 - 1.0815i

A 5th degree polynomial for different domains

矩阵

Length 个数

Sort排序

C’转置

Size 显示几行几列

Ones

Zeros

Eye

Diag 矩阵对角元素提取

.*矩阵对应元素相乘

matlab里~=是不等于的意思。

matlab关系符号:

>(大于),>=(大于等于),<(小于),<=(小于等于), ==(等于)~=(不等于)matlab逻辑符号:

&(与),|(或),~(非), xor(异或)

save

名字只能以字母开头,或包括字母数字下划线

log(x) x的自然对数

log2(x) x的以2为底的对数

log10(x) x的以10为底的对数

复数直接用j表示

p=[1,2,3,4,1,10];

y=roots(p)

roots求根

MATLAB编程作业

《Matlab 编程训练》 作业 专 业 学生姓名 班级 学 号 指导教师 完成日期

实训一 MATLAB 语言介绍和数值计算 1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存变量。 12 2sin851z e =+ . 2. 已知 1234413134787,2033657327A B --???? ????==???? ????-???? ,求下列表达式的值: (1) A+6*B 和A-B+I (其中I 为单位矩阵) A+6*B:

A-B+I: (2)A*B和A.*B A*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] c=A*B 结果: A.*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=A.*B 结果:

(3)A^3和A.^3 A^3程序: A=[12 34 -4;34 7 87;3 65 7] E=A^3 结果: A.^3程序: A=[12 34 -4;34 7 87;3 65 7] C=A.^3 (4)A/B及B\A A/B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] C=A/B 结果:

B\A程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=B\A 结果: (5)将矩阵C=B\A的右下角2*2子矩阵赋给D, 并(3)保存变量(mat文件)程序: A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; C=B*inv(A); D=C(2:3,2:3) 结果:

matlab 作业

实验一 1、熟悉MATLAB的窗口结构(命令窗口、历史命令窗口、工作区窗口、当前目录 窗口) 2、掌握命令窗口中基本命令的使用 3、在命令窗口中,给定圆的半径r,求得圆的周长c和面积s,并查看工作区窗 口的变化 4、将r,c,s变量保存到磁盘文件abc.mat中,并删除内存变量r,c,s,查看工作 区窗口的变化 5、将abc.mat文件中变量装入内存,查看工作区窗口的变化 6、将历史命令窗口中的命令再装入命令窗口中使用 7、改变当前目录,查看当前目录窗口的变化 8、掌握命令窗口中 cd,quit,help,date,dir,ls,what,who,clocl,fix(clock),format,save,loa d,clc,clear等命令的使用 9、注意各种MATLAB版本的差别 实验二 1、在命令窗口中,输入长方形的长和宽,求长方形的周长和面积 2、输入三角形的三条边(要满足构成三角形的条件),求三角形的周长和面积 3、掌握MATLAB中各标准函数的使用(sin,cos,sind,fix,mod,…) 4、用fprintf输出各种类型的数据(如fprintf('a=%d\n',123) a=123 >> fprintf('b=%f\n',123.456) b=123.456000 >> fprintf('c=%c\n','A') c=A……) 实验三 1、在编辑窗口中:输入学生成绩,输出该成绩的等级。等级规定如下:[90, 100]为A等,[80,90)为B等,[70,80)为C等,[60,70)为D等,[0,60)为E等。要求用if和 switch两种方法实现。 2、商场购物,100件以下,不优惠,100~199件95折,200~399件90折,400~799 件85折,800~1499件80折,1500件以上,75折。输入所购货物的单价、件数,求实际付款数目。要求用if和 switch两种方法实现(在编辑窗口中实现)。 实验四 1、求两个正整数的最大公约数和最小公倍数(在编辑窗口中实现,命令窗口中 调用)。 2、求100~300内所有素数(在编辑窗口中实现,命令窗口中调用)。

MATLAB第一章作业答案

第一章 M A T L A B 概况与基本操作 1.选择题(每题2分,共20分): (1)最初的MATLAB 核心程序是采用D 语言编写的。 (2)即将于2011年9月发布的MATLAB 新版本的编号为C 。 2011Ra 2011Rb R2011b R2011a (3)在默认设置中,MATLAB 中的注释语句显示的颜色是B 。 A.黑色 B.绿色 C.红色 D.蓝色 (4)如果要以科学计数法显示15位有效数字,使用的命令是A 。 long e long long g long d (5)在命令窗口新建变量a 、b ,如果只查看变量a 的详细信息,使用的命令为A 。 a a (6)如果要清除工作空间的所有变量,使用的命令为C 。 all C.两者都可 D.两者都不可 (7)在创建变量时,如果不想立即在命令窗口中输出结果,可以在命令后加上B 。 A.冒号 B.分号 C.空格 D.逗号 (8)如果要重新执行以前输入的命令,可以使用D 键。 A.下箭头↓ B.右箭头→ C.左箭头← D.上箭头↑ (9)如果要查询函数det 的功能和用法,并显示在命令窗口,应使用命令C 。 D.三者均可 (10)如果要启动Notebook 文档,下列D 操作是可行的。 A.在命令窗口输入notebook 命令 B.在命令窗口输入notebook filename 命令 C.在Word 中启动M-book 文档 D.三者均可 2.填空题(每空1分,共20分): (1)MATLAB 是matrix 和laboratory 两个单词前三个字母的组合,意为“矩阵实验室”,它的创始人是Cleve Moler 和Jack Little 。 (2)在MATLAB 的默认设置中,关键字显示的字体为蓝色,命令、表达式、计算结果显示的字体为黑色,字符串显示的字体为褐红色,注释显示的字体为绿色,错误信息显示的字体为红色。 (3)在命令窗口中,输出结果显示为各行之间添加空行的命令为format loose ,各行之间不添加空行的命令为format compact 。 (4)在MATLAB 中,各种标点符号的作用是不同的。例如,空格的作用是分隔数组每行各个元素,逗号的作用是分隔数组每行各个元素或函数的各个输入参数,分号的作用是作为不显示命令结果的命令行的结尾或分隔数组各列,冒号的作用是生成一维数组或表示数组全部元素,百分号的作用是引导一行注释,…的作用是连接相邻两行,感叹号的作用是调用操作系统命令。 3.程序设计题(每题10分,共40分) (1)以25m/s 的初速度向正上方投球(g=s 2 ),计算到达最高点的时间tp 以及球从出发点到最高点的距离hp 。 解:根据物理学知识,物体上抛运动的速度与经过的时间之间的关系为0p p v v gt =-,因此所需要的时间为0p p v v t g -= 。而到达最高点时的速度0p v =,因此可根据此公式求出tp : v0=25;g=;vp=0; tp=(v0-vp)/g tp =

MATLAB程序设计作业

Matlab程序设计 班级 姓名 学号

《MATLAB程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot的原始数据、一次拟合曲线和三次拟合曲线,给出MATLAB代码和运行结果。 代码如下: x=[1,2,3,4,5,6,7,8,9,10]; y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]; plot(x,y); title('原始数据'); p=polyfit(x,y,1); q=polyval(p,x); figure,plot(x,q); title('一次拟合'); p=polyfit(x,y,2); q=polyval(p,x); figure,plot(x,q); title('二次拟合'); 运行结果如下:

1 2 3 4 5 6 7 8 9 10 12 3 4 5 6 7 8 原始数据 123 456789 102 2.5 3 3.54 4.5 55.56 6.57一次拟合 123456789 101 2 3 4 5 6 7 二次拟合 2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 代码如下: clear clc x=(0:0.01:3*pi); y=sin(x); plot(x,y); y1=(y>=0).*y; figure,plot(x,y1);

MATLAB 作业

1.求解方程组sin(x-y)=0,cos(x-y)=0写出求解的MATLAB程序?(写出求解的MATLAB的程序,采用solve命令) 答案 >> [x,y]=solve('sin(x-y)=0','cos(x+y)=0','x','y') x = -1/4*pi 1/4*pi y = -1/4*pi 1/4*pi 2.设3x’’-5x’+6x=y,x(0)=3,x’(0)=0,求y(5)的值?(写出求解该微分方程的MATLAB程序,用dsolve命令) %ex1_9.m f='3*D2x-5*x+6*x-y=0';x=dsolve(f,'Dx(0)=0,x(0)=0','y') %ex1_10.m y=solve('-sin(1/3*3^(1/2)*y)*3^(1/2)+y-x=0','x=5','x','y') x = -sin(1/3*3^(1/2)*y)*3^(1/2)+y y = x: [1x1 sym] y: [1x1 sym] 3. 1 3 5 7 A= 9 2 4 6 求B=A^T,C=A^-1,用for循环 8 10 3 5 求解A各元素的和,以及A中的最小元 答案 >> A=[1 3 5 7;9 2 4 6;8 10 3 5],B=A' A = 1 3 5 7 9 2 4 6 8 10 3 5 B = 1 9 8 3 2 10 5 4 3 7 6 5 %ex1_5.m

s=0 m=A(1,1) for i=1:3 for j=1:4 if ( A(i,j)<=m ) ; m=A(i,j) end s=s+A(i,j) end end m s m=1 s=63 实验一 MATLAB 语言的控制语句 实验学时: 2 学时 实验目的: 1、了解MATLAB 语言的体系结构及MATLAB 语言的特点; 2、掌握MATLAB 循环语句、条件转移语句等的使用方法,能编写相应程序实现所需功能。 实验内容: 一、使用 for 循环、while 循环计算6302i i k == ∑ 1、for 循环 确定循环变量的起始值、终止值; 编写循环语句组,实现所需功能; 运行程序,并记录结果。 2、while 循环 确定循环的条件表达式; 编写循环语句组,实现所需功能; 运行程序,并记录结果。 二、采用搜寻法寻找矩阵23121416524332372148656166 646463A ??????=?????? 中最小的元素,以及它的位置。 实验报告:

MATLAB第一次实验

一、【实验目的】 了解matlab基础知识和操作 一、【实验任务】 P16 4. 编写函数文件,计算∑k!,并求出当n=20时表达式的值。 P27 2. 矩阵A=[1,2,3;4,5,6;7,8,9],B=[4,6,8;5,5,6;3,2,2],计算A*B,A.*B,并比较两者的区 别。 P27 3. 已知矩阵A=[5,2;9,1],B=[1,2;9,2],做简单的关系运算A>B,A= =B,AB)。 P34 1. 用π/4=1-/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10-6为止。 二、【实验程序】 P16 第4题 function s=s(n) y=1; sum=0; for i=1:n; y=y*i; sum=sum+y; end sum >> s(20) sum = 2.5613e+18 P27 第2题 A=[1 2 3;4 5 6;7 8 9]; B=[4 6 8;5 5 6;3 2 2]; >>A*B ans = 23 22 26 59 61 74 95 100 122 >> A.*B

ans = 4 12 24 2 25 36 21 16 18 P27 第3题 >> A=[5 2;9 1]; >> B=[1 2;9 2]; >> A>B ans = 1 0 0 0 >> A==B ans = 0 1 1 0 >> A> (A==B)&(A> (A==B)&(A>B) ans = 0 0 0 0

matlab第一次实验报告

Matlab第一次实验报告 2012029010010 尹康 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x,y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 程序代码: n=input('input the number of pionts:'); a=input('input a:'); b=input('input b:'); x=[]; y=[]; x(1)=input('input x1:'); y(1)=input('input y1:'); %输入点数、初始值以及系数for i=2:n x(i)=a*x(i-1)-b*(y(i-1)-x(i-1)^2); y(i)=a*x(i-1)+b*(y(i-1)-x(i-1)^2); %根据已输入的数据进行迭代end figure;plot(x,y,'linewidth',2) axis equal %横纵坐标等比例 text(x(1),y(1),'1st point') %标记初始点 运行结果:

心得体会及改进:在输入某些数据时,所绘曲线可能是一条折线(如:n=5,a=b=x1=1,y1=2)甚至只有一个点(如:n=5,a=b=x1=y1=1),此时可能出现曲线与坐标轴重合或无法看到点的情况,为了更清晰地展现曲线,可以使线宽适当加宽并标记初始点。 2.编程实现奥运5环图,允许用户输入环的直径。 程序代码: 函数circle: %在指定的圆心坐标处,用指定颜色、宽度的线条绘出指定半径、圆心角的弧 function f=circle(r,x,y,color,linw,alp1,alp2) alp=linspace(alp1,alp2); X=r*cos(alp)+x; Y=r*sin(alp)+y; plot(X,Y,color,'linewidth',linw) end 主程序代码: r=input('input r:');

Matlab习题

习题 1 1. 执行下列指令,观察其运算结果, 理解其意义: (1) [1 2;3 4]+10-2i (2) [1 2; 3 4].*[0.1 0.2; 0.3 0.4] (3) [1 2; 3 4].\[20 10;9 2] (4) [1 2; 3 4].^2 (5) exp([1 2; 3 4]) (6)log([1 10 100]) (7)prod([1 2;3 4]) (8)[a,b]=min([10 20;30 40]) (9)abs([1 2;3 4]-pi) (10) [1 2;3 4]>=[4,3;2 1] (11)find([10 20;30 40]>=[40,30;20 10]) (12) [a,b]=find([10 20;30 40]>=[40,30;20 10]) (提示:a 为行号,b 为列号) (13) all([1 2;3 4]>1) (14) any([1 2;3 4]>1) (15) linspace(3,4,5) (16) A=[1 2;3 4];A(:,2) 2. 执行下列指令,观察其运算结果、变量类型和字节数,理解其意义: (1) clear; a=1,b=num2str(a),c=a>0, a= =b, a= =c, b= =c (2) clear; fun='abs(x)',x=-2,eval(fun),double(fun) 3. 本金K 以每年n 次,每次p %的增值率(n 与p 的乘积为每年增值额的百分比)增加,当增加到rK 时所花费的时间为 ) 01.01ln(ln p n r T += (单位:年) 用MA TLAB 表达式写出该公式并用下列数据计算:r =2, p =0.5, n =12. 4.已知函数f (x )=x 4 -2x 在(-2, 2)内有两个根。取步长h =0.05, 通过计算函数值求得函数的最小值点和两个根的近似解。(提示:求近似根等价于求函数绝对值的最小值点) ? 5. (1) 用z=magic(10)得到10阶魔方矩阵; (2) 求z 的各列元素之和; (3) 求z 的对角线元素之和(提示:先用diag(z)提取z 的对角线); (4) 将z 的第二列除以3;

Matlab实验第一次实验答案

实验一Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i

1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置

自动控制原理Matlab程序作业(精)

自控控制原理 MATLAB 程序设计作业 指导老师:汪晓宁 目录 一、题目 (2) 二、运行结果 (3) 三、程序说明 (8) 四、附录 ............................................ 9 代码 . ............................................. 9 参考文献 .. (17) 一、题目 用 Matlab 创建用户界面,并完成以下功能 a 将产生未综合系统的根轨迹图以及 0.707阻尼比线, 你可以交互地选择交点的运行点。界面能显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及稳态误差 b 显示未综合系统的阶跃响应 c 输入控制器的参数, 绘制综合后系统的根轨迹图以及显示综合的设计点 (主导极点 , 允许不断改变控制器参数,知道所绘制的根轨迹通过设计点 d 对于综合后的系统, 显示运行点的坐标、增益,近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及误差系数 e 显示综合后系统的阶跃响应 二、运行结果

输入传递函数分子分母 生成根轨迹图

选择点并得到该点各项参数在下方输出面板输出 获得阶跃响应图 用 rltool(辅助,选择合适的插入零点

输入零点,并得到根轨迹图

选择根轨迹图上的任一点,得到数据,在下方输出面板输出得到阶跃响应图 三、运行说明

第一步, 在请输入分子后的输入框输入传递函数分子的矩阵, 在下一输入框输入传递函数分母并按“生成根轨迹图”按钮获得根轨迹 第二步, 按选择点并显示各参数获得根轨迹图上任一点的各项数据, 数据全部输出在下方输出面板 第三步,按“生成阶跃响应图”按钮可以获得该函数的阶跃响应 第四步,在“请输入插入零点”后的输入框中输入参数,并按“生成综合后根轨迹图” 按钮产生根轨迹 (可以通过点击“根轨迹校正”按钮,调用工具箱拖动零点进行快速查看根轨迹图,选择合适的根轨迹再在输入框中输入零点的值 第五步,按“选择点并显示各参数(综合后系统”选取各点,查阅参数,数据输出在下方输出面板上 第六步,按“生成阶跃响应图(综合后系统”可以得到综合后系统的阶跃响应 最后,点击“退出”结束程序 四、附录 代码: function varargout = Liushuai20122510(varargin % LIUSHUAI20122510 MATLAB code for Liushuai20122510.fig % LIUSHUAI20122510, by itself, creates a new LIUSHUAI20122510 or raises the existing % singleton*. %

MATLAB作业

一、必答题: 1. MATLAB系统由那些部分组成? 答:MATLAB系统主要由开发环境、MATLAB语言、MATLAB数学函数库、图形功能和应用程序接口五个部分组成。 2. 如何启动M文件编辑/调试器? 答:在操作界面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入“edit”命令也可以启动M文件编辑/调试器。 3. 存储在工作空间中的数组能编辑吗?如何操作? 答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 4. 在MATLAB中有几种获得帮助的途径? 答:在MATLAB中有多种获得帮助的途径: (1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器; (2)help命令:在命令窗口键入“help” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息; (3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数 (4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。 5. 有几种建立矩阵的方法?各有什么优点? 答:(1)以直接列出元素的形式输入; (2)通过语句和函数产生; (3).在m文件中创建矩阵; (4)从外部的数据文件中装入。 6. 命令文件与函数文件的主要区别是什么? 答:命令文件: M文件中最简单的一种,不需输出输入参数,用M 文件可以控制工作空间的所有数据。运行过程中产生的变量都是全局变量。运行一个命令文件等价于从命令窗口中顺序运行文件里的命令,程序不需要预先定义,只要依次将命令编辑在命令文件中即可。 函数文件:如果M文件的第一个可执行行以function开始,便是函数文件,每一个函数文件定义一个函数。函数文件区别于命令文件之处在于命令文件的变量在文件执行完成后保留在工作空间中,而函数文件内定义的变量只在函数文件内起作用,文件执行完后即被清除。 7. 创建符号变量有几种方法?

Matlab程序设计大作业(终审稿)

M a t l a b程序设计大作 业 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

Matlab程序设计 课程大作业 题目名称:_________________________________ 班级:_________________________________ 姓名:_________________________________ 学号:_________________________________ 课程教师:温海骏 学期: 2015-2016学年第2学期 完成时间:

MATLAB优化应用 §1 线性规划模型 一、线性规划问题: 问题1:生产计划问题 假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。每件乙产品,需用材料A类4公斤,B类5公斤,C类10公斤。甲单位产品的利润70元,乙单位产品的利润120元。问如何安排生产,才能使该厂所获的利润最大。 问题2:投资问题 某公司有一批资金用于4个工程项目的投资,其投资各项目时所得的净收益(投入资金百分比)如下表:工程项目收益表 由于某种原因,决定用于项目A的投资不大于其他各项投资之和而用于项目B和C的投资要大于项目D的投资。试确定该公司收益最大的投资分配方案。 问题3:运输问题

有A 、B 、C 三个食品加工厂,负责供给甲、乙、丙、丁四个市场。三个厂每天生产食品箱数上限如下表: 四个市场每天的需求量如下表: 从各厂运到各市场的运输费(元/每箱)由下表给出: 求在基本满足供需平衡的约束条件下使总运输费用最小。 §2 多目标规划模型 多目标规划定义为在一组约束下,多个不同的目标函数进行优化设计。 数学模型: 12min ()() ().()0,1,2, ,m j f x f x f x st g x j k ???? ≤= 其中x=(x 1 ,x 2 , … ,x n )为一个n 维向量;f i (x)为目标函数,i=1, 2, … ,m; g j (x)为系统约束, j=1, 2, … ,k 。

Matlab大作业

Matlab 大作业 (组内成员:彭超杰、南彦东、江明伟) 一、研究模型 (电车)通过控制油门(保持一定角度)来调节电动机能输出稳定的转速,从而控制车速稳定。 数学依据说明如下: 由图可知存在以下关系:a d a a u w k R i dt di L =++ (w k e d d =) L M M dt dw J -= a m i k M = L a m M i k dt dw J -=

k为反电势常数,m k为电动机电磁力矩常数,这里忽略阻尼力矩。d

二、数学模型 再看整个研究对象,示意图以课本为依据,不同点是这里将数控的进给运动,转换为汽车行驶所需要的扭矩。(这里不说明扭矩的具体产生过程,仅仅说明输出车轮旋转的角速度w ) 对照课本不同,() s θ变为()s N ,1 221z z w w =,1w 为电动机的转速,2w 为轮胎的转速,1z 为电动机的光轴齿轮的齿数,2z 为与轮胎相连光轴的 齿轮齿数。 )(*10110w x w k x ==,1 21z z k = ()c a m m d b a m x K K K k s k k JRs JLs K K K k s G i 1231+++= () c a m m d M K K K k s k k JRs JLs R Ls K s G L 1231)(++++-= 同理,忽略电枢绕组的电感L ,简化系统传递函数方框图如下

()JR K K K k JR s k k s JR K K K k s G c a m m d b a m x i 121++= ()JR K K K k JR s k k s K K K K k s k k Rs R K s G c a m m d c a m m d M L 121121++-=++-=

matlab作业题

第一章 MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令窗口、当前目录浏览器窗口、工作空间窗口、变量编辑器窗口、M文件编辑/调试器窗口、程序性能剖析窗口、MATLAB 帮助。 命令窗口是MATLAB命令操作的最主要窗口,可以把命令窗口当做高级的“草稿纸”。 在命令窗口中可以输入各种MATLAB的命令、函数和表达式,并显示除图形外的所有运算结果。 历史命令窗口用来记录并显示已经运行过的命令、函数和表达式,并允许用户对它们进行选择、复制和重运行,用户可以方便地输入和修改命令,选择多行命令以产生M文件。 当前目录窗口用来设置当前目录,可以随时显示当前目录下的M、MKL等文件的信息,扬文件类型、文件名、最后个修改时间和文件的说明信息等,并可以复制、编辑和运行M 文件及装载MAT数据文件。 工作空间窗口用来显示所有MATLAB工作空间中的变量名、数据结构、类型、大小和字节数。 2、熟悉课本中表格1.4、1.5、1.6、1.7、1.8的内容。 3、如何生成数据文件?如何把数据文件中的相关内容输入到工作空间中,用实例进行操作。

4、在工作空间中可以通过哪些命令管理变量,写出每种语法的具体操作过程。 答:(1)把工作空间中的数据存放到MAT数据文件。 语法:save filename 变量1 变量2 ……参数。 (2)从数据文件中取出变量存放到工作空间。 语法: load filename 变量1 变量2 ……。 (3)查阅MATLAB内存变量名。 语法:who (4)、查阅MATLAB内存变量变量名、大小、类型和字节数。 语法:whos (5)、删除工作空间中的变量。 语法:clear (6)查询工作空间中是否存在某个变量。 语法:i=exist(‘X’) 5、MATLAB用户文件格式有几哪种?扩展名各是什么? 答:MATLAB的用户文件格式通常有以下几种: (1)程序文件,扩展名为.m。 (2)数据文件,扩展名为.mat。 (3)可执行文件,扩展名为.mex。 (4)图形文件,扩展名为.fig。 (5)模型文件,扩展名为.mdl。 6、熟悉文件管理命令的语法,特别是命令type 作用。 7、详细操作课本26页例题1.3。

matlab程序设计作业

Matlab程序设计作业 姓名: 学号: 专业:

? MATLAB 程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y 二[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot 的原始数据、一次拟合曲线和三次拟合曲线,给出 原始曲线 MATLAB 代码和运行结果。 7 6 5 4 3 2 2 3 4 5 6 7 8 9 10

7 6.5 6 5.5 5 4.5 4 3.5 3 2.5 10 一次拟合 三次拟合

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2]; figure; plot(x,y) p1=polyfit(x,y,1); y1=polyval(p1,x); figure; plot(x,y1) p2=polyfit(x,y,3); y2=polyval(p2,x); figure; plot(x,y2) 2、在[0, 3n区间,绘制y二Sin(x)曲线(要求消去负半波,即(n 2n)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 x=0:pi/1000:3*pi; y=Sin(x); y1=(y>=0).*y; %消去负半波figure(1); plot(x,y1, 'b' ); a=mean(y1) %求出y1 的平均值 b=max(y1) %求出y1 的最大值b, 以及最大值在矩阵中的位置; d=x(find(y1==b)) >> ex1 a = 0.4243 b = 1 d = 1.5708 7.8540 >>

MATLAB期末作业(MATLAB应用)

Matlab在汽车振动分析中的应用 XXX (昆明理工大学交通工程学院,昆明650500) 摘要:在明确汽车振动的产生原因及其危害的基础上,对汽车振动进行了理论分析、MATLAB编程计算以及试验研究。结果表明:将MATLAB强大的数据处理和可视化技术应用于汽车振动分析与控制中,既可以验证理论分析的结果,又可以预测汽车响应,具有很高的实用价值。 关键字:MATLAB 汽车振动激励阻尼自由度 1 汽车振动的产生原因及其危害 机械振动是一种特殊形式的运动,激励、质量、弹性和阻尼是振动系统的四大要素。如果把汽车作为一个系统来研究,汽车本身就是一个具有质量、弹簧和阻尼的振动系统。由于汽车内部各部分的固有频率不同,汽车在行驶中常因路面不平、车速和运动方向的变化,车轮、发动机和传动系统的不平衡,以及齿轮的冲击等各种外部和内部的激振作用而极易产生整车和局部的强烈振动。汽车的这种振动使汽车的动力性得不到充分的发挥,使经济性变坏。同时,还要影响汽车的通过性、操纵稳定性和平顺性,使乘员产生不舒服和疲乏的感觉,甚至损坏汽车的零部件和运载的货物,缩短汽车的使用寿命[1]。因此,研究汽车振动的目的主要有两方面:一是降低振动对汽车零部件的损伤、对汽车使用性能的危害;二是试图利用振动为汽车设计服务,利用振动机理设计制造振动机械以减轻劳动强度,提高工作效率是不乏先例的。 2汽车振动的理论分析 2.1建立振动的力学模型 当一个实际振动系统较复杂时,建立的模型越复杂,越接近实际情况,模拟越逼真,但往往使分析困难;相反地,建立模型时,分析越容易,但得到的结果可能不精确,因此,在建立振动系统力学模型中,总是在求得简化表达和逼真模拟二者之间的折衷[2]。振动分析的关键就是:根据研究的内容和要求,把所研究的对象以及外界对它的作用简化为一个既简单又能在动态特性方面与原来的研究对象等效的力学模型。 汽车是由多个系统组成的复杂的振动系统,每个系统都存在振动问题。主要包括发动机、传动系统、制动系统、转向系统、悬架系统、车身和车架系统存在的振动问题。研究汽车这样一个复杂的振动系统,要根据所分析的问题进行简化,具体简化方案有以下几种 [3]: 1)当汽车对称于其纵轴线时,汽车车身只有垂直振动和俯仰振动对平顺性影响最大。此时,将汽车简化成如图1a)所示的四个自由度的平面模型,因轮胎阻尼较小,在此予以忽略。在这个模型中,车身质量m2,主要考虑垂直和俯仰两个自由度前、后车轴质量m1f,m1r。有两个垂直自由度。 2)当汽车前、后轴悬架质量分配达到一定值时,前、后悬架系统的垂直振动几乎是独立的。于是可以将汽车进一步简化为如图1b)所示的车身和车轮两个自由度振动系统。 M2:为簧载(车身)质量,m1为非簧载(车轮)质量。分析平顺性时,只考虑两个质量的垂直自由度。

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

MATLAB第一章作业答案

第一章M A T L A B概况与基本操作 1.选择题: (1)最初的MATLAB核心程序是采用A语言编写的。 A.FORTRAN B.C C.BASIC D.PASCAL (2)即将于2011年9月发布的MATLAB新版本的编号为D。 A.MATLAB 2011Ra B.MATLAB 2011Rb C.MATLAB R2011a D.MATLAB R2011b (3)在默认设置中,MATLAB中的注释语句显示的颜色是D。 A.黑色 B.蓝色 C.红色 D.绿色 (4)如果要以科学计数法显示15位有效数字,使用的命令是B。 A.format long B.format long e C.format long g D.format long d (5)在命令窗口新建变量a、b,如果只查看变量a的详细信息,使用的命令为B。 A.who a B.whos a C.who D.whos (6)如果要清除工作空间的所有变量,使用的命令为 C 。 A.clear B.clear all C.两者都可 D.两者都不可 (7)在创建变量时,如果不想立即在命令窗口中输出结果,可以在命令后加上D。 A.冒号 B.逗号 C.空格 D.分号 (8)如果要重新执行以前输入的命令,可以使用B键。 A.下箭头↓ B.上箭头↑ C.左箭头← D.右箭头→ (9)如果要查询函数inv的相关信息,并显示在命令窗口,应使用命令A。 A.help B.lookfor C.doc D.三者均可 (10)如果要启动Notebook文档,下列D操作是可行的。 A.在命令窗口输入notebook命令 B.在命令窗口输入notebook filename命令 C.在Word中启动M-book文档 D.三者均可 2.填空题: (1)MATLAB是MATrix和LABoratory两个单词前三个字母的组合,意为“矩阵实验室”,它的创始人是Cleve Moler和Jack Little。 (2)在MATLAB的默认设置中,关键字显示的字体为蓝色,命令、表达式、计算结果显示的字体为黑色,字符串显示的字体为紫色,注释显示的字体为绿色,错误信息显示的字体为红色。 (3)在命令窗口中,输出结果显示为各行之间添加空行的命令为format compact,各行之间不添加空行的命令为format compact。 备注:本题布置给大家时有一点小错误,现在予以更正。 (4)在MATLAB中,各种标点符号的作用是不同的。例如,空格的作用是分隔数组中每一行的各个元素,逗号的作用是分隔数组中每一行的各个元素或不同的命令,分号的作用是分隔数组中的各行或控制命令执行结果是否在命令窗口显示,冒号的作用是生成一维数组或显示全部元素,百分号的作用是注释行的开头,…的作用是把相邻两行的语句连接为一个命令,感叹号的作用是执行操作系统命令。 3.先建立自己的工作目录,再将自己的工作目录设置到MATLAB搜索路径下。请写出操作步骤或用Matlab命令实现。用help命令能查询到自己的工作目录吗? 解:操作步骤: (1)在Windows环境中建立一个工作目录,如:c:\mywork; (2)启动MATLAB,在File菜单中选择Set Path…命令,显示出如下图的对话框:

2010专第一次上机作业:%20MatLab练习题-基本运算

一、书上命令练习: 二、MatLab 练习1 注意: 1,请按要求作题,写出程序并把结果附上,并保存文件. 2,仔细填写 “学生信息”. 3,把此word 文档的文件名更名为你的 “学号 姓名(*)”-*表示第几次作业.在下课前5分钟提交. 1, (5*2+1.3-0.8)*10^2/25 答案:42 2,y =23log )10sin(4 ) 43.0(2 +?+-e π 答案: 3,z = 10sin(π/3) ... cos(π/3) 答案: 4,x = sin(223/3), y = x^2,z = y*10 ; 求x+2y-5z 答案: 5,i e z i z i z ?==+=π23215,2,72,计算3 221z z z z z += 答案: 6, 建立起始值=3,增量值=5.5,终止值=44的一维数组x (填写程序语句) 答案:X=(3:5.5:44) X =

3.0000 8.5000 1 4.0000 19.5000 2 5.0000 30.5000 3 6.0000 41.5000 7, 建立等差一维数组x :首项为0,末项为π,项数为15 (填写程序语句) 答案: >> X=linspace(0,pi,15) X = Columns 1 through 8 0 0.2244 0.4488 0.6732 0.8976 1.1220 1.3464 1.5708 Columns 9 through 15 1.7952 2.0196 2.2440 2.4684 2.6928 2.9172 3.1416 8, 计算行列式的值1 8 7 624 3 23 =A 答案:-8 9, 矩阵??????????=18 7 624323A ,矩阵??? ? ? ?? ???=33 3 222111 B ;分别求出A x B 及A 与B 中对应元素 之间的乘积的程序语句。 答案>> A=[3 2 3;4 2 6;7 8 1] A = 3 2 3 4 2 6 7 8 1 >> det(A) ans = -8

Matlab作业习题与答案详解(附程序)

clear all;clc;close all; x=-10:0.01:20; y=4*sin(x)./x; ymin=min(y) 二、蒙特卡罗算法的数值计算 当前的油位高度是2.3米,见图1。模拟油流进储油罐的过程(图维数任选),请计算罐内油量。三维的效果图参见图2。储油罐由两部分组成,中间是圆柱体,两端是球罐体。(本题简化自2011年UCMCM A题《储油罐的变位识别与罐容表标定》,细节参见原题原题附件2 cumcm2010A.doc。) 图1

图2 主程序: clc; clear all; close all; center1=[-3.375,0,1.5]; %左球罐中心center2=[3.375,0,1.5]; %右球罐中心 n=10000; %每次的撒点数 delta=0.02; %层高 h=3; en=h/delta; Show; %画出油罐 for i=0:en-1 x=(rand(1,n)-0.5)*10; %随机生成n个点

y=(rand(1,n)-0.5)*h; z=(rand(1,n)*delta+i*delta); Z=[x;y;z]; [dis1 dis2]=juli(center1,center2,Z); %算出各点对应的距离 index=find(((x>-4&x<4)&dis2<1.5)|(x<-4|x>4)&dis1<1.625); %找出在罐内的点 plot3(x(index),y(index),z(index),'.k'); %画出在罐内的点 drawnow end 子程序1: function [dis1 dis2]=juli(a,b,q) d11=q(1,:)-a(1); d12=q(2,:)-a(2); d13=q(3,:)-a(3); d1=sqrt(d11.^2+d12.^2+d13.^2); d21=q(1,:)-b(1); d22=q(2,:)-b(2);