知ing

MATLAB程序设计与应用(第二版)

刘卫国 编 / 高等教育出版社

萌吹 上传

查看本书

实验五 函数文件

第一题

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*pi]); %利用ezsurf隐函数

shading interp  %进行插值着色处理



查看更多