このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
測定単位を符号数学工具箱™で使用します。このページでは単位の定義,方程式(微分方程式を含む)の中での単位の使用,および式の次元の検証方法について示します。
symunit
を使用して単位を読み込みます。
U =符号单位;
u。
单位
を使用して単位を指定します。たとえば,5
メ,トルの距離,50
キログラムの重さ,時速10
キロメ,トルの速度を指定します。表示された出力では,単位は大かっこ[]
内に記されます。
D = 5*u。M w = 50*u。Kg s = 10*u.km/u.h
D = 5*[m] w = 50*[kg] s = 10*([km]/[h])
ヒント
単位の名前を探すにはタブの拡張を使用してください。u。
と入力し,选项卡キ,を押して,入力を続けてください。
単位は他のシンボリック式と同じように動作し,あらゆる標準的な演算や関数で使用できます。単位は自動では単純化されず,これにより柔軟性が生まれます。単位の一般的な別名がサポ,トされています。複数形はサポ,トされていません。
500
メ,トルと2
キロメ,トルを加えます。結果の距離は,自動では単純化されません。
D = 500*u。M + 2*u.km
D = 2*[km] + 500*[m]
简化
を使用してd
を単純化します。関数简化
は,単純化の目標単位を自動的に選択します。
D =简化(D)
D = (5/2)*[km]
単位を自動的に選択する代わりに,unitConvert
を使用してd
を特定の単位に変換します。d
をメ,トルに変換します。
d = unitConvert(d,u.m)
D = 2500*[m]
さらに多くの単位変換オプションと単位系オプションがあります。単位変換と単位系を参照してください。
距離d
を50
秒以内で横断できる速度を求めます。結果は正しい単位をもます。
T = 50*美国;S = d/t
S = 50*([m]/[S])
既定では,温度は絶対測定ではなく差分で表されることを仮定しています。たとえば,5 * u。摄氏
は摂氏5度の差分温度を表すことを仮定しています。この仮定により温度の値の算術演算が可能になります。
絶対温度を表すにはケルビンを使用し,これにより絶対温度と温度の差分を区別する必要がなくなります。
摂氏23
度をケルビンに変換して,最初は温度の差分として扱っていた温度を絶対温度として扱います。
U =符号单位;T = 23*u.摄氏度;diffK = unitConvert(T, uk)
diffK = 23*[K]
absK = unitConvert(T, uk,'温度','绝对值')
absK = (5923/20)*[K]
長い式では,単位を視覚的に確認するのは困難です。式の次元は,方程式の次元を検証することで自動的に確認できます。
はじめに運動方程式
を定義します。ここで,v
は速度を,一个
は加速度を,年代
は距離を表します。年代
がキロメ,トルで,他のすべての単位はsi基本単位であると仮定します。次元の確認を実際に行うために,一个
の単位を意図的に間違えています。
Syms v v0 a s u = symunit;eqn = (v * u.m /美国)^ 2 = = (v0 * u.m /美国)^ 2 + 2 * * u.m /美国* * u.km
eqn = v ^ 2 * ([m] ^ 2 / [s] ^ 2) = = v0 ^ 2 * ([m] ^ 2 / [s] ^ 2) +(2 * *年代)*(((公里)* [m]) / [s])
eqn
に出現する単位をfindUnits
で観察します。返された単位から,キロメ,トルとメ,トルの両方が距離を表現するのに使われていることがわかります。
findUnits (eqn)
Ans = [km], [m], [s]]
単位が同じ次元(長さや時間のような)をもっているかを,checkUnits
に“兼容”
入力を与えて確認します。MATLAB®はシンボリック変数は無次元であると仮定しています。checkUnits
は論理的な0
(假
)を返します。まり,これらの単位には互換性がなく,等しい物理次元をもたないことを意味します。
checkUnits (eqn“兼容”)
Ans =逻辑0
eqn
を見ると,加速度一个
の単位が誤っています。単位を修正して互換性を再確認します。eqn
は今度は互換性のある単位をもます。
eqn = (v * u.m /美国)^ 2 = = (v0 * u.m /美国)^ 2 + 2 * * u.m /美国^ 2 * * u.km;checkUnits (eqn“兼容”)
Ans =逻辑1
今度は,各次元が同じ単位で矛盾なく表現されているかを確認するために,checkUnits
に“一致”
入力を与えます。eqn
では距離を表現するのにメ,トルとキロメ,トルの両方が用いられているため,checkUnits
は逻辑0
(假
)を返します。
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 * * s) * ([m] ^ 2 / [s] ^ 2)
checkUnits (eqn)
ans = struct with fields: Consistent: 1 Compatible: 1
単位に関連する作業が終了し,無次元の方程式または式だけが必要になったら,separateUnits
を用いて単位と方程式を分離します。
[eqn,units] = separateUnits(eqn)
eqn = v ^ 2 = = v0 ^ 2 + 2000 * *年代单位= 1 * ([m] ^ 2 / [s] ^ 2)
eqn
と单位
を掛けて結果を展開することで,元の単位付きの方程式を返すことができます。
扩大(eqn *单位)
ans = v ^ 2 * ([m] ^ 2 / [s] ^ 2) = = v0 ^ 2 * ([m] ^ 2 / [s] ^ 2) + (2000 * * 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 = double(vSol)
vSol = 223.6627
標準的な式と同じように微分方程式で単位を使用します。このセクションでは,微分方程式での単位の使い方を,加速度の定義 から始まり,速度関係V = V0+在および を導出することで示します。
加速度の定義をsi単位を用いてシンボリックに表現します。速度V
に単位があるとすれば,V
は,単にt
ではなく正しい単位であるT =美国
にいて微分されなければなりません。
syms V(t) a u =符号单位;T = T *美国;%时间(秒)A = A *u.m/ us ^2;%加速度(米/秒)eqn1 = A == diff(V,T)
eqn1(t) = a*([m]/[s]²)== diff(V(t), t)*(1/[s]))
速度V
は不明で単位もないので,eqn1
の単位には互換性も整合性もありません。
checkUnits (eqn1)
ans = struct with fields: Consistent: 0 Compatible: 0
初速度が0という条件で,eqn1
をV
にいて解きます。結果は方程式V (t) = V0+在です。
syms v0 cond = V(0) == v0*u.m/ us;eqn2 = V = dsolve(eqn1,cond)
eqn2(t) = V(t) == v0*([m]/[s]) + a*t*([m]/[s]))
結果の次元が正しいことを,园艺学会(eqn2)
をeqn1
に代入し,checkUnits
を使用して確認します。
checkUnits(潜艇(eqn1 V, rhs (eqn2)))
ans = struct with fields: Consistent: 1 Compatible: 1
今度は,
を導出します。速度は距離の変化率なので、V
に距離の微分年代
を代入します。この場合も,速度年代
に単位があるとすれば,年代
は,単にt
ではなく正しい単位であるT =美国
にいて微分されなければなりません。
syms S(t) eqn2 = subs(eqn2,V,diff(S, t))
eqn2 (t) = diff (S (t), t) * (1 / [S]) = = v0 * ([m] / [S]) + * t * ([m] / [S])
初期地点が0
という条件で,eqn2
を解きます。扩大
を使用して年代
を所定の形式で取得します。
cond2 = S(0) == 0;eqn3 = S = dsolve(eqn2,cond2);Eqn3 =扩展(Eqn3)
eqn3(t) = S(t) = t*v0*[m] + ((a*t^2)/2)*[m]
この単位付きの方程式はシンボリックなワ,クフロ,で使用できます。あるいは,园艺学会
を用いて右辺を返し,separateUnits
を用いて単位を分離し,その結果得られる単位のない式を使うことで,単位を取り除くこともできます。
[S units] = separateUnits(rhs(eqn3))
S(t) = (a*t²)/2 + v0*t单位(t) = [m]
式から数値を計算する必要があるときは,潜艇
でシンボリック変数に代入し,双
またはvpa
で数値に変換します。
8
秒間での移動距離を求めます。ここで,V0 = 20
、A = 1.3
です。結果を双型に変換します。
S = subs(S,[v0 a],[20 1.3]);dist = S(8);Dist = double(Dist)
Dist = 201.6000
checkUnits
|findUnits
|isUnit
|newUnit
|separateUnits
|symunit2str
|unitConversionFactor
|unitConvert