最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

最新matlab第三章课后部分答案

IT圈 admin 30浏览 0评论

2024年3月7日发(作者:贵明达)

__________________________________________________

习题三

3-2 从键盘输入一个三位整数,将它反向输出。如输入639,输出为936

程序如下:

m=input('请输入一个三位整数:');

m1=fix(m/100);%求m的百位整数

m2=rem(fix(m/10),10);%求m的十位数字

m3=rem(m,10);%求m的个位数字

m=m3*100+m2*10+m1%反向输出m

3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:(1)分别用if语句和switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

程序如下:

(1)if语句

c=input('请输入成绩:');

if c>=90&c<=100

disp('A 成绩合理');

elseif c>=80&c<=89

disp('B 成绩合理');

elseif c>=70&c<=79

disp('C 成绩合理');

elseif c>=60&c<=69

disp('D 成绩合理');

elseif c<60

disp('E 成绩合理');

else

disp('成绩错误');

end

(2)switch语句

c=input('请输入成绩:');

switch fix(c)

case num2cell(90:100)

disp('A 成绩合理');

case num2cell(80:89)

disp('B 成绩合理');

case num2cell(70:79)

disp('C 成绩合理');

case num2cell(60:69)

disp('D 成绩合理');

case num2cell(0:59)

disp('E 成绩合理');

otherwise

disp('成绩错误');

end

收集于网络,如有侵权请联系管理员删除

__________________________________________________

3-4 建立5*6矩阵,要求输出矩阵第N行元素。当N值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

程序如下:

clear all

a=fix(rand(5,6)*89)+10;

n=input('请输入行数n(输出结果是5*6矩阵的元素):');

if n>5|n<0

b=a(5:5,:);

disp(['输入行数错误,程序输出最后一行:',num2str(b)])

else

c=a(n:n,:);

disp(['输出结果为:',num2str(c)])

end

3-5 产生20个两位随机整数,输出其中小于平均值的偶数。

程序如下:

x=fix(rand(1,20)*89)+10;

x1=fix(sum(x)/20);

disp(['平均数是: ',num2str(x1)])

m=(rem(x,2)==0&x

n=find(m);

disp(['小于平均数的数是: ',num2str(x(n))]);

3-6 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。

程序如下:

主函数

c=input('请输入20个数:')

disp('最大值是:')

m=max(c)

disp('最小值是:')

n=min(c)

max函数

function m=max(a[])

m=a(1,20);

for i=2:20

if m>a(1,i)

m=a(1,i)

end

end

min函数

function n=min(a[])

m=a(1,20);

for i=2:20

if n

n=a(1,i)

收集于网络,如有侵权请联系管理员删除

__________________________________________________

end

end

3-8 当n分别取100、1000、10000时,求下列各式的值:

(1)1/1^2+1/2^2+1/3^2+···+1/n^2+···(=pi^2/6)

程序如下:

clear all

n=1:100;

b=1./(n.*n);

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 1.635

当n等于1000时: 1.6439

当n等于10000时: 1.6448

(2) 1-1/3+1/5-1/7+···(=pi/4)

程序如下:

clear all

n=1:100;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 0.78415

当n等于1000时: 0.78527

当n等于10000时: 0.78539

(3)1/4+1/16+1/64+···+1/4^n+···(=1/3)

程序如下:

clear all

n=1:100;

b=1./(4.^n);

收集于网络,如有侵权请联系管理员删除

__________________________________________________

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(4.^n);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(4.^n);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 0.33333

当n等于1000时: 0.33333

当n等于10000时: 0.33333

(4)···((2n)(2n)/(2n-1)(2n+1))···(=pi/2)

程序如下:

clear all

n=1:100;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 1.5669

当n等于1000时: 1.5704

当n等于10000时: 1.5708

3-9若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如,2*3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求[2,50]区间内:

(1)亲密数对的对数。

(2)与上述亲密数对对应的所有亲密素数之和。

程序如下:

clear all

p=0;

l=0;

H=[];

for m=2:49

a=m;

b=m+1;

收集于网络,如有侵权请联系管理员删除

__________________________________________________

c=a*b-1;

for k=1:c

if rem(c,k)==0

l=l+1;

end

end

if l==2

disp(['亲密数对是','(',num2str(a),',',num2str(b),')'])

p=p+1;

H=[H,c];

end

l=0;

end

sum=sum(H);

disp(['亲密数对的个数是:',num2str(p)])

disp(['亲密数对的和是: ',num2str(sum)])

3-10 根据y=1+1/3+1/5+···+1/(2n-1),求:

(1)y<3时的最大n值。

(2)与(1)的n值对应的y值。

程序如下:sum=0;

for n=1:100

sum=sum+1/(2*n-1);

if sum>3&(sum-1/(2*n-1))<3

disp(n-1)

disp(sum-1/(2*n-1))

end

end

方法2

clear all

n=1;

y=0;

while(y<3)

x=1/(2*n-1);

n=1+n;

y=y+x;

end

disp(['y<3时n的最大值是: ',num2str(n-2)])

disp(['相应的y值是: ',num2str(y-x)])

3-12 编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。

程序如下:

mul函数 %用于求两个矩阵的乘积和点乘

function [x,y]=mul(a,b)

x=a*b;

y=a.*b;

收集于网络,如有侵权请联系管理员删除

__________________________________________________

main%主函数

a=input('请输入一个矩阵:');

b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)');

[x,y]=mull(a,b);

disp('这两个矩阵的乘积为:');

x

disp('这两个矩阵的点乘为:');

y

3-14 先用函数的递归调用定义一个函数文件求∑I,然后调用该函数文件求∑k+∑k^2+∑1/k

程序如下:

定义一个求和函数:

function sum=add(n,m)

if n<1

sum=0;

else

sum=n^m+add(n-1,m);

end

主函数:

clear all

y=add(100,1)+add(50,2)+add(10,-1);

disp(y)

销售代理合同书

合同编号:第

签订地点:

甲方:

乙方:

为了共同发展我国的医药市场、满足广大患者的需求,根据《中华人民共和国合同法》及其他相关法律法规,甲乙双方本着诚实守信、平等互利、合作共赢的原则,就本合同规定产品的市场销售和推广事宜,经友好平等协商,达成如下条款,共同遵守执行。

双方声明:本协议之签订,须由甲乙双方法定代表人签字或授权代表签字并加盖法人公章,自然人必须本人签字。各方必须严格遵守《中华人民共和国药品管理法》、《中华人民共和国药品管理法实施条例》、《药品流通监督管理办法》(局令第26号)等国家相关法律、法规及相关政府规定,依法经营。

一、代理产品及供货价格

1、甲方授权乙方为下列产品在本合同规定区域内的经销商,在代理区域内从事产品的市场销售和推广:

收集于网络,如有侵权请联系管理员删除

__________________________________________________

品 名 规格 生产厂家

包装规格(件)

供货价格

(元/支)

协议年度

指标(支)

2、双方同意,若遇国家政策法规调整、物价上涨、产品零售价格调整等因素,由双方根据市场情况及企业成本重新协商供货价格。

3、乙方在代理区域如有再次分销情况,则分销价格限定为:

二、代理区域、期限及要求

1.甲方授权乙方定向销售代理的区域范围为: 区域内医院(具体目标医院明细见附表)。

2.代理期限:自 至 _ 止。

3.经销途径约定:协议产品为临床品种,不得在零售药店销售。

三、代理资质与代理保证金

1.本合同签订之日起 日内,乙方须向甲方交纳市场保证金: _ __万元人民币。

保证金是为保证在代理期限内有效控制代理区域内的产品销售体系,不窜货、不做损害甲方产品及合法权益而设置的;同时也是乙方销售任务量、取得市场保护权的保证。合同期满或终止,乙方完全履行本合同且无任何损害甲方权益的行为,甲方应在乙方完成市场交接工作、无遗留问题后1个月内,无息返还乙方市场保证金,如保证金另有其他用途详见补充条款。

2.若遇国家政策法规调整、物价上涨、产品零售价格调整等因素,双方协商终止本合同或因不可抗力终止本合同,甲方应在乙方完成市场交接工作、无遗留问题后1个月内,无息返还乙方市场保证金;若由于乙方销售、经营、管理不善,没有完成合同规定协议指标,甲方有权没收市场保证金。

收集于网络,如有侵权请联系管理员删除

2024年3月7日发(作者:贵明达)

__________________________________________________

习题三

3-2 从键盘输入一个三位整数,将它反向输出。如输入639,输出为936

程序如下:

m=input('请输入一个三位整数:');

m1=fix(m/100);%求m的百位整数

m2=rem(fix(m/10),10);%求m的十位数字

m3=rem(m,10);%求m的个位数字

m=m3*100+m2*10+m1%反向输出m

3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:(1)分别用if语句和switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

程序如下:

(1)if语句

c=input('请输入成绩:');

if c>=90&c<=100

disp('A 成绩合理');

elseif c>=80&c<=89

disp('B 成绩合理');

elseif c>=70&c<=79

disp('C 成绩合理');

elseif c>=60&c<=69

disp('D 成绩合理');

elseif c<60

disp('E 成绩合理');

else

disp('成绩错误');

end

(2)switch语句

c=input('请输入成绩:');

switch fix(c)

case num2cell(90:100)

disp('A 成绩合理');

case num2cell(80:89)

disp('B 成绩合理');

case num2cell(70:79)

disp('C 成绩合理');

case num2cell(60:69)

disp('D 成绩合理');

case num2cell(0:59)

disp('E 成绩合理');

otherwise

disp('成绩错误');

end

收集于网络,如有侵权请联系管理员删除

__________________________________________________

3-4 建立5*6矩阵,要求输出矩阵第N行元素。当N值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

程序如下:

clear all

a=fix(rand(5,6)*89)+10;

n=input('请输入行数n(输出结果是5*6矩阵的元素):');

if n>5|n<0

b=a(5:5,:);

disp(['输入行数错误,程序输出最后一行:',num2str(b)])

else

c=a(n:n,:);

disp(['输出结果为:',num2str(c)])

end

3-5 产生20个两位随机整数,输出其中小于平均值的偶数。

程序如下:

x=fix(rand(1,20)*89)+10;

x1=fix(sum(x)/20);

disp(['平均数是: ',num2str(x1)])

m=(rem(x,2)==0&x

n=find(m);

disp(['小于平均数的数是: ',num2str(x(n))]);

3-6 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。

程序如下:

主函数

c=input('请输入20个数:')

disp('最大值是:')

m=max(c)

disp('最小值是:')

n=min(c)

max函数

function m=max(a[])

m=a(1,20);

for i=2:20

if m>a(1,i)

m=a(1,i)

end

end

min函数

function n=min(a[])

m=a(1,20);

for i=2:20

if n

n=a(1,i)

收集于网络,如有侵权请联系管理员删除

__________________________________________________

end

end

3-8 当n分别取100、1000、10000时,求下列各式的值:

(1)1/1^2+1/2^2+1/3^2+···+1/n^2+···(=pi^2/6)

程序如下:

clear all

n=1:100;

b=1./(n.*n);

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 1.635

当n等于1000时: 1.6439

当n等于10000时: 1.6448

(2) 1-1/3+1/5-1/7+···(=pi/4)

程序如下:

clear all

n=1:100;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 0.78415

当n等于1000时: 0.78527

当n等于10000时: 0.78539

(3)1/4+1/16+1/64+···+1/4^n+···(=1/3)

程序如下:

clear all

n=1:100;

b=1./(4.^n);

收集于网络,如有侵权请联系管理员删除

__________________________________________________

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(4.^n);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(4.^n);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 0.33333

当n等于1000时: 0.33333

当n等于10000时: 0.33333

(4)···((2n)(2n)/(2n-1)(2n+1))···(=pi/2)

程序如下:

clear all

n=1:100;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时: 1.5669

当n等于1000时: 1.5704

当n等于10000时: 1.5708

3-9若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如,2*3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求[2,50]区间内:

(1)亲密数对的对数。

(2)与上述亲密数对对应的所有亲密素数之和。

程序如下:

clear all

p=0;

l=0;

H=[];

for m=2:49

a=m;

b=m+1;

收集于网络,如有侵权请联系管理员删除

__________________________________________________

c=a*b-1;

for k=1:c

if rem(c,k)==0

l=l+1;

end

end

if l==2

disp(['亲密数对是','(',num2str(a),',',num2str(b),')'])

p=p+1;

H=[H,c];

end

l=0;

end

sum=sum(H);

disp(['亲密数对的个数是:',num2str(p)])

disp(['亲密数对的和是: ',num2str(sum)])

3-10 根据y=1+1/3+1/5+···+1/(2n-1),求:

(1)y<3时的最大n值。

(2)与(1)的n值对应的y值。

程序如下:sum=0;

for n=1:100

sum=sum+1/(2*n-1);

if sum>3&(sum-1/(2*n-1))<3

disp(n-1)

disp(sum-1/(2*n-1))

end

end

方法2

clear all

n=1;

y=0;

while(y<3)

x=1/(2*n-1);

n=1+n;

y=y+x;

end

disp(['y<3时n的最大值是: ',num2str(n-2)])

disp(['相应的y值是: ',num2str(y-x)])

3-12 编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。

程序如下:

mul函数 %用于求两个矩阵的乘积和点乘

function [x,y]=mul(a,b)

x=a*b;

y=a.*b;

收集于网络,如有侵权请联系管理员删除

__________________________________________________

main%主函数

a=input('请输入一个矩阵:');

b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)');

[x,y]=mull(a,b);

disp('这两个矩阵的乘积为:');

x

disp('这两个矩阵的点乘为:');

y

3-14 先用函数的递归调用定义一个函数文件求∑I,然后调用该函数文件求∑k+∑k^2+∑1/k

程序如下:

定义一个求和函数:

function sum=add(n,m)

if n<1

sum=0;

else

sum=n^m+add(n-1,m);

end

主函数:

clear all

y=add(100,1)+add(50,2)+add(10,-1);

disp(y)

销售代理合同书

合同编号:第

签订地点:

甲方:

乙方:

为了共同发展我国的医药市场、满足广大患者的需求,根据《中华人民共和国合同法》及其他相关法律法规,甲乙双方本着诚实守信、平等互利、合作共赢的原则,就本合同规定产品的市场销售和推广事宜,经友好平等协商,达成如下条款,共同遵守执行。

双方声明:本协议之签订,须由甲乙双方法定代表人签字或授权代表签字并加盖法人公章,自然人必须本人签字。各方必须严格遵守《中华人民共和国药品管理法》、《中华人民共和国药品管理法实施条例》、《药品流通监督管理办法》(局令第26号)等国家相关法律、法规及相关政府规定,依法经营。

一、代理产品及供货价格

1、甲方授权乙方为下列产品在本合同规定区域内的经销商,在代理区域内从事产品的市场销售和推广:

收集于网络,如有侵权请联系管理员删除

__________________________________________________

品 名 规格 生产厂家

包装规格(件)

供货价格

(元/支)

协议年度

指标(支)

2、双方同意,若遇国家政策法规调整、物价上涨、产品零售价格调整等因素,由双方根据市场情况及企业成本重新协商供货价格。

3、乙方在代理区域如有再次分销情况,则分销价格限定为:

二、代理区域、期限及要求

1.甲方授权乙方定向销售代理的区域范围为: 区域内医院(具体目标医院明细见附表)。

2.代理期限:自 至 _ 止。

3.经销途径约定:协议产品为临床品种,不得在零售药店销售。

三、代理资质与代理保证金

1.本合同签订之日起 日内,乙方须向甲方交纳市场保证金: _ __万元人民币。

保证金是为保证在代理期限内有效控制代理区域内的产品销售体系,不窜货、不做损害甲方产品及合法权益而设置的;同时也是乙方销售任务量、取得市场保护权的保证。合同期满或终止,乙方完全履行本合同且无任何损害甲方权益的行为,甲方应在乙方完成市场交接工作、无遗留问题后1个月内,无息返还乙方市场保证金,如保证金另有其他用途详见补充条款。

2.若遇国家政策法规调整、物价上涨、产品零售价格调整等因素,双方协商终止本合同或因不可抗力终止本合同,甲方应在乙方完成市场交接工作、无遗留问题后1个月内,无息返还乙方市场保证金;若由于乙方销售、经营、管理不善,没有完成合同规定协议指标,甲方有权没收市场保证金。

收集于网络,如有侵权请联系管理员删除

发布评论

评论列表 (0)

  1. 暂无评论