文档库 最新最全的文档下载
当前位置:文档库 › MATLAB程序设计与应用(第二版)实验参考答案1

MATLAB程序设计与应用(第二版)实验参考答案1

MATLAB程序设计与应用(第二版)实验参考答案1
MATLAB程序设计与应用(第二版)实验参考答案1

MATLAB程序设计与应用(第二版)实验参考答案

%实验一MATLAB运算基础

%第一题

%(1)

z1=2*sin(85*pi/180)/(1+exp(2))

%(2)

x=[2,1+2i;-0.45,5];

z2=0.5*log(x+sqrt(1+x.^2))

%(3)

a=-3.0:0.1:3.0;

z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)

%(4)

t=0:0.5:2.5;

z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3)

%第二题

A=[12 34 -4;34 7 87;3 65 7];

B=[1 3 -1;2 0 3;3 -2 7];

A+6*B

A-B+eye(size(A))

A*B

A.*B

A^3

A.^3

A/B

B\A

[A,B]

[A([1,3],:);B^2]

%第三题

A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]

C=A*B

F=size(C)

D=C(F(1)-2:F(1),F(2)-1:F(2))

whos

%第四题

%(1):

A=100:999;

B=rem(A,21);

C=length(find(B==0))

%(2):

A='lsdhKSDLKklsdkl';

k=find(A>='A'&A<='Z');

A(k)=[]

%实验二MATLAB矩阵分析与处理%第一题

E=eye(3);

R=rand(3,2);

O=zeros(2,3);

S=diag([2,3]);

A=[E,R;O,S];

A^2

B=[E,(R+R*S);O,S^2]

%第二题

H=hilb(5)

P=pascal(5)

Hh=det(H)

Hp=det(P)

Th=cond(H)

Tp=cond(P)

%第三题:

A=fix(10*rand(5))

H=det(A)

Trace=trace(A)

Rank=rank(A)

Norm=norm(A)

%第四题:

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

[V,D]=eig(A)

%数学意义略

%第五题方法一:

%(1):

A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b=[0.95,0.67,0.52]';

x=inv(A)*b

%(2):

B=[0.95,0.67,0.53]';

x=inv(A)*B

%(3):

cond(A)

%第五题方法二:

A=hilb(4)

A(:,1)=[]

A(4,:)=[]

B=[0.95,0.67,0.52]';

X=inv(A)*B

B1=[0.95,0.67,0.53]';

X1=inv(A)*B1

N=cond(B)

N1=cond(B1)

Na=cond(A) %矩阵A为病态矩阵

%第六题

A=[1,4,9;16,25,36;49,64,81]

B=sqrtm(A)

C=sqrt(A) %sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算

%实验三选择程序结构设计

%第一题程序一

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];

y=[]; %建立存放所有y值的矩阵

for x0=x

if x0<0&x0~=-3

y=[y,x0*x0+x0-6];

elseif x0>=0&x0<5&x0~=2&x0~=3

y=[y,x0*x0-5*x0+6];

else

y=[y,x0*x0-x0-1];

end

end

x %输出所有x

y %输出所有y

%第一题程序二

x=[-5,-3,1,2,2.5,3,5];

y=[];

for a=1:7

if x(a)<0&x(a)~=-3

y=[y,(x(a))^2+x(a)-6];

elseif x(a)>=0&x(a)<5&x(a)~=2&x(a)~=3

y=[y,(x(a))^2-5*x(a)+6];

else

y=[y,x(a)*x(a)-x(a)-1];

end

end

%第二题程序一:

x=input('请输入一个百分制成绩:');

if x>100|x<0

disp('您输入的成绩不是百分制成绩,请重新输入。');

else

if x<=100&x>=90

disp('A');

elseif x<=89&x>=80

disp('B');

elseif x<=79&x>=70

disp('C');

elseif x<=69&x>60

disp('D');

else

disp('E');

end

end

%第二题程序二:

s=input('请输入一个成绩(0分到100分之间):'); %s用于存放成绩while 1 %判断输入成绩的合理性 if s<0|s>100

disp('输入的成绩需在0到100之间,请重新输入:')

s=input('请输入一个成绩(0分到100分之间):');

else

break;

end

end

switch fix(s/10) %对成绩做出等级判断 case {9,10}

disp('A')

case 8

disp('B')

case 7

disp('C')

case 6

disp('D')

otherwise

disp('E')

end

%第三题

n=input('请输入员工工号:');

h=input('该员工工作时数是:');

if h>120

x=(h-120)*84*(1+0.15)+120*84;

elseif h<60

x=h*84-700;

else

x=h*84;

end

disp([num2str(n),'号员工','的应发工资为',num2str(x)]);

%第四题(还可以用switch语句实现)

a=fix(10+(99-10)*rand(1,2)) %产生两个随机整数x=a(1);

y=a(2);

t=input('请输入运算符号:','s');

if t=='+'

z=x+y;

elseif t=='-'

z=x-y;

elseif t=='*'

z=x*y;

elseif t=='/'

z=x/y;

end

disp([num2str(x),t,num2str(y),'=',num2str(z)]) %输出运算结果%第五题

a=rand(5,6) %产生5x6的随机矩阵

n=input('请输入您要输出矩阵的第几行:');

if n>5

disp('超出了矩阵的行数,矩阵的最后一行为:')

a(5,:)

else

disp(['矩阵的第',num2str(n),'行为:'])

a(n,:)

end

%实验四循环结构程序设计

%第一题程序一

s=0;

n=input('n=?');

for i=1:n

s=s+1/i/i;

end

PI=sqrt(6*s)

pi

%第一题程序二

n=input('n=?');

a=1:n;

b=1./a.^2;

PI=sqrt(6*sum(b))

pi

%第二题

y=0;

n=1;

while(y<3)

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

n=n+1;

end

y=y-1/(2*(n-1)-1)

n=n-2

%第三题

a=input('a=?');

b=input('b=?');

Xn=1;

Xn1=a/(b+Xn);

n=0;

while abs(Xn1-Xn)>1e-5

Xn=Xn1;

Xn1=a/(b+Xn);

n=n+1;

if n==500

break;

end

end

n

Xn1

r1=(-b+sqrt(b*b+4*a))/2

r2=(-b-sqrt(b*b+4*a))/2

%第四题

for i=1:100

if i==1

f(i)=1;

elseif i==2

f(i)=0;

elseif i==3

f(i)=1;

else

f(i)=f(i-1)-2*f(i-2)+f(i-3); end

end

max(f)

min(f)

sum(f)

length(find(f>0))

length(find(f==0))

length(find(f<0))

%第五题:

s=0;n=0;

for i=2:49

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

m=fix(sqrt(b));

for j=2:m

if rem(b,j)==0

break

end

end

if j==m

n=n+1;

s=s+b;

end

end

n

s

%实验五函数文件

%第一题

function y=mat1(x) %建立函数文件mat1.m

y=[exp(x),log(x),sin(x),cos(x)];

%在命令窗口调用上述函数文件:

y=mat1(1+i)

%第二题程序一

function [a,b,N,M]=shiyanwu2(m,n,t)

A=[m*cos(t*pi/180),-m,-sin(t*pi/180),0;m*sin(t*pi/180),0,cos(t*pi /180),0;0,n,-sin(t*pi/180),0;0,0,-cos(t*pi/180),1];

B=[0,9.8*m,0,9.8*n];

C=inv(A)*B';

a=C(1);

b=C(2);

N=C(3);

M=C(4);

%在命令窗口调用该函数文件:

m1=input('m1=');

m2=input('m2=');

theta=input('theta=');

[a1,a2,N1,N2]=shiyanwu2(m1,m2,theta)

%第二题程序二

function X=mat2(m1,m2,t)

g=9.8;

A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0;m1*sin(t*pi/180),0,cos(t *pi/180),0;0,m2,-sin(t*pi/180),0;0,0,-cos(t*pi/180),1];

B=[0;m1*g;0;m2*g];

X=inv(A)*B;

%在命令窗口调用该函数文件:

X=mat2(1,1,60)

%第三题

function flag=mat3(x)

flag=1;

for i=2:sqrt(x)

if rem(x,i)==0

flag=0;

break;

end

end

%在命令窗口调用该函数文件:

for i=10:99

j=10*rem(i,10)+fix(i/10);

if mat3(i)&mat3(j)

disp(i)

end

end

%第四题

function y=fx(x)

y=1./((x-2).^2+0.1)+1./((x-3).^4+0.01);

%在命令窗口调用该函数文件:

y=fx(2)

a=[1,2;3,4];

y=fx(a)

%第五题

%(1)

function f1=mat5(n)

f1=n+10*log(n*n+5);

%在命令窗口中调用该函数文件:

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

%(2)方法一

function f2=mat6(n)

f2=0;

for i=1:n

f2=f2+i*(i+1);

end

%在命令窗口中调用该函数文件如:

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

%(2)方法二

function f2=mat7(n)

i=1:n;

m=i.*(i+1);

f2=sum(m);

end

%在命令窗口中调用该函数文件如:

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

%实验六高层绘图操作

%第一题:

x=linspace(0,2*pi,101);

y=(0.5+3*sin(x)./(1+x.^2)).*cos(x);

plot(x,y)

%第二题:

%(1)

x=linspace(-2*pi,2*pi,100);

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

plot(x,y1,'b-',x,y2,'r:',x,y3,'y--');

text(4,16,'\leftarrow y1=x^2');

text(6*pi/4,-1,'\downarrow y2=cos(2*x)');

text(-1.5*pi,-2.25*pi*pi,'\uparrow y3=y1*y2'); %(2)

x=linspace(-2*pi,2*pi,100);

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

subplot(1,3,1);%分区

plot(x,y1);

title('y1=x^2');%设置标题

subplot(1,3,2);

plot(x,y2);

title('y2=cos(2*x)');

subplot(1,3,3);

plot(x,y3);

title('y3=x^2*cos(2*x)');

%(3)

x=linspace(-2*pi,2*pi,20);

y1=x.^2;

subplot(2,2,1);%分区

bar(x,y1);

title('y1=x^2的条形图');%设置标题

subplot(2,2,2);

stairs(x,y1);

title('y1=x^2的阶梯图');

subplot(2,2,3);

stem(x,y1);

title('y1=x^2的杆图');

subplot(2,2,4);

fill(x,y1,'r');%如果少了'r'则会出错

title('y1=x^2的填充图');

%其他的函数照样做。

%第三题

x=-5:0.01:5;

y=[];%起始设y为空向量

for x0=x

if x0<=0 %不能写成x0=<0

y=[y,(x0+sqrt(pi))/exp(2)]; %将x对应的函数值放到y中

else

y=[y,0.5*log(x0+sqrt(1+x0^2))];

end

end

plot(x,y)

%第四题:

a=input('a=');

b=input('b=');

n=input('n=');

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

r=a*sin(b+n*t);

polar(t,r)

%第五题

x=linspace(-5,5,21);

y=linspace(0,10,31);

[x,y]=meshgrid(x,y);%在[-5,5]*[0,10]的范围内生成网格坐标

z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);

subplot(2,1,1);

surf(x,y,z);

subplot(2,1,2);

contour3(x,y,z,50);%其中50为高度的等级数,越大越密

%第六题

ezsurf('cos(s)*cos(t)','cos(s)*sin(t)','sin(s)',[0,0.5*pi,0,1.5*p i]); %利用ezsurf隐函数

shading interp %进行插值着色处理

%实验七低层绘图操作

h=figure('MenuBar','figure','color','r','WindowButtonDownFcn','di sp(''Left Button Pressed'')')

%第二题

x=-2:0.01:2;

y=x.^2.*exp(2*x);

h=line(x,y);

set(h,'color','r','linestyle',':','linewidth',2)

text(1,exp(2),'y=x^2*exp(2*x)')

%第三题

t=0:0.00001:0.001;

[t,x]=meshgrid(t);

v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi);

axes('view',[-37.5,30]);

h=surface(t,x,v);

title('v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi)');

xlabel(Ct'),ylabel('x'),zlabel('v')

%第四题

x=0:0.01:2*pi;

y1=sin(x);

y2=cos(x);

y3=tan(x);

y4=cot(x);

subplot(2,2,1);

plot(x,y1);

subplot(2,2,2);

plot(x,y2);

subplot(2,2,3);

plot(x,y3);

subplot(2,2,4);

plot(x,y4);

%第五题

cylinder(5);

light('Position',[0,1,1]);

material shiny

%实验八数据处理与多项式运算

%第一题

%(1)

A=rand(1,30000);

b=mean(A)

std(A,0,2)

%(2)

min(A)

%(3)

n=0;

for i=1:30000

if A(i)>0.5

n=n+1;

end

end

p=n/30000

%第二题

%(1)

A=45+51*rand(100,5);

[Y,U]=max(A)

[a,b]=min(A)

%(2)

m=mean(A)

s=std(A)

%(3)

sum(A,2)

[Y,U]=max(ans)

[a,b]=min(ans)

%(4)

[zcj,xsxh]=sort(ans)

%第三题

h=6:2:18;

x=6.5:2:17.5;

t1=[18,20,22,25,30,28,24];

t2=[15,19,24,28,34,32,30];

T1=spline(h,t1,x)

T2=spline(h,t2,x)

%第四题

x=1:0.1:101;

y1=log10(x);

p=polyfit(x,y1,5)

y2=polyval(p,x);

plot(x,y1,':',x,y2,'-')

%第五题

%(1)

p1=[1,2,4,0,5];

p2=[1,2];

p3=[1,2,3];

p=p1+[0,conv(p2,p3)] %为使两向量大小相同,所以补0 %(2)

A=roots(p)

%(3)

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

polyval(p,A)

%(4)

polyvalm(p,A)

%实验十五综合实验

%第一题

%定义函数文件

function zp=fs(z,n)

zp=0;

z=0;

for k=1:n;

z=1+imag(z)-1.4*real(z)^2+i*real(z)*0.3;

zp=[zp,z];

end

%在主窗口调用该函数:

n=30000;

z=0;

zp=fs(z,n);

plot(zp,'p','markersize',2,'color','r')

%第二题

quad('1/sqrt(2*pi)*exp(-x.*x/2)',0,1)

syms x

int(1/sqrt(2*pi)*exp(-x.*x/2),0,1)

%第三题

%定义函数文件

function dx=apollo(t,x)

mu=1/82.45;

mustar=1-mu;

r1=sqrt((x(1)+mu)^2+x(3)^2);

r2=sqrt((x(1)-mustar)^2+x(3)^2);

dx=[x(2);2*x(4)+x(1)-mustar*(x(1)+mu)/r1^3-mu*(x(1)-mustar)/r2^3;

x(4);-2*x(2)+x(3)-mustar*x(3)/r1^3-mu*x(3)/r2^3];

%在主窗口调用该函数:

x0=[1.2;0;0;-1.04935751];

options=odeset('reltol',1e-8);

%该命令的另一种写法是options=odeset;options.reltol=1e-8;

[t,y]=ode45(@apollo,[0,20],x0,options);

plot(y(:,1),y(:,3))%绘制x和y图像,也就是卫星的轨迹

title('Appollo卫星运动轨迹')

xlabel('X')

ylabel('Y')

%第四题

%这是一个力矩平衡问题,可列方程:500×1.5×cosα=400×2.0×cos(π/3-α)

%解得α=26.8021°。

%程序一:迭代法解方程

x1=input('x1=?');

x=pi/3.0-acos(15.0*cos(x1)/16);

while abs(x-x1)>=10e-8

x1=x;

x=pi/3.0-acos(15.0*cos(x1)/16);

if x>pi/3.0

disp('error');

end

end

y=x1*180/pi

%程序二:利用绘图功能

%分别绘制两个小孩所产生力矩随α变化的曲线,两曲线的交点即是跷跷板平衡时的αalpha=linspace(0,pi/2,80000);

m1=500*1.5*cos(alpha); %第一个小孩产生的力矩

m2=400*2*cos(pi/3-alpha); %第二个小孩产生的力矩

k=find(abs(m1-m2)<1e-2); %找平衡点

alpha0=alpha(k);

m0=500*1.5*cos(alpha0);

plot(alpha,m1,alpha,m2,alpha0,m0,'kp');

alpha=alpha0*180/pi %化为角度

%第五题

clear; close;

fplot('18-t^(2/3)',[0,20]);grid on;hold on;

fplot('5+t+2*t^(2/3)',[0,20],'r');hold off;

%发现t约为4

[t,f,h]=fsolve('18-x^(2/3)-5-x-2*x^(2/3)',4)

%求得t=4.6465

t=linspace(0,t,100); y=18-t.^(2/3)-5-t-2*t.^(2/3);

trapz(t,y)-20

%最大利润6.3232(百万元)

实验二 Matlab程序设计基本方法1

实验二Matlab程序设计基本方法 覃照乘自092 电气工程学院 一、实验目的: 1、熟悉MATLAB 程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 二、实验基本知识: ◆for循环结构 语法:for i=初值:增量:终值 语句1 …… 语句n end 说明:1.i=初值:终值,则增量为1。 2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 ◆while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达 式的值为假,则程序执行end之后的语句。 2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位 置加break语句、以便程序能正常执行。(执行循环体的次数不确定; 每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下:

while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end ◆if-else-end分支结构 if 表达式1 语句1 else if 表达式2(可选) 语句2 else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。 2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。 ◆switch-case结构 语法:switch表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 …… otherwise 语句组n end

MATLAB数学实验第二版答案(胡良剑)

数学实验答案 Chapter 1 Page20,ex1 (5) 等于[exp(1),exp(2);exp(3),exp(4)] (7) 3=1*3, 8=2*4 (8) a为各列最小值,b为最小值所在的行号 (10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture (11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10) (12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10) Page20, ex2 (1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b (2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码 Page20,ex3 >> r=2;p=0.5;n=12; >> T=log(r)/n/log(1+0.01*p) Page20,ex4 >> x=-2:0.05:2;f=x.^4-2.^x; >> [fmin,min_index]=min(f) 最小值最小值点编址 >> x(min_index) ans = 0.6500 最小值点 >> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点 f1 = 0.0328 x1_index = 24 >> x(x1_index) ans = -0.8500 >> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点 >> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点 f2 = 0.0630 x2_index = 65 >> x(x2_index) ans = 1.2500

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

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)

实验3MATLAB程序设计

1,编写M 函数实现求一个数是否为素数,再编写一主程序(脚本文件),要求通过键盘输入一个整数,然后调用判断素数函数,从而确定它是否素数。 x=input('请输入一个整数x:'); if myprime(x) disp('您输入的整数x是一个素数。') else disp('您输入的数x不是一个素数。') end function y=myprime(x) y=1; for i=2:fix(sqrt(x)) if mod(x,i)==0 y=0; end end 2,编写M 函数统计一数值中零的个数,然后编写脚本文件,实现统计从1—2007 中零的总个数。 function num=number0(a) %统计十进制数值中0的个数 sa=num2str(a);%将数值装化为字符串 num=length(find(sa=='0'));% ));%求取字符串中'0’的个数 y=0;

for a=1:2006 num=number0(a); y=num+y; end disp(y) 504 3,编写程序计算x∈[-3,3],字长0.01:并画出曲线x = -3:0.01:3; y=zeros(size(x)); for i = 1:length(x) if -3<= x(i)& x(i)<=-1 y(i)=(-x(i).^2-4*x(i)-3)/ 2; elseif -1<= x(i) & x(i)<=1 y(i)=-x(i).^2+1; elseif 1<=x(:,i)<=3 y(i)=(-x(i).^2+4*x(i)-3)/2; end end plot(x,y) -3-2-10123

刘卫国版MATLAB程序设计与应用课后实验六八九

实验六 高层绘图操作 %第一题: 程序代码如下: x=linspace(0,2*pi,101); y=(0.5+3*sin(x)./(1+x.^2)).*cos(x); plot(x,y) 01234567 -1 -0.5 0.5 1 1.5 %第二题: %(1) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,'b-',x,y2,'r:',x,y3,'y--'); text(4,16,'\leftarrow y1=x^2'); text(6*pi/4,-1,'\downarrow y2=cos(2*x)'); text(-1.5*pi,-2.25*pi*pi,'\uparrow y3=y1*y2');

-8 -6 -4 -2 2 4 6 8 -30-20 -10 10 20 30 40 %(2) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; subplot(1,3,1);%分区 plot(x,y1); title('y1=x^2');%设置标题 subplot(1,3,2); plot(x,y2); title('y2=cos(2*x)'); subplot(1,3,3); plot(x,y3); title('y3=x^2*cos(2*x)');

-10 10 0510 15202530 35 40y1=x 2 -10 10 -1-0.8 -0.6 -0.4-0.200.20.4 0.6 0.8 1y2=cos(2*x) -10 10 -30-20 -10 10 20 30 40 y3=x 2*cos(2*x) %(3) 程序代码如下: x=linspace(-2*pi,2*pi,20); y1=x.^2; subplot(2,2,1);%分区 bar(x,y1); title('y1=x^2的条形图');%设置标题 subplot(2,2,2); stairs(x,y1); title('y1=x^2的阶梯图'); subplot(2,2,3); stem(x,y1); title('y1=x^2的杆图'); subplot(2,2,4); fill(x,y1,'r');%如果少了'r'则会出错 title('y1=x^2的填充图'); %其他的函数照样做。

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

Matlab程序设计与应用第二版刘卫国课后实验答案

. 实验一: T1: %%第一小题 z1=2*sin(85*pi/180)/(1+exp(2)) %%第二小题 x=[2,1+2i;-0.45,5]; z2=1/2*log(x+sqrt(1+x.^2)); z2 %%第三小题 a=-3.0:0.1:3.0; z3=1/2*(exp(0.3*a)-exp(-0.3*a)).*sin(a+ 0.3)+log((0.3+a)/2) %%第四题 t=0:0.5:2.5 z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t .^2-1)+(t>=2&t<3).*(t.^2-2*t+1) T2: A=[12,34,-4;34,7,87;3,65,7] B=[1,3,-1;2,0,3;3,-2,7] disp ('A+6*B='); disp(A+6*B); disp('A-B+I=');disp(A-B+eye(3)); disp('A*B='); disp(A*B); disp('A.*B='); disp(A.*B); disp('A^3='); disp(A^3); disp('A.^3='); disp(A.^3); disp('A/B='); disp(A/B); disp('B\A='); disp(B\A); disp('[A,B]='); disp([A,B]); disp('[A([1,3],:);B^2]='); disp([A([1,3],:);B^2]); T3: z=1:25; A=reshape(z,5,5)'; B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; C=A*B

MATLAB程序设计实验报告

MATLAB 程序设计实验报告 一、实验目的 1. 通过实验熟悉MATLAB 仿真软件的使用方法; 2. 掌握用MATLAB 对连续信号时域分析、频域分析和s 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 3. 掌握用MATLAB 对离散信号时域分析、频域分析和z 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 4. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。 二、实验设备 1. 计算机 : 2. MATLAB R2007a 仿真软件 三、实验原理 对系统的时域分析 信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。 (1)信号的相加和相乘:已知信号)(1t f 和)(2t f ,信号相加和相乘记为 )()(1t f t f =)(2t f +;)()(1 t f t f =)(2t f *。 (2)信号的微分和积分:对于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function,’variable’,n),其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。连续信号的积分运算用int 函数来完成,语句格式为:diff(function,’variable’,a,b),其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a 和b 省略时为求不定积分。 (3)信号的平移、翻转和尺度变换 信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(t f 的面积和能量。信号的尺度变换是对信号)(t f 在时间轴上的变化,可使信号压缩或扩展。)(at f 将原波形压缩a 倍,)/(a t f 将原波形扩大a 倍。 ¥ 对系统频率特性的分析

南邮MATLAB数学实验答案(全)

第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4).

Matlab程序设计实验报告

实验七Matlab 程序设计 实验目的: 1、掌握建立和执行M 文件的方法; 2、掌握实现选择结构的方法; 3、掌握实现循环结构的方法。 实验内容: 1. 编写用 5 次多项式拟合函数y=sin(x), x [0, 2 ]的脚本M 文件,要求绘图观察拟合的效果。 function shiyan1 x=0:0.5:2*pi y=sin(x) p=polyfit(x,y,5) x1=0:0.2:2*pi y1=polyval(p,x1) plot(x,y, 'b' ,x1,y1, '*r' x =

Columns 1 through 9 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 Columns 10 through 13 4.5000 5.0000 5.5000 6.0000 y = Columns 1 through 9 0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411 -0.3508 -0.7568 Columns 10 through 13 -0.9775 -0.9589 -0.7055 -0.2794 p = -0.0056 0.0881 -0.3967 0.2671 0.8902 0.0029 x1 = Columns 1 through 10 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 Columns 11 through 20

2. 2.2000 2.4000 2.6000 2.8000 3.0000 3.2000 3.4000 3.6000 1.8001 Columns 21 through 30 4.0 4.2000 4.4000 4.6000 4.8000 5.0000 5.2000 5.4000 5.6000 5.8000 Columns 31 through 32 6.0 6.2000 y1 = Columns 1 through 10 0.29 0.1886 0.3786 0.5585 0.7172 0.8461 0.9391 0.9926 1.0048 0.9761 Columns 11 through 20 0.9083 0.8048 0.6701 0.5098 0.3301 0.1381 -0.0590 -0.2538 -0.4389 -0.6073 Columns 21 through 30 -0.7524 -0.8685 -0.9505 -0.9949 -0.9991 -0.9626 -0.8863 -0.7732 -0.6288 -0.4606 Columns 31 through 32

MATLAB程序设计及应用(第二版)课后实验答案

Matlab 课后实验题答案 实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 0 12 2sin851z e =+ (2) 221 ln(1)2z x x = ++,其中2120.45 5i x +??=??-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+= ++=-- (4) 22 42011 122123t t z t t t t t ?≤=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1) 2. 已知:

1234413134787,2033657327A B --???? ????==???? ????-???? 求下列表达式的值: (1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A (5) [A,B]和[A([1,3],:);B^2] 解: M 文件: A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*B A-B+eye(3) A*B A.*B A^3 A.^3 A/B B\A [A,B] [A([1,3],:);B^2] 3. 设有矩阵A 和B 1234 53 166789101769,11 121314150 23416171819209 7021222324254 1311A B ???? ????-??? ?????==-??? ? ???????????? (1) 求它们的乘积C 。 (2) 将矩阵C 的右下角3×2子矩阵赋给D 。 (3) 查看MATLAB 工作空间的使用情况。 解:. 运算结果: E=(reshape(1:1:25,5,5))';F=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]; C= E*F H=C(3:5,2:3) C = 93 150 77

MATLAB程序设计及经典例题解析3

MATLAB程序设计 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。 例3-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1:首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c =22.7778 程序2:首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c =21.1111 x =21.1111 3.1.2 M文件的建立与打开 M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。

1.建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。 (2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 2.打开已有的M文件 打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 (2) 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。 3.2 程序控制结构 3.2.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为: A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什么样的数据。 如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令: xm=input('What''s your name?','s'); 2.数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为

D实验五 M文件和MATLAB程序设计

实验五M文件和MATLAB程序设计 一、实验目的 matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。 1.掌握M文件的使用方法。 2.掌握if语句和switch语句的使用 3. 掌握循环语句的使用 4. 通过练习理解MATLAB编程方法。 二、实验原理 1.m文件 用matlab语言编写的程序,称为m文件。M文件根据调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file)。区别? 2.程序控制结构 1)顺序结构 2)选择结构 (1)if语句a) 单分支if语句b) 双分支if语句c) 多分支if语句 (2)switch 语句 (3)try语句 3)循环结构 (1)for 语句 (2)while语句 (3)break语句、continue语句、return使用,区别? 3.函数文件 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意事项? 三、实验要求 1.首先上机练习PPT中各种流程控制语句的有关实例。 2.然后上机练习下面的实验习题。 四、实验习题

1.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2→1 3→10→5→16→8→4→2→1 6→3→10→5→16→8→4→2→1 运行下面的程序,按程序提示输入n=1,2,3,5,7,8,9等数来验证这一结论。 %classic "3n+1" problem from number theory. while 1 n=input('Enter n,negative quits:'); if n<=0 break end a=n; while n>1 if rem(n,2)==0 n=n/2; else n=3*n+1; end a=[a,n]; end a end Enter n,negative quits: 2. 编程求满足∑=>m i i 11000020的最小m 值。 a=0; i=1; while (a<100000) a=a+pow2(i); i=i+1; end m=i-1 3. 编写一个函数,计算下面函数的值,给出x 的值,调用该函数后,返回y 的值。 function [y]=myfun1(x)

matlab实验报告

实验报告 2. The Branching statements 一、实验目的: 1.To grasp the use of the branching statements; 2.To grasp the top-down program design technique. 二、实验内容及要求: 1.实验内容: 1).编写 MATLAB 语句计算 y(t)的值 (Write the MATLAB program required to calculate y(t) from the equation) ???<+≥+-=0 530 53)(2 2t t t t t y 已知 t 从-5到 5 每隔0.5取一次值。运用循环和选择语句进行计算。 (for values of t between -5 and 5 in steps of 0.5. Use loops and branches to perform this calculation.) 2).用向量算法解决练习 1, 比较这两个方案的耗时。 (tic ,toc 的命令可以帮助你完成的时间计算,请使用'help'函数)。 Rewrite the program 1 using vectorization and compare the consuming time of these two programs. (tic, toc commands can help you to finish the time calculation, please use the …help ? function). 2.实验要求: 在报告中要体现top-down design technique, 对于 3 要写出完整的设计过程。 三、设计思路: 1.用循环和选择语句进行计算: 1).定义自变量t :t=-5:0.5:5; 2).用循环语句实现对自变量的遍历。 3).用选择语句实现对自变量的判断,选择。 4).将选择语句置入循环语句中,则实现在遍历中对数据的选择,从而实现程序的功能。 2. 用向量法实现: 1).定义自变量t :t=-5:0.5:5; 2).用 b=t>=0 语句,将t>=0得数据选择出,再通过向量运算y(b)=-3*t(b).^2 + 5; 得出结果。 3).用取反运算,选择出剩下的数据,在进行向量运算,得出结果。 四、实验程序和结果 1.实验程序 实验程序:创建m 文件:y_t.m

MATLAB程序设计与应用(第二版)刘卫国主编_部分实验答案

实验六 2_1 clear; x=linspace(0,2*pi,101); y1=x.^2; y2=cos(2.*x); y3=y1.*y2; plot(x,y1,'b-',x,y2,'r:',x,y3,'g-.'); %y1蓝色实线,y2红色虚线,y3绿色点画线 2_2 subplot(2,2,1); %分四个子图(先画2行2列第1块) plot(x,y1); subplot(2,2,2); plot(x,y2), subplot(2,2,3); plot(x,y3);

2_3 () subplot(3,4,1); %y1的四种图形bar(x,y1); subplot(3,4,2); stairs(x,y1), subplot(3,4,3); stem(x,y1); subplot(3,4,4); fill(x,y1,'b'); subplot(3,4,5); %y2 bar(x,y2); %条形图subplot(3,4,6); stairs(x,y2), %阶梯图subplot(3,4,7); stem(x,y2); %杆图subplot(3,4,8);

fill(x,y2,'b'); %填充图,注意必须加填充颜色 subplot(3,4,9); %y3 bar(x,y3); subplot(3,4,10); stairs(x,y3), subplot(3,4,11); stem(x,y3); subplot(3,4,12); fill(x,y3,'b'); 3 clear; x=-5:0.1:5; if x<=0 y=(x+sqrt(pi)/exp(2)); else y=0.5.*log(x+sqrt(1+x.^2));

矩量法matlab程序设计实例

矩量法m atla b程序设计实例: Ha llen 方程求对称振子天线 一、条件与计算目标 已知: 对称振子天线长为L,半径为a ,且天线长度与波长得关系为,,设,半径a=0、0000001,因此波数为。 目标: 用H all en 方程算出半波振子、全波振子以及不同值得对应参数值。 求:(1)电流分布 (2)E 面方向图 (二维),H 面方向图(二维),半波振子空间方向性图(三维) 二、对称振子放置图 图1 半波振子得电流 分布 半波振子天线平行于z 轴放置,在x轴与y轴上得分量都为零,坐标选取方式有两种形式,一般选取图1得空间放置方 式。图1给出了天线得电流分布情况,由图可知,当天线很细时,电流分布近似正弦分布。 三、Ha llen 方程 得解题思路 ()()()()2 1 ' ' ' ' 12,cos sin sin 'z z i z z z z i z k z G z z dz c kz c kz E k z z dz j ωμ'++=-?? 对于中心馈电得偶极子,Hallen 方程为 ()22'1222 ('),'cos sin sin ,2L L i L L V i z G z z dz c kz c kz k z z j η + -- ++= <<+? 脉冲函数展开与点选配,得到 ()1121 ,''cos sin sin ,1,2,,2n n N z i n m m m m z n V I G z z dz c kz c kz k z m N j η +''=++= =???∑? 上式可以写成 矩阵形式为 四、结果与分析 (1)电流分布

matlab程序设计例题及答案

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)

12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469

实验二 MATLAB程序设计

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验内容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 21 21 421 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 请为关键的Matlab 语句填写上相关注释,说明其含义或功能。 4. y 的值。 5. (Root Mean Square)的计算公式为:

Matlab程序设计与应用第二版刘卫国课后实验答案

实验一: T1: %%第一小题 z1=2*sin(85*pi/180)/(1+exp(2)) %%第二小题 x=[2,1+2i;-0.45,5]; z2=1/2*log(x+sqrt(1+x.^2)); z2 %%第三小题 a=-3.0:0.1:3.0; z3=1/2*(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)+l og((0.3+a)/2) %%第四题 t=0:0.5:2.5 z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t >=2&t<3).*(t.^2-2*t+1) T2: A=[12,34,-4;34,7,87;3,65,7] B=[1,3,-1;2,0,3;3,-2,7] disp ('A+6*B='); disp(A+6*B); disp('A-B+I='); disp(A-B+eye(3)); disp('A*B='); disp(A*B); disp('A.*B='); disp(A.*B); disp('A^3='); disp(A^3); disp('A.^3='); disp(A.^3); disp('A/B='); disp(A/B); disp('B\A='); disp(B\A); disp('[A,B]='); disp([A,B]); disp('[A([1,3],:);B^2]='); disp([A([1,3],:);B^2]); T3: z=1:25; A=reshape(z,5,5)'; B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; C=A*B D=C(3:5,2:3) T4-1: a=100:999; b=find(rem(a,21)==0); c=length(b) T4-2: a=input('请输入一个字符串:','s'); b=find(a>='A'&a<='Z'); a(b)=[]; disp(a); 实验二: T1: E=eye(3),R=rand(3,2),O=zeros(2,3),S=diag([1,2 ]); A=[E,R;O,S] disp('A^2='); disp(A^2); disp('[E,R+RS;O,S^2]'); B=[E,R+R*S;O,S^2] T2: H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) a=abs(Th-1); b=abs(Tp-1); if a>b disp('帕萨卡矩阵P性能更好'); elseif a

相关文档
相关文档 最新文档