武汉大学matlab期末课程作业Word格式.docx

上传人:b****6 文档编号:20513152 上传时间:2023-01-23 格式:DOCX 页数:18 大小:488.39KB
下载 相关 举报
武汉大学matlab期末课程作业Word格式.docx_第1页
第1页 / 共18页
武汉大学matlab期末课程作业Word格式.docx_第2页
第2页 / 共18页
武汉大学matlab期末课程作业Word格式.docx_第3页
第3页 / 共18页
武汉大学matlab期末课程作业Word格式.docx_第4页
第4页 / 共18页
武汉大学matlab期末课程作业Word格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

武汉大学matlab期末课程作业Word格式.docx

《武汉大学matlab期末课程作业Word格式.docx》由会员分享,可在线阅读,更多相关《武汉大学matlab期末课程作业Word格式.docx(18页珍藏版)》请在冰豆网上搜索。

武汉大学matlab期末课程作业Word格式.docx

7,8;

9]

S=[123;

456;

789]

S=[1,2,3;

4,5,6;

7,8,9]%整个命令在中文状态下输入

第二条S=[123;

789]能实现目的。

中文状态下逗号不是有效字符。

第2章

1.说出以下四条命令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?

3/7+0.1,sym(3/7+0.1),vpa(sym(3/7+0.1),4),vpa(sym(3/7+0.1))

3/7+0.1结果是双精度。

sym(3/7+0.1)结果是符号。

vpa(sym(3/7+0.1),4)结果是符号。

vpa(sym(3/7+0.1))结果是符号。

过程如图:

2.已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)))产生精准符号数字,请回答:

以下产生的各种符号数哪些是精准的?

若不精准,误差又是多少?

能说出产生误差的原因吗?

a2=sin(sym(pi/4)+exp(sym(0.7))*exp(sym(pi/3)))

a3=sin(sym('

pi/4'

)+exp(sym('

0.7'

))*exp(sym('

pi/3'

)))

a4=sin(sym('

0.7+pi/3'

a5=sin(sym(pi/4)+exp(sym(0.7+pi/3)))

a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)))

a7=sin(sym(pi/4+exp(0.7+pi/3)))

a8=sym(sin(pi/4+exp(0.7+pi/3)))

(提示:

可用vpa观察误差;

注意数位的设置)。

matlab运行程序如下:

formatlong;

a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)));

a2=sin(sym(pi/4)+exp(sym(0.7))*exp(sym(pi/3)));

)));

a5=sin(sym(pi/4)+exp(sym(0.7+pi/3)));

a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)));

a7=sin(sym(pi/4+exp(0.7+pi/3)));

a8=sym(sin(pi/4+exp(0.7+pi/3)));

b2=vpa(a1-a2,40)

b3=vpa(a1-a3,40)

b4=vpa(a1-a4,40)

b5=vpa(a1-a5,40)

b6=vpa(a1-a6,40)

b7=vpa(a1-a7,40)

b8=vpa(a1-a8,40)

观察可知,只有a2是精准的。

这是由sym('

Num'

)和sym(Num)的区别带来的。

前者以字符串的形式传给符号运算内核,可以保留完整的精度;

而后者经过浮点运算后再转换为符号类型,存在精度损失。

3.在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。

sym('

sin(w*t)'

),sym('

a*exp(-X)'

),sym('

z*exp(j*th)'

运行程序如下

clear

symvar(sym('

),1)

),1)

可知分别为w,a,z。

第3章

1.请读者先运行以下命令

a=0;

b=pi;

t1=a:

pi/9:

pi;

t2=linspace(a,b,10);

T=t1*t2'

;

F=find(T<

0);

然后,请回答变量a、t1、T、F的维度、规模、长度分别是多少?

t1完全等于t2吗?

为什么?

a1=ndims(a),a2=ndims(t1),a3=ndims(T),a4=ndims(F)

b1=size(a),b2=size(t1),b3=size(T),b4=size(F)

c1=length(a),c2=length(t1),c3=length(T),c4=length(F)

可知,维度都是2维;

规模a是11,t1是110,T是11,F是00;

长度分别为1,10,1,0;

t1和t2是完全相等的。

t1产生的是0到pi之前间隔为pi/9的十个数值,t2产生的是0到pi之前等分间隔的十个数值,是等价的。

2.对于命令A=reshape(1:

18,3,6)产生的数组

A=

147101316

258111417

369121518

先请你用一条命令,使A数组中取值为2、4、8、16的元素都被重新赋值为NaN。

然后,再请你用一条命令,把A数组的第4、5两列元素都被重新赋值为Inf。

A=[147101316;

258111417;

369121518];

A([24816])=NaN;

A

A([101112131415])=Inf;

3.由命令rng('

default'

),A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。

运行程序如下:

rng('

);

A=rand(3,5);

B=(A>

0.5)

si=find(B)

[r,c]=find(B)

可知,单下标为1,2,4,5,8,9,10,12,13,15;

双下标为(1,1)(2,1)(1,2)(2,2)(2,3)(3,3)(1,4)(3,4)(1,5)(3,5)。

第4章

2.采用数值计算方法,画出

区间曲线,并计算

cumtrapz快捷,在精度要求不高处可用;

integral也可试。

巧用find。

x=eps:

0.01:

10;

z=sin(x)./x;

y=cumtrapz(x,z);

plot(x,y),gridon;

a=find(x==4.5);

y(a)

=1.6541

5.求函数

在区间

中的最小值点。

作图观察。

formatlong

t=-5:

0.00001:

5;

y=@(t)(sin(5*t))^2*exp(0.06*t^2)-1.5*t*cos(2*t)+1.8*abs(t+0.5);

ezplot(y,[-5,5]),gridon,holdon

[t1,y1]=fminbnd(y,-5,5)

plot(t1,y1,'

r*'

故最小值点为(-1.285,-0.186)。

第5章

1.已知椭圆的长、短轴

,用“小红点线”画如下图所示的椭圆

参量

点的大小;

axisequal)

a=4;

b=2;

t=0:

pi/75:

2*pi;

plot(a*cos(t),b*sin(t),'

r.'

'

markersize'

15)

axisequal,xlabel('

x'

),ylabel('

y'

3.A,B,C三个城市上半年每个月的国民生产总值表p5.1。

试画出如图p5-3所示的三城市上半年每月生产总值的累计直方图。

bar(x,Y,'

style'

colormap(cool);

legend。

表p5.1各城市生产总值数据(单位:

亿元)

城市

1月

2月

3月

4月

5月

6月

170

120

180

200

190

220

B

100

110

C

70

50

80

95

图p5-3

X=[1;

2;

3;

4;

6];

Y=[17012070;

12010050;

18011080;

200180100;

19017095;

220180120];

bar(X,Y,'

stacked'

),colormap(cool),legend('

A'

B'

C'

2)

第6章

1.请分别写出用for和while循环语句计算

的程序。

此外,还请写出避免循环的数值、符号计算程序。

sum和“指数采用数组”配合;

tic,toc可用以记录计算所花的时间。

用for的写法:

tic;

fork=0:

1000000;

a=a+0.2^k;

end

a

t1=toc

用while的写法:

b=0;

k=0;

whilek<

=1000000

b=b+0.2^k;

k=k+1;

b

t2=toc

避免循环数值程序:

k=zeros(1,1000000);

d=0:

k=0.2.^d;

c=sum(k)

t3=toc

符号计算程序:

symsk

d=vpa(symsum(0.2^k,k,0,1000000))

t4=toc

3.编写一个函数M文件,它的功能:

没有输入量时,画出单位圆(见图p6-1);

输入量是大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6-2);

输入量是“非自然数”时,给出“出错提示”。

此外,函数M文件应有H1行、帮助说明和程序编写人姓名。

nargin,error,int2str)

图p6-1

图p6-2

编写程序如下:

function[Y]=rzy(N)

%rzy()则画出单位圆。

%rzy(N)中,N为大于2的自然数时,画正N边形,是非自然数时,报错。

%该程序编写人为饶梓耀

switchnargin

case0

N=1000;

t=0:

pi/N:

plot(cos(t),sin(t),'

r'

linewidth'

3),title('

Circle'

axisequal;

axisoff;

case1

ifN~=round(N)||N<

error('

输入N应为自然数'

elseifN==round(N)&

&

N>

2

2*pi/N:

3),title(['

Polygonwith'

int2str(N),'

edges'

]);

end

示例图如下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1