ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Sqrt, Signed Sqrt, Reciprocal Sqrt

平方根、符号付き平方根、または逆平方根を計算

ライブラリ

Math Operations

説明

[関数] パラメーター リストから以下のいずれかの関数を選択できます。

関数説明数式MATLAB® 等価
sqrt

入力の平方根

u0.5

sqrt
signedSqrt

入力の絶対値の平方根に入力の符合を乗算した値

sign(u)*|u|0.5

rSqrt

入力の平方根の逆

u-0.5

ブロック出力は、関数を入力に適用した結果です。各関数は以下をサポートします。

  • スカラー演算

  • 要素単位のベクトル演算と行列演算

サポートするデータ型

このブロックは、以下のデータ型の入力信号を受け入れます。

関数入力データ型制限

sqrt

  • 浮動小数点

  • 組み込み整数

  • 固定小数点

なし

signedSqrt

  • 浮動小数点

  • 組み込み整数

  • 固定小数点

入力が整数または固定小数点型である場合、出力は浮動小数点でなければなりません。

rSqrt

  • 浮動小数点

  • 組み込み整数

  • 固定小数点

なし

ブロックは、次の型の実数入力と複素数入力を受け入れます。

関数実数入力の型複素数入力の型

sqrt

負の固定小数点入力、または自明ではない勾配とゼロ以外のバイアスをもつ固定小数点入力を除くすべて

固定小数点入力を除くすべて

signedSqrt

なし

rSqrt

なし

ブロック出力:

  • [出力データ型] に対して指定したデータ型を使用します。

  • [出力信号型] に対する選択内容によって、実数または複素数のいずれかになります。

パラメーターとダイアログ ボックス

ブロック ダイアログ ボックスの [メイン] ペインは、次のように表示されます。

関数

数学関数を指定します。ブロック アイコンが選択した関数に一致するように変わります。

関数ブロック アイコン
sqrt
signedSqrt
rSqrt

出力信号タイプ

ブロックの出力信号タイプを autoreal、または complex として選択します。

関数入力信号タイプ出力信号タイプ
自動実数複素数

sqrt

real

非負の入力に対しては real

負の入力に対しては NaN

非負の入力に対しては real

負の入力に対しては NaN

complex

complex

complex

error

complex

signedSqrt

real

real

real

complex

complex

error

error

error

rSqrt

real

real

real

error

complex

error

error

error

サンプル時間 (継承は -1)

サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。詳細は、オンライン ドキュメンテーションの「 サンプル時間の指定」を参照してください。

ブロック ダイアログ ボックスの [アルゴリズム] ペインは、次のように表示されます。

    メモ:   [アルゴリズム] ペインのパラメーターは、[メイン] ペインで [関数] パラメーターに [rSqrt] を選択している場合にのみ使用できます。

メソッド

平方根の逆数を計算するメソッドを指定します。

メソッドサポートされるデータ型このメソッドを使用できる場合
Exact

浮動小数点

固定小数点または組み込み整数型を使用する場合は、浮動小数点型へのアップキャストが発生します。

近似は必要ありません。

    メモ:   入力または出力が浮動小数点である必要があります。

Newton-Raphson

浮動小数点、固定小数点、および組み込み整数型

高速の近似計算が必要な場合。

[Exact] メソッドでは、MATLAB の計算と一致する結果が得られます。

    メモ:   sqrtsignedSqrt のアルゴリズムは、ブロック ダイアログ ボックスの選択にかかわらず、常に [Exact] タイプです。

反復回数

Newton-Raphson アルゴリズムを実行するには、反復回数を指定します。既定値は 3 です。

このパラメーターは、[メソッド][Exact] を選択した場合は、使用できません。

    メモ:   0 を入力すると、ブロック出力は Newton-Raphson アルゴリズムの初期推定になります。

ブロック ダイアログ ボックスの [データ型] ペインは、次のように表示されます。

中間結果のデータ型

中間結果のデータ型を指定します (これは [メイン] ペインで [関数]sqrt または rSqrt に設定しているときのみ利用できます)。データ型は次のいずれかに設定できます。

  • データ型継承ルール (例: [継承: 内部ルールによる継承]

  • 組み込みデータ型名 (例: single)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

平方根関数 sqrt に中間データ型を明示的に設定する際のガイドラインに従ってください。

入力データ型と出力データ型中間データ型
入力または出力が double の場合。double を使用します。
入力または出力が single で単一ではないいずれかのデータ型が double 以外の場合。single または double を使用します。
入力と出力が固定小数点の場合。固定小数点を使用します。

逆数平方根関数に中間データ型を明示的に設定する際のガイドラインに従ってください。rSqrt:

入力データ型と出力データ型中間データ型
入力が double で出力が single の場合。double を使用します。
入力が single で出力が double の場合。double を使用します。
入力と出力が固定小数点の場合。固定小数点を使用します。

    注意:   以下の場合は、[中間結果データ型][継承: 出力から継承] に設定しないでください。

    • 平方根の逆数の計算に [Newton-Raphson] を選択した場合。

    • 入力データ型が浮動小数点の場合。

    • 出力データ型が固定小数点の場合。

    これらの状況下では、[継承: 出力から継承] を選択すると、準最適なパフォーマンスとなり、エラーが発生します。

    このエラーを回避するには、入力信号を浮動小数点データ型から固定小数点データ型に変換します。たとえば、Sqrt ブロックの前に Data Type Conversion ブロックを挿入して変換を実行します。

出力データ型

出力データ型を指定します。データ型は次のいずれかに設定できます。

  • データ型継承ルール (例: [継承: 逆伝播による継承])

  • 組み込みデータ型名 (例: single)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[出力データ型] パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「ブロックの出力データ型の指定」を参照してください。

出力の最小値

ブロックが出力する最小値を指定します。既定値は [] (指定なし) です。Simulink® は、以下を行う際にこの値を使用します。

  • シミュレーション範囲のチェック (「信号範囲」を参照)

  • 固定小数点データ型の自動スケーリング

出力の最大値

ブロックが出力する最大値を指定します。既定値は [] (指定なし) です。Simulink は、以下を行う際にこの値を使用します。

  • シミュレーション範囲のチェック (「信号範囲」を参照)

  • 固定小数点データ型の自動スケーリング

固定小数点ツールによる変更に対して出力データ型の設定をロックする

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。詳細は、「[出力データ型の設定をロックする] の使用」を参照してください。

整数丸めモード

固定小数点演算の丸めモードを指定します。詳細は、Fixed-Point Designer™ ドキュメンテーションの「丸め」を参照してください。

整数オーバーフローで飽和
アクションこのアクションを行う理由オーバーフロー発生時に起きること

このチェック ボックスをオンにする。

モデルでオーバーフローが発生する可能性があるので、生成コードに飽和保護を明示的に組み込むことをお勧めします。

オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

int8 (符号付き、8 ビット整数) データ型が表すことができる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。チェック ボックスがオンになっていると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値である -128 で飽和します。

このチェック ボックスをオンにしない。

生成コードの効率を最適化することをお勧めします。

ブロックが範囲外の信号を処理する方法を指定しすぎないようにすることをお勧めします。詳細は、「信号範囲のエラーのチェック」を参照してください。

オーバーフローは、データ型によって表現される適切な値にラップされます。

int8 (符号付き、8 ビット整数) データ型が表すことができる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。チェック ボックスをオフにすると、オーバーフローを引き起こした値は int8 として解釈され、意図しない結果が引き起こされる可能性があります。たとえば、int8 として表されるブロック結果 130 (バイナリで 1000 0010) は -126 です。

このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

関数 sqrt

次のモデルモデルがあるとします。

Sqrt ブロックへの入力が負で、[出力信号型][自動] または [実数] である場合、関数 sqrtNaN を出力します。ただし、[出力信号型][複素数] に設定すると、正しい答えを得ることができます。

関数 signedSqrt

次のモデルモデルがあるとします。

Sqrt ブロックへの入力が負の場合、ブロック出力は任意の [出力信号型] 設定で同じです。最初の Display ブロックの形式を short から decimal (整数格納) に変更すると、複素数出力の虚数部が確認できます。

浮動小数点入力付きの関数 rSqrt

次のモデルモデルがあるとします。

Sqrt ブロックのダイアログ ボックスでは、以下のパラメーター設定が適用されていることが想定されます。

パラメーター設定
メソッドNewton-Raphson
反復回数1
中間結果のデータ型[継承: 入力から継承]

Newton-Raphson アルゴリズムを 1 回反復した後、ブロック出力は最終値の (0.4834) の 0.0004 内に存在します。

固定小数点入力付きの関数 rSqrt

次のモデルモデルがあるとします。

Sqrt ブロックのダイアログ ボックスでは、以下のパラメーター設定が適用されていることが想定されます。

パラメーター設定
メソッドNewton-Raphson
反復回数1
中間結果のデータ型[継承: 入力から継承]

Newton-Raphson アルゴリズムを 1 回反復した後、ブロック出力は最終値の (0.4834) の 0.0459 内に存在します。

特性

直接フィードスルー

あり

サンプル時間

[サンプル時間] パラメーターで指定

離散化

あり

多次元化

あり

ゼロクロッシング検出

なし

この情報は役に立ちましたか?