数值分析的作业
数值分析的作业function [xbar,s]=exA_2(x) n=length(x); % 解法1. for 循环 xbar =0; xs =0; for t=1:n xbar = xbar + x(t); xs = xs + x(t)^2; end xbar=xbar/n; s=sqrt((xs-n*xbar^2)/(n-1)); 这篇文档涉及的是数值分析在MATLAB环境中的应用,主要展示了计算平均值(均值)和标准差的方法,以及几个不同的图形绘制技术。我们来深入解析计算平均值和标准差的函数`exA_2(x)`。 在MATLAB中,`exA_2(x)`函数用于计算向量`x`的均值`xbar`和样本标准差`s`。这个函数有两种实现方式: 1. **使用for循环**: 这是函数的主体部分,通过for循环遍历向量`x`的每个元素。初始化`xbar`为0,用于累加元素;`xs`也为0,用于累加元素的平方。在循环中,`xbar`和`xs`分别进行更新。将`xbar`除以元素个数`n`得到均值,然后利用公式计算标准差。标准差`s`是样本方差的平方根,样本方差是根据均值调整后的平方和除以(n-1)。 2. **使用内置函数sum**: 这是一种更简洁的实现,通过MATLAB的内置函数`sum`直接求和,可以更高效地计算均值和样本方差。`xbar`是`x`元素之和除以`n`,而样本方差是`(sum(x.^2) - n*xbar^2) / (n-1)`,然后取其平方根得到标准差`s`。 接下来,文档展示了几种MATLAB的图形绘制技术: 1. **plot函数**:用于绘制二维曲线,比如`plot(x,y)`,其中`x`和`y`是对应的数据点。 2. **fplot函数**:用于绘制函数图像,如`fplot(y,[-2 2])`,这里绘制了`y`函数在指定区间的图像。 3. **参数方法**:通过参数`t`来绘制曲线,例如`plot(x,y)`,其中`x`和`y`由参数`t`生成。 4. **meshgrid和surf函数**:用于创建和绘制三维曲面,如`surf(x,y,z)`,其中`x`, `y`, 和 `z`是通过`meshgrid`函数生成的网格数据。 5. **plot3函数**:绘制三维点,如`plot3(x,y,z)`,表示在三维空间中的点坐标。 6. **surf函数**:用于绘制曲面,如`surf(x,y,z)`,这里的`x`, `y`, 和 `z`是由参数生成的曲面数据。 7. **多条曲线的绘制**:`plot(x,y1,x,y2,x,y3)`在同一图中绘制三条曲线`y1`, `y2`, `y3`与`x`的关系。 文档还给出了一个名为`funexA_5`的函数,它根据输入的矩阵`x`和`y`计算相应的`z`值,然后用`surf`函数显示结果。此函数涉及到二维条件查找和指数函数的组合。 文档提到了线性代数中的矩阵运算,包括: 1. **求解线性方程组**:`x = A\b`,用于求解Ax=b的标准形式的线性方程组。 2. **不定方程组**:对于非唯一解的情况,`x = A\b`也会给出一个解。 3. **超定方程组**:求解最小二乘近似解,`x = A\b`会得到满足最小误差平方和的解。 4. **奇异方程组**:奇异矩阵无法求解,但可以通过其他方法如伪逆求得解。 这些内容涵盖了数值分析的基本概念,包括统计计算、图形绘制以及线性代数的线性方程组求解。通过理解并实践这些知识点,可以提高MATLAB编程和数值计算的能力。