故障诊断作业1
1.请把例1.10自己做一下。
function [avg,med]=newstats(u) %主函数
%NEWSTATS计算均值和中间值
n=length(u);
avg=mean(u,n); %调用子函数
med=median(u,n); %调用子函数
function a=mean(v,n) %子函数
a=sum(v)/n; %计算平均值
function m= median(v,n) %子函数
%计算中间值
w=sort(v);
if rem(n,2)==1
m=w((n+1)/2);
else
m=(w(n/2)+w(n/2+1))/2;
end
运行例1.10,在MATLAB命令行窗口中键入下面的指令:
>> x = 1:13;
[mean,mid]=newstats(x)
结果显示:
mean =
7
mid =
7
2.绘制二维函数 Z=-sinx2+y2 的三维曲面图,其中二维变量 x 和 y 的取值范围都是[-4,4]。
答:
代码如下:
clc; %清除命令窗口的内容
clear; %清除工作空间的所有变量,函数,和MEX文件
close all; %关闭所有的figure窗口
x = linspace(-4,4,50); %生成 n 个点,这些点的间距为 (x2-x1)/(n-1)
y = x'; %将y的转置赋给x
z = -sin(sqrt(x.^2 + y.^2));
mesh(x,y,z) %创建一个网格图,该网格图为三维曲面
colorbar %在当前坐标区或图的右侧显示一个垂直颜色栏
xlabel('x ')
ylabel('y ')
zlabel('z ')
title('z = -sin√(x^2+y^2 ) ')
3.给定二维函数 Z=(x2-2x)e-x2-y2-xy 离散得到的一些网格点,试使用3次样条插值方法,并且绘制网格点的三维图和插值拟合曲面图。
答:代码如下:
clc;
clear;
close all;
subplot(1,2,1)
x = linspace(-4,4,40);
y = x';
z = (x.^2 - 2.*x).*exp(-x.^2 - y.^2 - x.*y);
mesh(x,y,z)
xlabel('x ')
ylabel('y ')
zlabel('z ')
c = colorbar;
c.Label.String = 'z = (x^2 - 2x)exp^(-x.^2 - y.^2 - x.*y)';
title('图 1: 三维曲面图')
subplot(1,2,2)
x1 = meshgrid(-4:0.1:4); %创建间距为 0.1 的查询网格
y1 = x1';
z1 = interp2(x,y,z,x1,y1,'spline'); %对查询点插值,并指定三次样条插值
mesh(x1,y1,z1)
xlabel('x ')
ylabel('y ')
zlabel('z ')
c = colorbar;
c.Label.String = 'z = (x^2 - 2x)exp^(-x.^2 - y.^2 - x.*y)';
title('图 2: 三次样条插值拟合曲面图')