主要内容

单精度数学

这个例子展示了如何通过单精度数据执行算术和线性代数。它还表明,适当地在单精度和双精度计算结果,根据输入。

创建双精度数据

让我们首先创建一些数据,默认为双精度。

广告= [1 2 0;2 5 1;4 10 1]
广告=3×31 2 0 2 5 1 4 10 1

转换为单精度

我们可以将数据转换为单精度的函数。

一个=(广告);%或=投(广告,“单”);

创建单一的精密0和1

我们还可以创建单一精密0和1和各自的功能。

n = 1000;Z = 0 (n, 1“单一”);O = (n, 1,“单一”);

让我们看一下在工作区中变量。

一个广告OZn
类属性名称大小字节3 x3 36单广告3 x3 72双O 1000 x1 4000单Z 1000 x1 4000单n 1 x1 8双

我们可以看到,一些类型的变量的变量一个(单精度的版本广告)一半的内存的字节数储存因为单身需要4个字节(32位),而双打需要8个字节(64位)。

算术和线性代数

我们可以执行标准算法和线性代数在单打。

B =“%矩阵的转置
B =3 x3单一矩阵1 2 4 2 5 10 0 1 1
B
B类属性名称大小字节3 x3 36个

我们看到这个操作的结果,B,是一个单身。

C = A * B%矩阵乘法
C =3 x3单一矩阵5 12 24 12 30 59 24 59 117
C = * B% Elementwise算术
C =3 x3单一矩阵1 4 0 4 25 -10 -10 0 1
X =发票(A)%反矩阵
X =3 x3单一矩阵5 2 2 2 1 1 0 2 1
I =发票(A) *%确认结果是单位矩阵
我=3 x3单一矩阵1 0 0 0 1 0 0 0 1
我= \%更好的方法比发票做矩阵分裂
我=3 x3单一矩阵1 0 0 0 1 0 0 0 1
E = eig (A)%特征值
E =3 x1单一列向量3.7321 0.2679 1.0000
F = fft ((: 1))% FFT
F =3 x1单一列向量7.0000 + 0.0000我-2.0000 + 1.7321 -2.0000 - 1.7321
S =圣言(A)%奇异值分解
S =3 x1单一列向量12.3171 0.5149 0.1577
P =圆(poly (A))%一个矩阵的特征多项式
P =1 x4单一的行向量1 5 5 1
R =根(P)%一个多项式的根
R =3 x1单一列向量3.7321 1.0000 0.2679
Q = conv (P, P)%卷积两个向量
Q =1 x7单一的行向量1 -10 35 -52 35 -10 1
R = conv (P, Q)
R =1 x10单一的行向量1 -15 90 -278 480 -480 278 -90 15 1
阀杆(右);%绘制结果

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

一个程序,适用于单一或双精度

现在让我们来看看一个函数来计算斐波那契数列的足够的条件所以比率小于正确的机器ε(每股收益)数据类型单引号或双。

%多少条款需要单精度结果?fibodemo (“单一”)
ans = 19
%多少条款需要双精度结果?fibodemo (“双”)
ans = 41
%现在让我们看看工作代码。类型fibodemo
函数nterms = fibodemo (dtype) % fibodemo SINGLEMATH演示使用。%计算斐波那契数列的项。% 1984 - 2014版权MathWorks公司活动= 1 (dtype);fnext =活动;goldenMean = ((dtype) + sqrt (5)) / 2;托尔=每股收益(goldenMean);nterms = 2;而abs (fnext /活动- goldenMean) > = tol nterms = nterms + 1;temp = fnext;fnext = fnext +活动; fcurrent = temp; end

注意,我们初始化的变量,活动,fnext,goldenMean,依赖于输入数据类型的值,和宽容托尔取决于类型。单精度要求我们计算方面少于相当于双精度计算。