主要内容

测量教程单元

使用符号数学工具箱™使用测量单元。此页面显示了如何定义单元,在方程式中使用单元(包括微分方程),并验证表达式的尺寸。

定义和转换单位

通过使用Symunit

u = symunit;

通过使用你。单元。例如,指定5米,重量50公斤和速度10每小时公里。在显示的输出中,将单位放在方括号中[]

d = 5*u.m w = 50*u.kg s = 10*u.km/u.hr
d = 5*[m] w = 50*[kg] s = 10*([km]/[h])

提示

使用标签扩展查找单位的名称。类型你。, 按标签,并继续打字。

单位像其他符号表达式一样对待,可用于任何标准操作或功能。单位不会自动简化,这提供了灵活性。支持单位的常见替代名称。金宝app不支持复数。金宝app

添加500仪表和2公里。结果距离不会自动简化。

d = 500*u.m + 2*英国
d = 2*[km] + 500*[M]

简化d通过使用简化。这简化功能选择要返回的单元。

D =简化(D)
d =(5/2)*[km]

转变d通过使用unitConvert。转变d到米。

d = unitConvert(D,U.M)
D = 2500*[M]

有关更多单元转换和单元系统选项,请参见单位转换和单元系统

如果距离找到速度d被旅行50秒。结果具有正确的单位。

t = 50*美国;S = D/T
s = 50*([m]/[s])

使用绝对或差异形式的温度单位

默认情况下,假定温度代表差异,而不是绝对测量。例如,5*U.Celsius假定代表5摄氏度的温度差。此假设允许对温度值进行算术操作。

为了表示绝对温度,请使用开尔文(Kelvin),因此您不必将绝对温度与温度差区分开。

转变23摄氏摄氏度至开尔文,首先将温度视为温度差,然后将温度视为绝对温度。

u = symunit;t = 23*u.celsius;diffk = unitconvert(t,英国)
diffk = 23*[k]
absk = unitconvert(t,英国,'温度',“绝对”)
ABSK =(5923/20)*[k]

因为值0次符号单元作为无量纲返回0使用时Symunit,您可以使用单元格数来表示0学位。

例如,转换0摄氏度至华氏度。

tc = {0,u.celsius};tf = unitConvert(TC,U.Fahrenheit,“温度”,“绝对”)
tf = 32*[华氏度]

验证尺寸

在更长的表达式中,很难在视觉上检查单元。您可以通过验证方程式的尺寸自动检查表达式的尺寸。

首先,定义运动学方程 v 2 = v 0 2 + 2 一种 s , 在哪里v代表速度,一种代表加速度,并s代表距离。认为s以公里为单位,所有其他单位都在SI基础单元中。为了证明维度检查,一种故意不正确。

Syms V V0 A S U = Symunit;eqn =(v*u.m/u.s)^2 ==(v0*u.m/u.s)^2 + 2*a*u.m/u.s*s*s*u.km
eqn = v^2*([m]^2/[s]^2)== v0^2*([m]^2/[s]^2) +(2*a*s)*([[[[[[[[[[[[[[[[[[[[[km]*[m])/[s])

观察出现在eqn通过使用Findunits。返回的单元显示公里和米都用来表示距离。

Findunits(eqn)
ans = [[km],[m],[s]]

检查单元是否具有相同的尺寸(例如长度或时间)checkunits'兼容的'输入。MATLAB®假设符号变量是无量纲的。checkunits返回逻辑0((错误的),这意味着单元不兼容,而不是相同的物理维度。

checkunits(eqn,“兼容”)
ans =逻辑0

看着eqn,加速度一种有不正确的单位。纠正单位并重新检查以再次兼容。eqn现在有兼容的单元。

eqn =(v*u.m/u.s)^2 ==(v0*u.m/u.s)^2 + 2*a*u.m/u.s^2*s*s*u.km;checkunits(eqn,“兼容”)
ans =逻辑1

现在,要检查每个维度是否始终由同一单元表示,请使用checkunits'持续的'输入。checkunits返回逻辑0((错误的),因为仪表和公里数都用于表示距离eqn

checkunits(eqn,“一致”)
ans =逻辑0

转变eqn到SI基础单元以使单位保持一致。跑checkunits再次。eqn具有兼容和一致的单位。

eqn = unitconvert(eqn,'si')
eqn = v^2*([m]^2/[s]^2)== v0^2*([m]^2/[s]^2) +(2000*a*s)*([m]^2/[s]^2)
checkunits(eqn)
ANS =带有字段的结构:一致:1兼容:1

完成使用单位并且只需要无量纲的方程式或表达式后,将单位和方程式分开单独的渠道

[eqn,单位] =单独的nits(eqn)
eqn = v^2 == v0^2 + 2000*a*s units = 1*([m]^2/[s]^2)

您可以通过乘法返回原始方程eqn单位并扩展结果。

扩展(eqn*单位)
ans = v^2*([m]^2/[s]^2)== v0^2*([m]^2/[s]^2) +(2000*a*s)*([m]^2/[s]^2)

要从您的表达式计算数字值,请使用符号变量代替潜艇,并使用双倍的或者VPA

解决eqn为了v。然后找到一个值v在哪里V0 = 5,,,,a = 2.5, 和s = 10。将结果转换为两倍。

v = solve(eqn,v);v = v(2);%选择阳性溶液vsol = subs(v,[v0 a s],[5 2.5 10]);VSOL =双(VSOL)
VSOL = 223.6627

在微分方程中使用单元

与标准方程式一样,使用微分方程中的单元。本节显示了如何通过得出速度关系在微分方程中使用单元v=v0+一种t v 2 = v 0 2 + 2 一种 s 从加速的定义开始 一种 = d v d t

使用SI单元象征性地表示加速度的定义。鉴于速度v有单位,您必须区分v关于正确的单位t = t*美国不只是t

syms v(t)a u = symunit;t = t*u.s;秒内的百分比a = a*u.m/u.s^2;每秒米的加速度%eqn1 = a == diff(v,t)
eqn1(t)= a*([m]/[s]^2)== diff(v(t),t)*(1/[s])

因为速度v是未知的,没有单位,eqn1具有不兼容和不一致的单位。

checkunits(eqn1)
ans =带有字段的结构:一致:0兼容:0

解决eqn1为了v条件是初始速度为v0。结果是方程式v(t)=v0+一种t

SYMS V0 COND = V(0)== V0*U.M/U.S;eqn2 = v == dsolve(eqn1,cond)
eqn2(t)= v(t)== v0*([m]/[s]) + a*t*([m]/[s])

通过替换检查结果是否具有正确的尺寸RHS(eqn2)进入eqn1并使用checkunits

checkunits(subs(eqn1,v,rhs(eqn2)))
ANS =带有字段的结构:一致:1兼容:1

现在,得出 v 2 = v 0 2 + 2 一种 s 。因为速度是距离的变化率,所以v与距离的导数s。再次鉴于s有单位,您必须区分s关于正确的单位t = t*美国不只是t

syms s(t)eqn2 = subs(eqn2,v,diff(s,t))
eqn2(t)= diff(s(t),t)*(1/[s])== v0*([m]/[s]) + a*t*([m]/[s])

解决eqn2条件是覆盖的初始距离是0。获得预期的形式s通过使用扩张

cond2 = s(0)== 0;eqn3 = s == dsolve(eqn2,cond2);eqn3 =展开(eqn3)
eqn3(t)= s(t)== t*v0*[m] +((a*t^2)/2)*[m]

您可以在符号工作流中使用此方程。另外,您可以使用RHS,通过使用单独的渠道,并使用最终的无单位表达式。

[S单位] =单独的nits(RHS(EQN3))
s(t)=(a*t^2)/2 + v0*t单位(t)= [m]

当您需要从表达式计算数字值时,请使用符号变量潜艇,并使用双倍的或者VPA

找到旅行的距离8几秒钟V0 = 20a = 1.3。将结果转换为两倍。

s = subs(s,[v0 a],[20 1.3]);dist = s(8);dist = double(dist)
DIST = 201.6000

也可以看看

|||||||

相关话题

外部网站