matlab18章课后作业.docx

上传人:b****5 文档编号:29224920 上传时间:2023-07-21 格式:DOCX 页数:35 大小:520.15KB
下载 相关 举报
matlab18章课后作业.docx_第1页
第1页 / 共35页
matlab18章课后作业.docx_第2页
第2页 / 共35页
matlab18章课后作业.docx_第3页
第3页 / 共35页
matlab18章课后作业.docx_第4页
第4页 / 共35页
matlab18章课后作业.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

matlab18章课后作业.docx

《matlab18章课后作业.docx》由会员分享,可在线阅读,更多相关《matlab18章课后作业.docx(35页珍藏版)》请在冰豆网上搜索。

matlab18章课后作业.docx

matlab18章课后作业

MATLAB基础教程1~8章作业

 

Matlab第一章

 

1.阐述Matlab的功能

Matlab作为一种高级计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境,已被广泛应用于不同领域。

Matlab的基本功能包括:

数学计算功能、图形化显示功能、M语言编程功能、编译功能、图形用户界面开发功能、Simulink建模仿真功能、自动代码生成功能。

 

Matlab第二章

1.创建double的变量,并进行计算。

(1)a=87,b=190,计算a+b、a-b、a*b。

(2)创建uint8类型的变量,数值与

(1)中相同,进行相同的计算。

>>a=87,b=190

a=

87

b=

190

>>a+b

ans=

277

>>a-b

ans=

-103

>>a*b

ans=

16530

>>c=uint8(87),d=uint8(190)

c=

87

d=

190

>>c+d

ans=

255

>>c-d

ans=

0

>>c*d

ans=

255

2.计算

(1)sin(60)

(2)e^3

(3)cos(3π/4)

>>sind(60)

ans=

0.8660

>>exp(3)

ans=

20.0855

>>cos(3*pi/4)

ans=

-0.7071

3.设u=2,v=3,计算:

(1)

(2)

(3)

>>u=2;

>>v=3;

>>4*u*v/log(v)

ans=

21.8457

>>(exp(u)+v)^2/(v^2-u)

ans=

15.4189

>>sqrt(u-3*v)/(u*v)

ans=

0+0.4410i

4.计算如下表达式:

(1)

(2)

>>(3-5*i)*(4+2*i)

ans=

22.0000-14.0000i

>>sin(2-8*i)

ans=

1.3553e+003+6.2026e+002i

5.判断下面语句的运算结果。

(1)4<20

(2)4<=20

(3)4==20

(4)4~=20

(5)'b'<'B'

>>4<20

ans=

1

>>4<=20

ans=

1

>>4==20

ans=

0

>>4~=20

ans=

1

>>'b'<'B'

ans=

0

6.设a=39,b=58,c=3,d=7判断下面表达式的值。

(1)a>b

(2)a

(3)a>b&&b>c

(4)a==d

(5)a|b>c

(6)~~d

>>a=39,b=58,c=3,d=7

a=

39

b=

58

c=

3

d=

7

>>a>b

ans=

0

>>a

ans=

0

>>a>b&&b>c

ans=

0

>>a==d

ans=

0

>>a|b>c

ans=

1

>>~~d

ans=

1

7.编写脚本,计算上面第2题中的表达式。

%计算表达式的值并显示

disp('sin(60)=');

disp(sind(60));

disp('exp(3)=');

disp(exp(3));

disp('cos(3*pi/4)=');

disp(cos(3*pi/4));

8.编写脚本,输出上面第6题中的表达式的值。

%计算表达式的值并显示

a=39;

b=58;

c=3;

d=7;

disp('a>b'),disp(a>b);

disp('a

disp('a>b&&b>c'),disp(a>b&&b>c)

disp('a==d'),disp(a==d);

disp('a|b>c'),disp(a|b>c);

disp('~~d'),disp(~~d);

 

Matlab第三章

1.在命令提示符下输入以下两条命令:

>>x=[93063]

>>y=mod((sqrt(length(((x+5).*[12345]))*5)),3)

求y值为多少?

x=

93063

y=

2

2.在MATLAB中运行以下命令:

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

b=[7];

a(4)=[];

vec1=a==b;

vec2=mod(a,2)==0;

c=sum(vec1);

vec3=vec1+vec2;

d=vec3.*a;

vec4=find(a>5);

e=a(vec4)+5;

vec5=find(a<5);

f=vec5.^2;求c、d、e、f的值。

>>c

c=

1

>>d

d=

07200406

>>e

e=

121411

>>f

f=

19253649

3.向量操作时Matlab的主要部分,使用给出的向量来做下面的练习.

Vec=[4528472642572457432573362533430-65-343]

(1)创建一个新的向量vecR,使其成为vec的转置.

(2)创建一个新的向量vecB,使其成为vec前半部分与后半部分对换的结果.

(3)创建一个新的向量vecS,使其包含vec中所有小于45的元素,且按vec中的顺序排列.

(4)创建一个新的向量vec3R,使其从vec中最后一个元素开始,间隔3个元素取一个元素,直到第一个元素为止.

(5)创建一个新的向量vecN,使其包含vec中所有等于2或4的元素的索引值.

(6)创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素.

>>vecR=vec'

vecR=

4

5

2

8

4

7

2

64

2

57

2

45

7

43

2

5

7

3

3

6253

3

4

3

0

-65

-34

>>vec1=vec(1:

13)

vec1=

4528472642572457

>>vec2=vec(14:

26)

vec2=

Columns1through8

432573362533

Columns9through13

430-65-34

>>vecB=[vec2vec1]

vecB=

Columns1through8

432573362533

Columns9through16

430-65-34452

Columns17through24

8472642572

Columns25through26

457

>>small=vec<45

small=

Columns1through17

11111110101011111

Columns18through26

110111111

>>vecS=vec(small)

vecS=

Columns1through17

452847222743257333

Columns18through22

430-65-34

>>vec3R=vec(end:

-3:

1)

vec3R=

Columns1through8

-34362537432644

Column9

5

>>vecN=find(vec==2|vec==4)

vecN=

13579111522

>>[value]=vecN(find(mod(vecN,2)))

value=

135791115

>>vec(value)=0

vec=

Columns1through8

050807064

Columns9through16

05704574305

Columns17through24

73362533430

Columns25through26

-65-34

>>vec(vec==0)=[]

vec=

Columns1through8

587645745743

Columns9through16

57336253343

Columns17through18

-65-34

>>vecG=vec

vecG=

Columns1through8

587645745743

Columns9through16

57336253343

Columns17through18

-65-34

4.给定一下3个向量:

nums1=[713532121991024]

nums2=[5414569204548726132109411]

nums3=[441125418477998852315]

编写脚本文件创建相应的3个向量,newNum1、newNum2、newNum3,分别包含以上3个向量中从第一个元素开始且间隔取值的元素。

%取向量索引为奇数的值

clear

clc

nums1=[713532121991024];

nums2=[5414569204548726132109411];

nums3=[441125418477998852315];

x1=find(mod(find(nums1),2)==1);%向量1

[values1]=nums1(x1);

newNums1=values1;

disp('nums1=');

disp(nums1);

disp('newNums1=');

disp(newNums1);

x2=find(mod(find(nums2),2)==1);%向量2

[values2]=nums2(x2);

newNums2=values2;

disp('nums2=');

disp(nums2);

disp('newNums2=');

disp(newNums2);

x3=find(mod(find(nums3),2)==1);%向量3

[values3]=nums3(x3);

newNums3=values3;

disp('nums3=');

disp(nums3);

disp('newNums3=');

disp(newNums3);

 

Matlab第四章

1.有如下数据:

X

1

1.1

1.2

1.3

1.4

y

1.00000

1.23368

1.55271

1.99372

2.61170

利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。

%4种插值方法

x=[11.11.21.31.4];%x与y的值

y=[1.000001.233681.552711.993722.61170];

length_of_x=length(x);

scalar_x=[x

(1):

0.05:

x(length_of_x)];

length_of_sx=length(scalar_x);

fori=1:

length_of_sx%定义4种方法

y_nearest(i)=interp1(x,y,scalar_x(i),'nearest');

y_liner(i)=interp1(x,y,scalar_x(i),'liner');

y_spline(i)=interp1(x,y,scalar_x(i),'spline');

y_cubic(i)=interp1(x,y,scalar_x(i),'cubic');

end

subplot(2,2,1),plot(x,y,'*'),holdon,plot(scalar_x,y_nearest),title('nearest');%输出

subplot(2,2,2),plot(x,y,'*'),holdon,plot(scalar_x,y_liner),title('linear');

subplot(2,2,3),plot(x,y,'*'),holdon,plot(scalar_x,y_spline),title('spline');

subplot(2,2,4),plot(x,y,'*'),holdon,plot(scalar_x,y_cubic),title('cubic');

 

2.2.求下列函数的解,并绘制图形。

(1)y=ex-x5,初始点为x=8.

(2)y=xsin(x)

>>y=@(x)exp(x)-x^5;

>>x=fzero(y,8)

x=

12.7132

>>fplot(y,[10,14]);

>>holdon

>>plot(x,y(x),'r*')

>>y=@(x)x*sin(x);

>>x=fzero(y,0)

x=

0

 

 

3.求下列函数的极值。

(1)z=x2-(y-1)2

(2)z=(x-y+1)2

>>z=@(x)x

(1)^2-(x

(2)-1)^2;

>>[x,fvalue]=fminsearch(z,[-1,1])

Exiting:

Maximumnumberoffunctionevaluationshasbeenexceeded

-increaseMaxFunEvalsoption.

Currentfunctionvalue:

-29278786696692000000.000000

x=

1.0e+043*

1.11381.2383

fvalue=

-2.9279e+085

>>z=@(x)(x

(1)-x

(2)+1)^2;

>>[x,fvalue]=fminsearch(z,[-1,1])

x=

-1.2073-0.2073

fvalue=

1.9045e-022

4.计算下列积分。

(1)

(2)

>>f=@(x)x+x.^3+x.^5;

>>q=quad(f,-1,1)

q=

2.2204e-016

>>f=@(x,y)sin(y).*(x+y)./(x.^2+4);

>>q=dblquad(f,1,10,1,10)

q=

5.5254

 

Matlab第五章

1.编制一个脚本,查找给定字符串中指定字符出现的次数和位置.

%查找给定字符串中指定字符出现的次数和位置

letter='a';%指定字符

string='Ihavealongstring';%给定字符串

places=findstr(string,letter);%位置

times=length(places);%次数

disp('placesare:

');

disp(places);

disp('timesare:

');

disp(times);

2.编写一个脚本,判断输入字符串中每个单词的首字母是否为大写,若不是则将其修改为大写,其他字母为小写.

%将每个单词首字母变为大写

str='Ihavealongstring';

disp(str);

nlength=length(str);

fork=1:

nlength

if(k==1||isspace(str(k-1)))&&(str(k)<='z'&&str(k)>='a')

str(k)=char(double(str(k))-32);

end

end

disp(str);

3.创建2×2单元数组,第1、2个元素为字符串,第三个元素为整型变量,第四个元素为双精度(double)类型,并将其用图形表示.

>>A=cell(2,2)

A=

[][]

[][]

>>A(1,1)={'string1'};

>>A(1,2)={'string2'};

>>A(2,1)={uint8(100)};

>>A(2,2)={double(60)};

>>cellplot(A)

 

4.创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。

然后使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次等.

>>student=struct('name',{'Ann','Bob','Cilly'},'number',{1,2,3},'grade',{90,60,85})

student=

1x3structarraywithfields:

name

number

grade

>>student

(1)

ans=

name:

'Ann'

number:

1

grade:

90

>>student

(2)

ans=

name:

'Bob'

number:

2

grade:

60

>>student(3)

ans=

name:

'Cilly'

number:

3

grade:

85

>>total=student

(1).grade+student

(2).grade+student(3).grade

total=

235

>>average=total/3

average=

78.3333

>>[new,index]=sort([student.grade],'descend')

new=

908560

index=

132

 

Matlab第六章

1.假设x=[-3,0,0,2,5,8]且y=[-5,-2,0,3,4,10]。

通过手算得到以下运算的结果,并使用MATLAB检验计算的结果。

(1)z=y<~x

(2)z=x&y

(3)z=x|y

(4).z=xor(x,y)

>>x=[-3,0,0,2,5,8]

x=

-300258

>>y=[-5,-2,0,3,4,10]

y=

-5-203410

>>z1=y<~x

z1=

111000

>>z2=x&y

z2=

100111

>>z3=x|y

z3=

110111

>>z4=xor(x,y)

z4=

010000

2.在MATLAB中使用一个循环确定:

如果用户最初在一个银行帐户中存储$10000,并且在每年的年终再存储$10000(银行每年支付6%的利息),那么账户上要积累$1000000要需要多长时间。

%银行存款计算

a=10000;%本金

b=10000;%每年新增存款

sum=0;%存款总和

i=1;

sum=sum+a;

whilesum<1000000

i=i+1;

sum=sum*(1+0.06)+b;

end

disp('year=')

disp(i)

near=

34

3.某个特定的公司生产和销售高尔夫手推车。

每周周末,公司都将那一周所生产的手推车转移到仓库(库存)之中。

卖出的所有手推车都是从库存中提取。

这个过程的一个简单模型为:

I(k+1)=P(k)+I(k)-S(k)

其中:

P(k)=第k周所生产的手推车数量;

I(k)=第k周库存中的手推车数量;

S(k)=第k周所卖出的手推车数量;

以下为10周计划中的每周销售额;

1

2

3

4

5

6

7

8

9

10

销售额

50

55

60

70

70

75

80

80

90

55

假设每周的产量都基于前一周的销售额,所以有P(k)=S(k-1)。

假设第一周的产量为50辆手推车:

即,P

(1)=50。

编写一个MATLAB程序计算:

10周之内每周库存之中的手推车数量或者计算手推车库存数量减少到0为止的时间,并同时绘制图形。

针对以下两种情况运行该程序:

(1)初始库存为50辆手推车,所以I

(1)=50;

(2)初始库存为30辆手推车,所以I

(1)=30。

>>s=[50556070707580809055]

s=

50556070707580809055

>>fori=2:

1:

10

p(i)=s(i-1);

end

>>p

p=

0505560707075808090

>>l=[50000000000]

l=

50000000000

>>forn=2:

1:

10

l(n)=l(n-1)+p(n)-s(n);

end

>>l

l=

50454030302520201045

>>l=[30000000000]

l=

30000000000

>>forn=2:

1:

10

l(n)=l(n-1)+p(n)-s(n);

end

>>l

l=

3025201010500-1025

1

2

3

4

5

库存量

(1)

50

50

45

40

30

库存量

(2)

30

25

20

20

10

6

7

8

9

10

库存量

(1)

30

30

25

20

10

库存量

(2)

10

5

0

0

(<0)

 

Matlab第七章

1.创建符号表达式f(X)=sinx+x。

>>f=sym('sin(x)+x');

2.计算习题1中表达式在

处的值,并将结果设置为以下5种精度:

小数点之后1位、2位、5位、10位和20位有效数字。

>>digits

(2)

>>vpa(subs(f,pi/6))

ans=

1.0

>>digits(3)

>>vpa(subs(f,pi/6))

ans=

1.02

>>digits(6)

>>vpa(subs(f,

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

当前位置:首页 > 医药卫生 > 基础医学

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

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