当前位置:文档之家› 中南大学matlab课后习题(11)

中南大学matlab课后习题(11)

中南大学matlab课后习题(11)
中南大学matlab课后习题(11)

MATLAB程序设计

上机练习课后题

电科1202班行晓慧学号1404120229

电科1202班羊月妹学号1404120304

电科1202班周悦学号1404120316

第一章 一实验内容

1. 打开软件,按照步骤:File - Set Path - Add Folder - save 在盘中建立

一个名为matlab 的工作目录,然后在命令窗口运行>>help 命令查询所设置的工作目录,观察结果。 2.源代码 例1-1

x=[0:0.5:360]*pi/180; plot(x,sin(x),x,cos(x)); 例1-2

p=[3,7,9,0,-23]; x=roots(p) 例1-3

①quad('x.*log(1+x)',0,1) ②syms x

int(x*log(1+x),0,1) 例1-4

① a=[2,-3,1;8,3,2;45,1,-9];

b=[4;2;17]; x=inv(a)*b ② syms x y z

[x,y,z]=solve(2*x-3*y+z-4,8*x+3*y+2*z-2,45*x+y-9*z-17)

MATLAB 的主要优点:编程效率高;用户使用方便;扩展能力强,交互性好;移植性和开发性好;语句简单,内涵丰富;高效方便的矩阵和数组运算;方便的绘图功能。

3. 利用MATLAB 的帮助功能,查询了解到inv 、plot 、 max 、round 等函数的功能与用法如下:

Inv 取矩阵的逆。Plot 绘制平面图 INV Matrix inverse.PLOT Linear plot. Max 求最大值 help round 四舍五入 MAX Largest component. ROUND Round towards nearest integer. 4. x=0:pi/10:2*pi; y=sin(x);

y 的图形如图: 纵轴是y 的值,x 是将【0:2pi 】分为20等分

5

10

15

20

25

-1-0.8-0.6-0.4-0.200.20.40.60.81

思考练习:

1.①启动MATLAB系统有3种常见方法: (1)使用Windows“开始”菜单。 (2)运行MATLAB

系统启动程序matlab.exe。 (3) 利用快捷方式。

②要退出MATLAB系统,也有3种常见方法: (1) 在MATLAB主窗口File菜单中选中

Exit MATLAB命令。 (2) 在MATLAB命令窗口输入Exit或Quit命令。 (3) 单击

MATLAB主窗口的“关闭”按钮。

2.matlab的主要功能

数值计算、符号计算、优化工具、数据分析和可视化功能、工具箱和非线性动态系统建

模和仿真

3.如果一个MATLAB命令包含的字符很多,需要分成多行输入,只要同时按下shift和Enter

键即可。

4.Lookfor与help的区别:

在所有M文件中找“关键词”,比如:lookfor max,而help是显示matlab内置的帮助信息,比如help inv。

5. 在Matlab环境下,同名变量与M文件的执行问题:

% 可以调用,为了避开当前工作间(Worrkspace),采用函数调用方

式function runfac(fname)

run fname %

保存为runfac.m

.........

>>runfac(fac)

第二章

实验指导

1.(1) w=sqrt(2)*(1+0.34245*10^(-6))

w = 1.4142

(2) a=3.5;

b=5;

c=-9.8;

x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a)

x =0.9829

(3) a=3.32;

b=-7.9;

y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a)

y = -128.4271

(4) t=[2,1-3i;5,-0.65];

z=0.5*exp(2*t)*log(t+sqrt(1+t*t))

z =

1.0e+004 *

0.0048 + 0.0002i 0.0048 - 0.0034i

1.5899

2.0090 - 1.3580i

2.(1)(2)(3)

>> A=[-1,5,-4;0,7,8;3,61,7];

B=[8,3,-1;2,5,3,;-3,2,0];

>> Y1=A+6*B

Y1 =

47 23 -10

12 37 26

-15 73 7

>> Y2=A*A-B+1

Y2 =

-18 -216 18

23 533 110

22 868 526

>> Y3=A*B

Y3 =

14 14 16

-10 51 21

125 328 180

>> Y4=A.*B

Y4 =

-8 15 4

0 35 24

-9 122 0

>> Y5=A/B

Y5 =

1.2234 -0.9255

2.9787

-0.9468 2.3511 -0.9574

4.6170 3.8723 13.8936

>> Y6=B\A

Y6 =

-0.5106 -8.6170 -1.1277

0.7340 17.5745 1.8085

-0.8830 -21.2128 0.4043

>> Y7=[A,B]

Y7 =

-1 5 -4 8 3 -1 0 7 8 2 5 3 3 61 7 -3 2 0 >> Y8=[A([1,3],:);B^2]

Y8 =

-1 5 -4

3 61 7

73 37 1

17 37 13

-20 1 9

>>

3.A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; k=find(A>=10&A<=25)

A(k)

B=A(1:3,:)

C=A(:,1:2)

D=A(2:4,3:4)

E=B*C

E

E&D

E|D

~E|~D

k =

1

5

ans =

23

10

B =

23.0000 10.0000 -0.7780 0

41.0000 -45.0000 65.0000 5.0000

32.0000 5.0000 0 32.0000

C =

23.0000 10.0000

41.0000 -45.0000

32.0000 5.0000

6.0000 -9.5400

D =

65.0000 5.0000

0 32.0000

54.0000 3.1400

E =

1.0e+003 *

0.9141 -0.2239

1.2080

2.7123

1.1330 -0.2103

ans =

0 1

0 0

0 1

ans =

1 1

0 1

1 1

ans =

1 1

1 1

1 1

ans =

0 0

1 0

0 0

>>

4. H=hilb(5);

P=pascal(5);

Hh=det(H)

Hh = 3.7493e-012

Hp=det(P)

Hp = 1

Th=cond(H)

Th = 4.7661e+005

Tp=cond(P)

Tp = 8.5175e+003

条件数越趋近于1,矩阵的性能越好,所以帕斯卡矩阵性能更好。

5. A=[-29,6,18;20,5,12;-8,8,5]

A =

-29 6 18

20 5 12

-8 8 5

[V,D]=eig(A)

V =

0.7130 0.2803 0.2733

-0.6084 -0.7867 0.8725

0.3487 0.5501 0.4050

D =

-25.3169 0 0

0 -10.5182 0

0 0 16.8351

V为A的特征向量,D为A的特征值。它们之间满足A*V=V*D

思考练习

1.在MATLAB中6+7i是一个复数常量,6+7*i则是一个表达式。i是虚数单位,而I是单

位向量。

2. A.*B表示A和B单个元素之间对应相乘,A*B是按矩阵乘法的规则乘。

A./B表示A矩阵除以B矩阵的对应元素,

B.\A等价于A./B。

A/B表示A *inv(B)而B\A表示inv(B)* A,对于矩阵运算一般两式不等。

3.(1) A(7)=[]

(2) abs(x)

(3) reshape(x,3,4)

(4) k=find(t==0); t(k)=0

(5) ones(size(A))

(6) diag(A)

B= diag(diag(A))

4. 3+randn(25,20)

5.(1)A=[1,-1,2,3;5,1,-4,2;3,0,5,2;11,15,0,9]; D=diag(A)

B=triu(A)

C=tril(A)

E=inv(A)

F=det(A)

r=rank(A)

a1=norm(A,1)

a2=norm(A)

ainf=norm(A,inf)

C1=cond(A)

trace(A)

D =

1

1

5

9

B =

1 -1

2 3

0 1 -4 2

0 0 5 2

0 0 0 9

C =

1 0 0 0

5 1 0 0

3 0 5 0

11 15 0 9

E =

-0.1758 0.1641 0.2016 -0.0227

-0.1055 -0.1016 -0.0391 0.0664

-0.0508 -0.0859 0.1516 0.0023

0.3906 -0.0313 -0.1813 0.0281

F =

1280

r =

4

a1 =

20

a2 =

21.3005

ainf =

35

C1 =

11.1739

ans =

16

(2)A=[0.43,43,2;-8.9,4,21]; D=diag(A)

B=triu(A)

C=tril(A)

r=rank(A)

a1=norm(A,1)

a2=norm(A)

ainf=norm(A,inf)

C1=cond(A)

trace(A)

D =

1

1

5

9

B =

1 -1

2 3

0 1 -4 2

0 0 5 2

0 0 0 9

C =

1 0 0 0

5 1 0 0

3 0 5 0

11 15 0 9

r =

4

a1 =

20

a2 =

21.3005

ainf =

35

C1 =

11.1739

ans =

16

6. A=[34,NaN,Inf,-Inf,-pi,eps,0];

all(A)

ans = 0

any(A)

ans = 1

isnan(A)

ans = 0 1 0 0 0 0 0

isinf(A)

ans = 0 0 1 1 0 0 0

isfinite(A)

ans = 1 0 0 0 1 1 1

7.结构矩阵建立P46

结构矩阵名.成员名=表达式

单元矩阵建立 P47

矩阵元素用大括号括起来。

8.用稀疏存储方式可以可以节省内存空间; 运算规则上,稀疏矩阵与普通矩阵一样,只是矩阵的存储方式不同。在运算过程中,稀疏存储矩阵可以直接参与运算。当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。

第三章;

实验指导;

1、 n=input('请输入一个三位数:');

a=fix(n/100);

b=fix((n-a*100)/10);

c=n-a*100-b*10;

d=c*100+b*10+a

2(1)

n=input('请输入成绩');

switch n

case num2cell(90:100)

p='A';

case num2cell(80:89)

p='B';

case num2cell(70:79)

p='C';

case num2cell(60:69)

p='D';

otherwise

p='E';

end

price=p

(2)n=input('请输入成绩');

if n>=90&n<=100

p='A';

elseif n>=80&n<=89

p='B';

elseif n>=70&n<=79

p='C';

elseif n>=60&n<=69

p='D';

else

p='E';

end

price=p

(3)try

n;

catch

price='erroe'

end

3

n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76,908,6];

a=n(1);

b=n(1);

for m=2:20

if n(m)>a

a=n(m);

elseif n(m)

b=n(m);

end

end

max=a

min=b

法2

n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76,908,6];

min=min(n)

max=max(n)

4

b=[-3.0:0.1:3.0];

for n=1:61

a=b(n);

y(n)=(exp(0.3*a)-exp(-0.3*a))/2*sin(a+0.3)+log((0.3+a)/2); end

y

5

y1=0;

y2=1;

n=input('请输入n的值:');

for i=1:n

y1=y1+1/i^2;

y2=y2*((4*i*i)/((2*i-1)*(2*i+1)));

end

y1

y2

6

A=[1,1,1,1,1,1;2,2,2,2,2,2;3,3,3,3,3,3;4,4,4,4,4,4;5,5,5,5,5,5;6,6,6,6,6,6]; n=input('请输入n的值:');

if n<=5&n>=0

disp(A([n],:));

elseif n<0

disp(lasterr);

else disp(A([6],:));

disp(lasterr);

end

7(1)

f=[];

for n=1:40

f(n)=n+10*log(n^2+5);

end

y=f(40)/(f(30)+f(20))

(2)

f=[];a=0;

for n=1:40

f(n)=a+n*(n+1);

a=f(n);

end

y=f(40)/(f(30)+f(20))

8

y=0;

m=input('输入m的值:');

n=input('输入n值:');

for i=1:n

y=y+i^m;

end

y

************************************************************

function s=shi8_1(n,m)

s=0;

for i=1:n

s=s+i^m;

end

************************************************************

shi8_1(100,1)+shi8_1(50,2)+shi8_1(10,1/2)

思考练习

1

用MATLAB语言编写的程序,称为M文件。

为建立新的M文件,启动MATLAB文本编辑器有3种方法:

(1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。

(2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M 文件的内容并存盘。

(3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB 文本编辑器后,输入M文件的内容并存盘。

打开已有的M文件,也有3种方法:

(1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。

(2) 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。

(3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。

2

N=[1,2,3,4,5];

2.*N

N./2

1./N

1./N.^2

3

s=fix(100*rand(1,20)*9/10+10)

y=sum(s)/20

j=0;

for i=1:20

if s(i)

j=j+1;

A(j)=s(i);

else continue;

end

end

A

4

y1=0;y2=0;

n=input('请输入n的值:');

for i=1:n

y1=y1+-(-1)^i/(2*i-1);

y2=y2+1/4^i;

end

y1

y2

5、function [m,n]=chengji(A,B)

m=a.*b;

n=a*b;

a=[1 2 3;4 5 6;7 8 9]

b=[-1 0 1;1 -1 0;0 1 1]

[m,n]=chengji(a,b);

disp('a.*b=');

disp(m);

disp('a*b= ');

disp(n);

6.

>>function [ f ] = BaiduZd( shu ,Z,n )

%UNTITLED2 Summary of this function goes here % Detailed explanation goes here

switch Z

case 'sin'

f=sin(shu);

case 'cos'

f=cos(shu);

case 'log'

f=log(shu);

case 'zhishu'

f=shu^n

otherwise

disp('error')

end

end

第四章

实验指导

1(1)

x=-10:0.05:10;

y=x-x.^3./6;

plot(x,y)

(2)

x=-10:0.5:10;

ezplot('x^2+2*y^2-64',[-8,8]); grid on;

2、

t=-pi:pi/10:pi;

y=1./(1+exp(-t));

subplot(2,2,1);bar(t,y);

title('ì?D?í?(t,y)');

axis([-pi,pi,0,1]);

subplot(2,2,2);

stairs(t,y,'b');

title('?×ìYí?(t,y)');

axis([-pi,pi,0,1]);

subplot(2,2,3);

stem(t,y,'k');

title('??í?(t,y)');

axis([-pi,pi,0,1]);

subplot(2,2,4);

loglog(t,y,'y');

title('??êy×?±êí?(t,y)');

3、(1)

t=0:pi/50:2*pi;

r=5.*cos(t)+4;

polar(t,r);

title('\rho=5*cos\theta+4'); (2)

t=-pi/3:pi/50:pi/3;

r=5.*((sin(t)).^2)./cos(t); polar(t,r);

4(1)

t=0:pi/50:2*pi;

x=exp(-t./20).*cos(t);

y=exp(-t./20).*sin(t);

z=t;

plot3(x,y,z);

grid on;

(2)

[x,y]=meshgrid(-5:5);

z=zeros(11)+5;

mesh(x,y,z);

shading interp;

5、

[x,y,z]=sphere(20);

surf(x,y,z);

axis off;

shading interp;

m=moviein(20);

for i=1:20

axis([-i,i,-i,i,-i,i])

m(:,i)=getframe;

end

movie(m,4);

思考练习:

1、在同一坐标轴绘制多条二维曲线的方法:(1)利用plot函数,输入参数是矩阵形式;(2)利用plot函数,其里面的参数是多组向量对。

2、(1)

x=-5:0.1:5;

y=(1./(2*pi)).*exp((-(x.^2))/2);

plot(x,y);

(2)

t=-2*pi:0.1:2*pi;

x=t.*sin(t);

y=t.*cos(t);

plot(x,y);

grid on;

3、t=0:pi/1000:pi; x=sin(3.*t).*cos(t);

y1=sin(3.*t).*sin(t);

y2=2.*x-0.5;

plot(x,y1,'k',x,y2);

hold on;

k=find(abs(y1-y2)<1e-2);

x1=x(k);

y3=2.*x1-0.5;

plot(x1,y3,'rp');

4、x=-2:0.01:2;

y=sin(1./x);

subplot(2,1,1);

plot(x,y);

subplot(2,1,2);

fplot('sin(1./x)',[-2,2],1e-4);

两曲线的不同:利用fplot绘制的曲线靠近坐标轴中心处比plot绘制的密集。

5、(1)

i=-4*pi:0.1:10;

j=12./sqrt(i);

polar(i,j);

title('{\rho}=12/sqrt(\theta)')

(2)

a=-pi/6:0.01:pi/6;

b=3.*asin(a).*cos(a)./((sin(a)).^3+(cos(a)).^3); polar(a,b);

6、(1)

[u,v]=meshgrid(-4:0.1:4);

x=3.*u.*sin(v);

y=2.*u.*cos(v);

z=4.*u.^2;

subplot(2,1,1);

mesh(x,y,z);

subplot(2,1,2);

surf(x,y,z);

(2)

[u,v]=meshgrid(-4:0.1:4);

x=3.*u.*sin(v);

y=2.*u.*cos(v);

z=4.*u.^2;

subplot(2,1,1);

mesh(x,y,z);

subplot(2,1,2);

surf(x,y,z);

第五章

一、实验内容

1.A=randn(10,5)

x=mean(A)

y=std(A)

Max=max(max(A))

Min=min(min(A))

Sumhang=sum(A,2)

SumA=sum(Sumhang)

B=sort(A);

C=sort(B,2,'descend');

C

2(1)a=0:15:90;

b=a./180.*pi; s=sin(b)

c=0:15:75;

d=c./180.*pi; t=tan(d)

e=input('请输入想计算的值:');

S=sin(e/180*pi) T=tan(e/180*pi)

S1=interp1(a,s,e,'spline')

T1=interp1(c,t,e,'spline')

P1=polyfit(a,s,5);

P2=polyfit(c,t,5);

S2=polyval(P1,e)

T2=polyval(P2,e)

(2)

n=[1,9,16,25,36,49,64,81,100];

N=sqrt(n);

x=input('ji suan zhi : ');

interp1(n,N,x,'cubic')

3 N=64; T=5;

t=linspace(0,T,N);

h=exp(-t);

dt=t(2)-t(1);

f=1/dt;

X=fft(t);

F=X(1:N/2+1);

f=f*(0:N/2)/N;

plot(f,abs(F),'-*')

4 P=[2,-3,0,5,13];

Q=[1,5,8];

p=polyder(P)

q=polyder(P,Q)

[a,b]=polyder(P,Q)

5 P1=[1,2,4,0,5]; P2=[0,1,2]; P3=[1,2,3];

P=P1+conv(P2,P3)

X=roots(P)

A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];

p=polyval(P,A)

二、思考练习

1. 函数sum与cumsum的差别:

sum是数据序列求和的函数。Cumsum是累加指从数据序列的第1个元素开始直到当前元素进行累加,作为结果序列的当前元素值。在MATLAB中,使用cumsum函数求得向量和矩阵元素的累加。

2.在工程测量和科学实验中,所得到的数据通常是离散的。如果要得到这些离散点以外的其他点的数值,就需要根据这些已知数据进行插值。

与数据插值类似,曲线拟合的目的也是用一个比较简单的函数去逼近一个复杂的或未知函数,所依据的条件都是在一个区间或一个区域上的有限个采样点的函数值。

3.在matlab中,N次多项式是用一个长度为n+1的向量来表示,缺少的幂次项系数为0。

4 、A=rand(1,30000);

a=mean(A)

b=std(A)

Max=max(A)

Min=min(A)

n=0;

for i=1:30000

if(A(i)>0.5)

n=n+1;

end

end

n

y=n/30000

5 、p=[45,74,54,55,14;78,98,45,74,12;87,98,85,52,65]

[M,S]=max(p)

[N,H]=min(p)

junzhi=mean(p,1)

fangcha=std(p,1,1)

zong=sum(p,2);

[Max,wei]=max(zong)

[Min,wei]=min(zong)

[zcj,xsxh]=sort(zong,'descend')

6 、x=[1:10:101];

y=[0,1.0414,1.3222,1.4914,1.6128,1.7076,1.7853,1.8513,1.9085,1.9590,2.0043]; [p,s]=polyfit(x,y,5)

a=1:5:101;

y1=polyval(p,a);

plot(x,y,':o',a,y1,'-*')

第六章

实验指导

1、A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];

p=[0.95,0.67,0.52]';

x=A\p

A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];

p=[0.95,0.67,0.53]';

x=A\p

cond(A)

x =

1.2000

0.6000

0.6000

x =

3.0000

-6.6000

6.6000

ans =

1.3533e+003

2(1)

function fx=funx1(x)

fx=x^41+x^3+1; %建立函数文件

x1=fzero(@funx1,-1)

x1 =

-0.9525

(2)

function fx=funx2(x)

fx=x-sin(x)/x; %建立函数文件

x2=fzero(@funx2,0.5)

x2 =

0.8767

(3)

function q=fun3(p)

x=p(1);

y=p(2);

z=p(3);

q(1)=sin(x)+y^2+log(z)-7;

q(2)=3*x+2^y-z^3+1;

q(3)=x+y+z-5; %建立函数文件

options=optimset('Display','off');

x=fsolve(@fun3,[1,1,1]',options)

q=fun3(x)

x =

0.5991

2.3959

2.0050

q =

1.0e-010 *

0.2213 0.3804 0.0009

3(1)

function yp=fun4(t,y)

yp=-(1.2+sin(10*t))*y; %建立函数文件

t0=0;

tf=5;

y0=1;

[t,y]=ode23(@fun4,[t0,tf],y0);

t'

y'

ans =

Columns 1 through 10

0 0.0667 0.1375 0.2003 0.2695 0.3528 0.4362 0.5033 0.5663 0.6369

Columns 11 through 20

0.6913 0.7457 0.8081 0.8738 0.9591 1.0277 1.0963

1.1600 1.2246 1.3082

Columns 21 through 30

1.3714 1.4347 1.5001 1.5842 1.6530 1.7219 1.7858 1.8501 1.9319 1.9953

Columns 31 through 40

2.0587 2.1236 2.2053 2.2745 2.3438 2.4080 2.4719 2.5501 2.6140 2.6779

Columns 41 through 50

2.7419 2.8193 2.9046 2.9685

3.0323 3.0959 3.1721

3.2364 3.3007 3.3642

Columns 51 through 60

3.4395 3.5328 3.5965 3.6602 3.7238 3.7998 3.8642 3.9286 3.9920

4.0671

Columns 61 through 70

4.1408 4.2144 4.2800 4.3432 4.4159 4.4812 4.5465 4.6094 4.6812 4.7567

Columns 71 through 74

4.8322 4.8990 4.9620

5.0000

ans =

Columns 1 through 10

1.0000 0.9035 0.7822 0.6823 0.5984 0.5402 0.5182 0.5106 0.4976 0.4656

Columns 11 through 20

0.4280 0.3844 0.3355 0.2936 0.2595 0.2469 0.2421 0.2382 0.2290 0.2054

Columns 21 through 30

0.1819 0.1585 0.1387 0.1225 0.1164 0.1140 0.1122 0.1080 0.0974 0.0864

Columns 31 through 40

0.0753 0.0658 0.0581 0.0549 0.0537 0.0529 0.0511 0.0466 0.0415 0.0361

Columns 41 through 50

0.0316 0.0278 0.0258 0.0253 0.0249 0.0241 0.0221 0.0197 0.0172 0.0150

Columns 51 through 60

0.0132 0.0122 0.0119 0.0117 0.0114 0.0104 0.0093 0.0081 0.0071 0.0062

Columns 61 through 70

0.0058 0.0056 0.0055 0.0054 0.0050 0.0045 0.0039 0.0034 0.0030 0.0027

Columns 71 through 74

0.0026 0.0026 0.0025 0.0025

>>

(2)

function yp=fun5(t,y)

yp=cos(t)-y/(1+t^2); %建立函数文件

t0=0;

tf=5;

matlab课后习题解答第二章

第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象 3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+) 〖目的〗 不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+ c2=sym(3/7+ c3=sym('3/7+') c4=vpa(sym(3/7+) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = c2 = 37/70 c3 = c4 = Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1)

ans = a symvar(sym('z*exp(j*th)'),1) ans = z 5求符号矩阵???? ??????=3332 31 232221 131211 a a a a a a a a a A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。 〖目的〗 理解subexpr 指令。 〖解答〗 A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A); [IAs,d]=subexpr(IA,d) A = [ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA = a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs = [ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d = 1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 8(1)通过符号计算求t t y sin )(=的导数 dt dy 。(2)然后根据此结果,求- =0t dt dy 和2 π = t dt dy 。 〖目的〗 diff, limit 指令的应用。 如何理解运行结果。 〖解答〗 syms t

中南大学matlab课后答案-第九章

实验指导 1, >> figure('Color',[1,0,0],'WindowButtonDownFcn','text(0.5,0.5,''Left Button Pressed'')');axis off 2, (1)默认属性 >> x=linspace(0,600,100000);y=(log(x+sqrt(1+x.*x)))/2;line(x,y) 句柄操作 >> x=linspace(0,600,100000); y=(log(x+sqrt(1+x.*x)))/2; line(x,y,'linewidth',3,'linestyle','-.','color','r'); text(300,3.5,'文字标注') (2)默认属性 >> t=linspace(0,20,500);x=t.*t;y=5.*t.*t;line(x,y) 句柄操作 >> t=linspace(0,20,500); x=t.*t;y=5.*t.*t;line(x,y); line(x,y,'linewidth',3,'linestyle','-.','color','r'); text(250,1600,'文字标注') 3, (1) >> x=linspace(0,50,1000); [x,y]=meshgrid(x); z=x.*x+y.*y-5.*sin(x.*y); axes('view',[-37.5,30]); surf(x,y,z); light('position',[10,20,4000]); shading interp (2) >> x=linspace(0,50,1000); [x,y]=meshgrid(x); z=y.*y.*y; axes('view',[-37.5,30]); surf(x,y,z); light('position',[30,20,1300000]); shading interp 4, >> x=-2*pi:0.01:2*pi; y1=sin(x); y2=cos(x); axes('position',[0.1,0.6,0.2,0.2]); plot(x,y1); axes('position',[0.6,0.6,0.2,0.2]); plot(x,y2); axes('position',[0.1,0.1,0.2,0.2]); fplot('tan(x)',[-1.5,1.5]); axes('position',[0.6,0.1,0.2,0.2]);

Matlab课后习题解答

P16 Q2: 计算表达式()2 tan arccos x x -在0.25x =和0.78x π =时的函数值。 function y=jie(x) y=tan(-x.^2)*acos(x); >> jie(0.25) ans = -0.0825 >> jie(0.78*pi) ans = 0 + 0.4418i Q3:编写M 命令文件,求5010 2 1 1 1k k k k ==+ ∑∑ 的值。 a=0;b=0; for i=1:50 a=a+i*i; end for j=1:10 b=b+1/j; end c=a+b; >> c c = 4.2928e+004 P27 Q2:矩阵1234567 8 9A ????=??????,4 685563 2 2B ?? ?? =? ????? ,计算A B *,.A B *,并比较两者的区别。 >> 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 20 25 36 21 16 18 A*B表示A与B两矩阵相乘。 A.*B表示A与B对应元素相乘。 P34 Q2:编写一个转换成绩等级的程序,其中成绩等级转换标准为:考试分数在[] 90,100显示为优秀;分数在[) 0,60的 60,80的显示为及格;分数在[) 80,90的显示为良好;分数在[) 显示为不及格。 if x>=90 disp('优秀'); elseif x>=80 disp('良好'); elseif x>=60 disp('及格'); else disp('不及格'); end >> x=85 x = 85 良好

中南大学材料学院科学计算与MATLAB考试题库

练习题 1.求函数在指定点的数值导数 x=sym('x'); >> y=[x x.^2 x.^3;1 2*x 3*x.^2;0 2 6*x]; >> x=1; >> eval(diff(y)) ans = 1 2 3 0 2 6 0 0 6 >> x=2; >> eval(diff(y)) ans = 1 4 12 0 2 12 0 0 6 >> x=3; >> eval(diff(y)) ans = 1 6 27 0 2 18 0 0 6 2.求下列函数导数 (1) x=sym('x'); >> y=x^10+10^x+(log(10))/log(x); >> diff(y) ans = 10*x^9+10^x*log(10)-2592480341699211/1125899906842624/log(x)^2/x (2) x=sym('x');

>> y=log(1+x); >> x=1; >> eval(diff(y,2)) %在x=1的条件下对y表达式求两次导数后导函数的值 ans = -0.2500 3.用数值方法求下列积分 首先先讲一下trapz的用法,如下题 t=0:0.001:1; >> y=t; >> trapz(t,y) ans = 0.5000 (1) >> x=1:0.01:5; >> y=(x.^2).*sqrt(2*x.^2+3); >> trapz(x,y) ans = 232.8066 (2) x=pi/4:0.01:pi/3; >> y=x./(sin(x).^2); >> trapz(x,y) ans = 0.3810 第三题拟合曲线题 x=[0:0.1:1]; >> y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; >> a=polyfit(x,y,2); >> x=[0.05:0.2:1.05]; >> y=a(3)+a(2)*x+a(1)*x.^2 %注意x要在y前先赋值,不然y不会运行为最新的x对呀的y值 y =

matlab程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化 对b的值进行改变:对比发现b的值使这个圆转换了一定的角度

对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

中南大学通信原理matlab课程设计报告

通信原理课程设计报告 通信1005班

实验目的 通信原理实验是针对通信工程专业学生的实践教学环节,通过这一环节,可使学生巩固相关课程知识,增强动手能力,提高学生对通信系统的仿真技能。在强调基本原理的同时,更突出设计过程的锻炼,强化学生的实践创新能力。 选题:第二题、码型变换的仿真实现 Ⅰ、基本任务:原始PCM脉冲编码信号的AMI码型和CMI码型变换。 主要步骤和要求: (1)把原始的PCM脉冲编码信号转换成适合在信道中传输的AMI码型。要求PCM码可以是数字型也可以是字符型,要求画出AMI码型变换前后的波形图。 (2)把原始的PCM脉冲编码信号转换成适合在信道中传输的CMI码型。要求PCM码可以是数字型也可以是字符型,要求画出CMI码型变换前后的波形图。 Ⅱ、选做任务:原始PCM脉冲编码信号的HDB3码型转换。 主要步骤和要求: 把原始的PCM脉冲编码信号转换成适合在信道中传输的HDB3码型。要求PCM码可以是数字型也可以是字符型;要求保证输入的PCM脉冲编码信号中1的个数为偶数;要求画出HDB3码型变换前后的波形图。 设计原理 AMI码 AMI(Alternative Mark Inversion)码的全称是信号交替反转码,是通信编码中的一种,为极性交替翻转码,分别有一个高电平和低电平表示两个极性。 一、编码规则: 消息代码中的0 传输码中的0 ,消息代码中的1 传输码中的+1、-1交替 例如: 消息代码:1 0 1 0 1 0 0 0 1 0 1 1 1 AMI码: +1 0 -1 0 +1 0 0 0 -1 0 +1 -1 +1 二、AMI码的特点: 1 由AMI码确定的基带信号中正负脉冲交替,而0电位保持不变;所以由AMI码确定的基带信号无直流分量,且只有很小的低频分量; 2 不易提取定时信号,由于它可能出现长的连0串。 三、解码规则 从收到的符号序列中将所有的-1变换成+1后,就可以得到原消息代码

中南大学matlab题目

1 求函数在指定点的导数值 () 23 2 123,1,2,3 026 x x x f x x x x x == >> syms x >> a=[x x^2 x^3;1 2*x 3*x^2;0 2 6*x]; >> f=det(a); >> diff(f,1) ans = 6*x^2 >> diff(f,2) ans = 12*x >> diff(f,3) ans = 12 2 符号法求下列函数的导数或积分 1)y=x10+10x+log x 10,求y’ f=('x^10+10^x+log(10)/log(x)') f = x^10+10^x+log(10)/log(x) >> diff(f) ans = 10*x^9+10^x*log(10)-log(10)/log(x)^2/x 2)y=ln(1+x), 求y’’∣ x=1 f=('log(1+x)/log(e)') f = log(1+x)/log(e) >> diff(f,1,2) ans = -1/(1+x)^2/log(e) 3) y=e x/cosx,求y’ f=('exp(x)/cos(x)') f = exp(x)/cos(x)

>> diff(f) ans = exp(x)/cos(x)+exp(x)/cos(x)^2*sin(x) 4) function f=fun0(t) f=t*sin(t) int('fun0','0','pi') ans = 1/2*pi^2 5) 已知函数z=sin(xy), 计算 syms x y >> z=('sin(x*y)') z = sin(x*y) >> diff(diff(z,y,2),x) ans = -cos(x*y)*y*x^2-2*sin(x*y)*x 3 用数值方法求定积分 1) function f=fun(x) f=x.^2.*sqrt(2.*x.^2+3) quad('fun',1,5) ans = 232.8057 2) function f=fun(x) f=x./sin(x).^2 quad('fun',pi/4,pi/3) ans = 0.3835 4 已知数据[x,y]如下表,试求2次拟合多项式f(x),然后求x=0.05,0.25,0.45,0.65,0.85,1.05各点的函数近似值,并绘出拟合曲线及求得

matlab课后习题及答案详解

第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径?

中南大学信号与系统matlab实验报告

实验一 基本信号的生成 1.实验目的 ● 学会使用MATLAB 产生各种常见的连续时间信号与离散时间信号; ● 通过MATLAB 中的绘图工具对产生的信号进行观察,加深对常用信号的理解; ● 熟悉MATLAB 的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。 2.实验内容 ⑴ 运行以上九个例子程序,掌握一些常用基本信号的特点及其MATLAB 实现方法;改变有关参数,进一步观察信号波形的变化。 ⑵ 在 k [10:10]=- 范围内产生并画出以下信号: a) 1f [k][k]δ=; b) 2f [k][k+2]δ=; c) 3f [k][k-4]δ=; d) 4f [k]2[k+2][k-4]δδ=-。 源程序: k=-10:10; f1k=[zeros(1,10),1,zeros(1,10)]; subplot(2,2,1) stem(k,f1k) title('f1[k]') f2k=[zeros(1,8),1,zeros(1,12)]; subplot(2,2,2) stem(k,f2k) title('f2[k]') f3k=[zeros(1,14),1,zeros(1,6)]; subplot(2,2,3) stem(k,f3k) title('f3[k]') f4k=2*f2k-f3k; subplot(2,2,4) stem(k,f4k) title('f4[k]') ⑶ 在 k [0:31]=范围内产生并画出以下信号:

a) ()()k k 144f [k]sin cos π π=; b) ()2k 24f [k]cos π =; c) ()()k k 348f [k]sin cos π π=。 请问这三个信号的基波周期分别是多少? 源程序: k=0:31; f1k=sin(pi/4*k).*cos(pi/4*k); subplot(3,1,1) stem(k,f1k) title('f1[k]') f2k=(cos(pi/4*k)).^2; subplot(3,1,2) stem(k,f2k) title('f2[k]') f3k=sin(pi/4*k).*cos(pi/8*k); subplot(3,1,3) stem(k,f3k) title('f3[k]') 其中f1[k]的基波周期是4, f2[k]的基波周期是4, f3[k]的基波周期是16。 实验二 信号的基本运算 1.实验目的 ● 学会使用MATLAB 完成信号的一些基本运算; ● 了解复杂信号由基本信号通过尺度变换、翻转、平移、相加、相乘、差 分、求和、微分及积分等运算来表达的方法; ● 进一步熟悉MATLAB 的基本操作与编程,掌握其在信号分析中的运用特点与 使用方式。 2.实验内容 ⑴ 运行以上三个例题程序,掌握信号基本运算的MATLAB 实现方法;改变有关参数,考察相应信号运算结果的变化特点与规律。 ⑵ 已知信号()f t 如下图所示: a) 用MATLAB 编程复现上图; %作业题2 a : t=-6:0.001:6;

中南大学matlab课后习题(1)

第二章 1·求下列表达式的值。 (1)w=sqrt(2)*(1+0.34245*10^-6) w= 1.4142 (2)a=3.5;b=5;c=-9.8; x=(2*pi*a+(c+b)/(pi+a*b*c)-exp(2))/(tan(b+c)+a);x x = 0.9829 (3)a=3.32;b=-7.9; y=2*pi*a^2*[(1-pi/4)*b-(0.8333-pi/4)*a]; y y= -128.4271 (4)t=[2,1-3i;5,-0.65]; z=1/2*exp(2*t)*log(t+sqrt(1+t^2)); z z= 1.0e+004* 0.0057 - 0.0007i 0.0049 - 0.0027i 1.9884 -0.3696i 1.7706 - 1.0539i 2,已知a,b,求下列表达式的值。 a=[-1,5,-4;0,7,8;3,61,7];b=[8,3,-1;2,5,3;-3,2,0]; (1)a+6*b ans= 4723-10 12 3726 -15 73 7 a^2-b+eye(3) ans= -18 -217 17 22 533 109 21867 526 (2)a*b ans= 14 14 16 -10 51 21 125 328 180 a.*b ans = -8 15 4 0 35 24 -9 122 0 b*a ans = -110-15 7 22853 3 -1 28 (3)a/b ans =

1.2234 -0.9255 2.9787 -0.9468 2.3511 -0.9574 4.6170 3.8723 13.8936 b\a ans = -0.5106 -8.6170 -1.1277 0.7340 17.5745 1.8085 -0.8830 -21.2128 0.4043 (4)[a,b] ans= -1 5 -4 8 3 -1 0 7 8 2 5 3 361 7 -3 2 0 [a([1,3],:);b^2] ans = -15 -4 3 61 7 73 37 1 17 37 13 -20 1 9 3.已知a,完成下列操作。 a=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; (1)输出a在[10,25]范围内的全部元素。 k=find(a>10&a<25) a(k) k = 1 ans= 23 (2)取出a前3行构成矩阵b,前两列构成矩阵c,右下角3*2子矩阵构成矩阵d,b与c的乘积构成矩阵e。 b=a(1:3,:) b = 23.0000 10.0000 -0.7780 0 41.0000 -45.0000 65.00005.0000 32.0000 5.0000 0 32.0000 c=a(:,1:2) c = 23.0000 10.0000 41.0000 -45.0000 32.0000 5.0000 6.0000 -9.5400 d=a(2:4,3:4) d = 65.0000 5.0000 0 32.0000 54.0000 3.1400 e=b*c e = 1.0e+003 * 0.9141 -0.2239

中南大学系统仿真实验报告

实验一MATLAB 中矩阵与多项式的基本运算 实验任务 1. 了解MATLAB命令窗口和程序文件的调用。 2 ?熟悉如下MATLAB的基本运算: ①矩阵的产生、数据的输入、相关元素的显示; ②矩阵的加法、乘法、左除、右除; ③特殊矩阵:单位矩阵、“ 1 ”矩阵、“0”矩阵、对角阵、随机矩阵的产生和运算; ④多项式的运算:多项式求根、多项式之间的乘除。 基本命令训练 1、>> eye(2) ans = 1 0 0 1 >> eye(4) ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 2、>> ones(2) 1 1 ans =

1 1 >> ones(4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> ones(2,2) ans = 1 1 1 1 >> ones(2,3) ans = 1 1 1 1 1 1 >> ones(4,3) ans = 1 1 1 1 1 1 1 1 1 1 1 1 3、>> zeros(2) ans =

0 0 0 0 >> zeros(4) ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> zeros(2,2) ans = 0 0 0 0 >> zeros(2,3) ans = 0 0 0 0 0 0 >> zeros(3,2) ans = 0 0 0 0 00 4、随机阵>> rand(2,3) ans = 0.2785 0.9575 0.1576 0.5469 0.9649 0.9706 >> rand(2,3)

中南大学Matlab与科学计算样题 (加主观题答案)

Matlab 与科学计算考试样题(客观题) 1 下面的MATLAB 语句中不正确的有: a) 2a =pi; b) record_1=3+4i c) a=2.0, d) c=1+6j 2. 已知水的黏度随温度的变化公式如下,其中a=0.03368,b=0.000221,计算温度t 为20,30,40度时的粘度分别是: 02 1at bt μμ=++0μ为0℃水的黏度,值为3 1.78510-?;a 、b 为常数,分别为0.03368、0.000221。 3. 请补充语句以画出如图所示的图形: [x,y]=meshgrid(-2:0.1:2, -2:0.1:2); Z=x.*exp(-x.^2-y.^2); ; a) Plot3(x,y,Z) b) plot3(x,y,Z) c) mesh(x,y,Z) d) plot3(x,y,z) 2 a) 0.4900 1.2501 0.8560 b) 0.8560 1.2501 0.4900 c) -0.6341 3.8189 -3.7749 d) 3.8189 -3.7749 2.8533 解释说明: >> x=0.5:0.5:3.0; >> y=[1.75,2.45,3.81,4.80,8.00,8.60]; >> a=polyfit(x,y,2)

a = 0.4900 1.2501 0.8560 >> x1=[0.5:0.25:3.0]; >> y1=a(1)*x1.^2+a(2)*x1+a(3) >> plot(x,y,'*') >> hold on >> plot(x1,y1,'--r') 5. 求方程在x=0.5附近的根. 21x x += a) 0.6180 b) -1.1719e-25 c) -1 d) -1.6180 6. 用Newton-Cotes 方法计算如下积分 1 5x ? (a )133.6625 (b) 23.8600 (c) 87.9027 (d) -1.6180 7. y=ln(1+x),求x=1时y" a) -0.25 b) 0.5 c) -0.6137 d) -1.6137 8. 某公司用3台轧机来生产规格相同的铝合金薄板。取样测量薄板的 厚度,精确至‰厘米。得结果如下: 轧机1:0.236 0.238 0.248 0.245 0.243 轧机2:0.257 0.253 0.255 0.254 0.261 轧机3:0.258 0.264 0.259 0.267 0.262 计算方差分析结果,并判定各台轧机所生产的薄板的厚度有无显著的差异? a) p =1.3431e-005,没有显著差异。 b) p =0.9688,没有显著差异。 c) p =0.4956,有显著差异。 d) p =0.9688,有显著差异。 22x y x y e x y e --?-=??-+=??

最新MATLAB基础教程-薛山第二版-课后习题答案

《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级:T1243-7 姓名:柏元强 学号:20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心

目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31)

实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算: (1) () sin 60

(2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i) 5.判断下面语句的运算结果。 (1) 4 < 20 (2) 4 <= 20

matlab课后习题及答案详解(修改版)

第1章MATLAB概论 1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MA TLAB系统由那些部分组成? MATLAB系统主要由开发环境、MA TLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MA TLAB中有几种获得帮助的途径?

电磁场 点电荷 电场线 电势 MATLAB 仿真 中南大学

电磁场理论 实验一 ——利用Matlab 模拟点电荷电场的分布 一.实验目的: 1.熟悉单个点电荷及一对点电荷的电场分布情况; 2.学会使用Matlab 进行数值计算,并绘出相应的图形; 二.实验原理: 根据库伦定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸力,它们之间的力F 满足: R R Q Q k F ? 212 = (式1) 由电场强度E 的定义可知: R R kQ E ? 2= (式2) 对于点电荷,根据场论基础中的定义,有势场E 的势函数为 R kQ U = (式3) 而 U E -?= (式4) 在Matlab 中,由以上公式算出各点的电势U ,电场强度E 后,可以用Matlab 自带的库函数绘出相应电荷的电场分布情况. 三.实验内容: 1. 单个点电荷 点电荷的平面电力线和等势线 真空中点电荷的场强大小是E=kq /r^2 ,其中k 为静电力恒量, q 为电量, r 为点电荷到场点P(x,y)的距离.电场呈球对称分布, 取电量q> 0, 电力线是以电荷为

起点的射线簇.以无穷远处为零势点, 点电荷的电势为U=kq /r,当U 取常数时, 此式就是等势面方程.等势面是以电荷为中心以r 为半径的球面. ●平面电力线的画法 在平面上, 电力线是等角分布的射线簇, 用MATLAB 画射线簇很简单.取射线的半径为( 都取国际制单位) r0=0.12, 不同的角度用向量表示( 单位为弧度) th=linspace(0,2*pi,13).射线簇的终点的直角坐标为: [x,y]=pol2cart(th,r0).插入x 的起始坐标x=[x; 0.1*x].同样插入y 的起始坐标, y=[y; 0.1*y], x 和y 都是二维数组, 每一列是一条射线的起始和终止坐标.用二维画线命令plot(x,y)就画出所有电力线. ●平面等势线的画法 在过电荷的截面上, 等势线就是以电荷为中心的圆簇, 用MATLAB 画等势 线更加简单.静电力常量为k=9e9, 电量可取为q=1e- 9; 最大的等势线的半径应 该比射线的半径小一点? r0=0.1.其电势为u0=k8q /r0.如果从外到里取7 条等势线, 最里面的等势线的电势是最外面的3 倍, 那么各条线的电势用向量表示为: u=linspace(1,3,7)*u0.从- r0 到r0 取偶数个点, 例如100 个点, 使最中心点的坐 标绕过0, 各点的坐标可用向量表示: x=linspace(- r0,r0,100), 在直角坐标系中可形成网格坐标: [X,Y]=meshgrid(x).各点到原点的距离为: r=sqrt(X.^2+Y.^2), 在乘方时, 乘方号前面要加点, 表示对变量中的元素进行乘方计算.各点的电势为 U=k8q. /r, 在进行除法运算时, 除号前面也要加点, 同样表示对变量中的元素进行除法运算.用等高线命令即可画出等势线contour(X,Y,U,u), 在画等势线后一般会把电力线擦除, 在画等势线之前插入如下命令hold on 就行了.平面电力线和 等势线如图1, 其中插入了标题等等.越靠近点电荷的中心, 电势越高, 电场强度越大, 电力线和等势线也越密.

matlab课后习题答案

第4章数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff 或数值梯度gradient指令计算)(t y'曲线绘制 y',然后把)(t y和)(t 在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得) 〖目的〗 ●强调:要非常慎用数值导数计算。 ●练习mat数据文件中数据的获取。 ●实验数据求导的后果 ●把两条曲线绘制在同一图上的一种方法。 〖解答〗 (1)从数据文件获得数据的指令 假如prob_data401.mat文件在当前目录或搜索路径上 clear load prob_data401.mat (2)用diff求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意yc的长度将比y短1 plot(t,y,'b',t(2:end),yc,'r') (3)用gradent求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt;

plot(t,y,'b',t,yc,'r') grid on 〖说明〗 ● 不到万不得已,不要进行数值求导。 ● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级 以上。 ● 求导会使数据中原有的噪声放大。 2 采用数值计算方法,画出dt t t x y x ? =0 sin )(在]10 ,0[区间曲线,并计算)5.4(y 。 〖提示〗 ● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。 〖目的〗 ● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。 〖解答〗 dt=1e-4; t=0:dt:10; t=t+(t==0)*eps; f=sin(t)./t; s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==4.5); s45=s(ii) s45 =

Matlab作业题

Matlab作业题: 1、作出函数y=x4-4x3+3x+5 (x [0,6])的图形,用小红点标出其在[0,6]之间的最小值点,并在最小值点附近标出该最小值点的坐标值; 程序: function f=myfun(x) f=x.^4-4*x.^3+3*x+5; x=linspace(0,6,100); y=x.^4-4*x.^3+3*x+5; x1=fminbnd(@myfun,0,6) y1=myfun(x1) 结果: x1 = 2.9115 y1 = -13.1300 plot(x,y,x1,y1,'r*') text(x1,y1,'2.9115,-13.1300'); 0123456 2、某公司有一批以每桶2元购进的彩漆,为了获得较高的利润,希望以较高的价格卖出,但价格越高,售出量就越少,二者之间的关系由表一给出。于是打算增加广告投入来促销。而广告费与销售量的关系可由销售增长因子来描述。例如,投入3万元的广告费,销售因子为1.85,意味着做广告后的销售量将是未做广告销售量的1.85倍。根据经验,广告费与销售因子的关系如表2,现请你作出决策:投入多少广告费和售价为多少时所获得的利润最大?

表1 表2 彩漆的销售量 摘要 在经济学中,某种产品的销售量与产品自身的价格存在着负相关关系,即产品价格上升会导致产品的销售量减少,产品价格下降会导致产品的销售量增加。与此同时,广告宣传对产品的销售量也是影响深远的。对一个企业而言,广告费既不是越少越好,也不是多多益善。广告活动的规模和广告费用的大小,应与企业的生产和流通规模相适应,在发展中求节约。 为研究产品销售量与售价和广告费用的关系,我们收集了某售价与预期销售量和广告费与销售增长因子的一些数据(见附录一),并建立了预期销售量1y 与售价1x 的线性模型: 11^ 1333.54222 .50x y -= 销售增长因子2y 与广告费2x 的二次函数模型: 22^ 0409.00188 .1x y +=—2 2 0004.0x 利润p 与售价1x 和销售增长因子2x 的模型: 2 2 2211)0004.00409.00188 .1)(1333.54222 .50)(2(x x x x x p --+--= 关键字:预期销售量 广告费 销售增长因子 线性回归

matlab课后习题答案第一章

第1章基础准备及入门 习题1及解答 1数字1.5e2,1.5e3中的哪个与1500相同吗? 〖解答〗 1.5e3 2请指出如下5个变量名中,哪些是合法的? abcd-2xyz_33chan a变量ABCDefgh 〖解答〗 2、5是合法的。 3在MATLAB环境中,比1大的最小数是多少? 〖解答〗 1+eps 4设a=-8,运行以下三条指令,问运行结果相同吗?为什么? w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2 〖解答〗 (1)不同。具体如下 w1=a^(2/3)%仅求出主根 w2=(a^2)^(1/3)%求出(-8)^2的主根 w3=(a^(1/3))^2%求出(-8)主根后再平方 w1= -2.0000+3.4641i w2= 4.0000 w3= -2.0000+3.4641i (2)复数的多方根的,下面是求取全部方根的两种方法: (A)根据复数方根定义 a=-8;n=2;m=3; ma=abs(a);aa=angle(a); for k=1:m%m决定循环次数 sa(k)=(aa+2*pi*(k-1))*n/m;%计算各根的相角 end result=(ma^(2/3)).*exp(j*sa)%计算各根 result= -2.0000+3.4641i 4.0000-0.0000i-2.0000-3.4641i

(B )利用多项式02 3=-a r 求根p=[1,0,0,-a^2];r=roots(p)r =-2.0000+3.4641i -2.0000-3.4641i 4.00005指令clear,clf,clc 各有什么用处? 〖解答〗clear 清除工作空间中所有的变量。clf 清除当前图形。clc 清除命令窗口中所有显示。6以下两种说法对吗?(1)“MATLAB 进行数值的表达精度与其 指令窗中的数据显示精度相同。”(2) MATLAB 指令窗中显示的数值有效位数不超过7位。” 〖解答〗 (1)否;(2)否。 7想要在MATLAB 中产生二维数组???? ??????=987654321S ,下面哪些指令能实现目的? (A )S=[1,2,3;4,5,6;7,8;9] (B )S=[123;456;789] (C )S=[1,2,3;4,5,6;7,8,9] %整个指令在中文状态下输入 〖解答〗 前两种输入方法可以,后一种方法不行。8试为例1.3-5编写一个解题用的M 脚本文件? 〖解答〗 直接点击新文件图标,出现M 文件编辑器窗口;在该M 文件编辑器中,输入例1.3-5中的全部指令;并另存为p109.m ,便得到所需的脚本文件。

相关主题
文本预览
相关文档 最新文档