第三章习题
1.用内联函数编写y=sinx/(1+3x+x^2)
y=inline('sin(x)/(1+3*x+x^2)')
2.用函数M文件编写函数 Z = x 1 2 + 3 x 2 2 + 3 x 3 2 + 2 x 1 x 2 + 3 x 2 x 3 + 5 x 2 x 3 Z=x_1^2+3x_2^2+3x_3^2+2x_1x_2+3x_2x_3+5x_2x_3 Z=x12+3x22+3x32+2x1x2+3x2x3+5x2x3
function Z=test(x1,x2,x3)
Z=x1^2+3*x2^2+3*x3^2+2*x1*x2+3*x2*x3+5*x2*x3
end
3.编写一程序,计算某正整数的逆序数,并计算两个数84723536、52397899的逆序数
function y=invernum(x)
y=0;
x=num2str(x);
for i=1:(length(x)-1)
for j=i+1:length(x)
if x(i)>x(j);
y=y+1;
end
end
end
运行结果:
invernum(84723536)
ans =
16
invernum(52397899)
ans =
4
8编译一程序,列出1100内的素数
function y = isprime(x)
for i = 2:x-1
if mod(x,i)==0
y='y不是素数';
break
disp(y)
elseif i==x-1
y='y是素数';
else
continue
end
end
运行结果
isprime(17)
ans =
'y是素数'
isprime(16)
ans =
'y不是素数'
9编制一程序,已知同维向量 X , Y X,Y X,Y,求相关系数 R x y R_xy Rxy
function R = coefficient(X,Y)
%UNTITLED5 求X,Y的相关系数R
% 此处显示详细说明
x_mean = mean(X)
y_mean = mean(Y)
Sx = 0
Sy = 0
Sxy = 0
%%求X的均方误差Sx
for i = 1:length(X)
% eval(['Sx',num2str(i),'=',(X(i)-x_hat)^2])
Sx=Sx+(X(i)-x_mean)^2;
end
%%求Y的均方误差Sy
for j = 1:length(Y)
Sy=Sy+(Y(i)-y_mean)^2;
end
%%求Sxy
for i = 1:length(X)
Sxy = Sxy+ (X(i)-x_mean)*(Y(i)-y_mean);
end
%%求R
R = Sxy/(sqrt(Sx)*sqrt(Sy))
end