《MATLAB7.x》程序设计语言(第二版)课后题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《MATLAB7.x》程序设计语言(第二版)部分课后习题答案(楼顺天,姚若玉,沈俊霞编著)

说明:所有答案均是本人在备考过程中亲自整理的,收录了一部分题目的答案。答案可能存在不足甚至谬误,很多算法也可能不是最优的,仅供参考。本人尽力整理的一点点心血,希望对大家有所帮助。

第二章

8、 a=rand(5,5);

[i,j]=find(a>0.5);

for u=1:length(i);

b(u)=a(i(u),j(u));

end

b'

10、aa=any(a');

i=find(aa==0)

a(i,:)=[];

第四章

1、function flag=isprime(m)

%m为素数,flag=1

%m不为素数,flag=0

k=sqrt(m);

flag=1;

for i=2:k;

if rem(m,i)==0;

flag=0;

break

end

end

m=input('input an integer\n');

flag=isprime(m);

if flag==1

disp([num2str(m),'是素数'])

else

disp([num2str(m),'不是素数'])

end

4、function [x1,x2]=jfc(a,b,c)

d=b^2-4*a*c;

if d>0;

x1=(-b-sqrt(d))/(2*a);

x2=(-b+sqrt(d))/(2*a);

elseif d==0;

x1=-b/(2*a);

x2=x1;

end

a=input('a=');

b=input('b=');

c=input('c=');

[x1,x2]=jfc(a,b,c);

if x1~=x2;

disp('原方程存在两个不同的根')

disp(['x1=',num2str(x1)])

disp(['x2=',num2str(x2)]);

elseif x1==x2;

disp('原方程存在两个相同的根')

disp(['x1=x2=',num2str(x1)])

else

disp('原方程的根不存在')

end

%MATLAB上机作业,184页习题4,求二次方程的实根

function [s1,s2]=solve(a,b,c)

d=b^2-4*a*c;

if d>0

s1=(-b-sqrt(d))/(2*a)

s1=(-b-sqrt(d))/(2*a)

%disp(['原方程有两个不同的根'num2str(s1)'和'nums2tr(s2)]) elseif d==0

s1=(-b-sqrt(d))/(2*a);

s1=(-b-sqrt(d))/(2*a);

%disp(['原方程有两个相同的根'num2str(s1))

else

disp('原方程无实根')

end

end

5、x=-3:0.01:3;

if x>=-3 & x<-1;

y=(-x.^2-4*x-3)/2;

elseif x>=-1 & x<1;

y=-x.^2+1;

else

y=(-x.^2+4*x-3)/2;

end

plot(x,y)

6、%MATLAB上机作业,184页习题6,点不同按钮产生不同分布的数

s=menu('请选择随机数类型','U[-10,10]','U[-5,5]','U[-1,1]','N(0,1)');

switch s

case 1,n=(rand(1)-0.5)*20;

case 2,n=(rand(1)-0.5)*10;

case 3,n=(rand(1)-0.5)*2;

case 4,n=randn(1);

otherwise disp('请选择!')

end

n

7、load a.txt

[m,n]=size(a);

w=zeros(m,1);

for i=1:m;

w(i)=(2*a(i,1)+3*a(i,2)+2*a(i,3)+4*a(i,4)+2.5*a(i,5)+a(i,6))/14.5;

end

w

8、function k=jj(i)

if i<=10

k=0.1*i;

elseif i<=20

k=1+(i-10)*0.05;

elseif i<=40

k=1.5+(i-20)*0.02;

else

k=1.9+(i-40)*0.01;

end

s=0;a=2;b=1;

for i=1:15;

s=s+a/b;

c=b;

b=a;

a=a+c;

end

s

9、a=ones(15,1);b=ones(15,1);c=ones(15,1);a(1)=2;c(1)=2;

for i=2:15;

a(i)=b(i-1)+a(i-1);

b(i)=a(i-1);

c(i)=a(i)./b(i)

end

sum(c)

第五章

3、t=1:1:10;

t=t';

y=[4.842,4.362,3.754,3.368,3.169,3.083,3.304,3.016,3.012,3.005]';

x1=[ones(size(t)),exp(-t)];

x2=[ones(size(t)),t.*exp(-t)];

p1=x1\y;

p2=x2\y;

tt=linspace(1,10,1000);

plot(t,y,'*',tt,p1(1)+p1(2)*exp(-tt),'r-',tt,p2(1)+p2(2)*tt.*exp(-tt),'c-')

相关文档
最新文档