固有値と固有ベクトルは線形代数の基本概念であり、物理学、工学、データ分析などさまざまな分野で広く使用されています。MATLABでは、これらの概念を簡単に探索・計算できます。 固有値とは 固有値は、ベクトル空間の線形変換に関連するスカラーで、λ(ラムダ)で表されます。対応する固有ベクトルが変換時にスケーリングされる倍率を表します。 固有ベクトルとは 固有ベクトルは、線形変換を適用してもスカラー倍率だけで変化し、方向が変わらない非ゼロベクトルです。つまり、Aを行列、vを固有ベクトル、λを対応する固有値とすると、 Av = λv が成り立ちます。ここで、Aは正方行列、vは固有ベクトル、λは固有値です
強力な数値計算環境であるMATLABは、複雑で再利用可能なコードの作成を容易にするため、オブジェクト指向プログラミング(OOP)をサポートしています。MATLABのOOPは、クラスとオブジェクトの概念を中心に展開します。 MATLABでサポートされるオブジェクト指向機能は以下の通りです: オブジェクト クラス カプセル化 継承 多態性 抽象化 プロパティ メソッドのオーバーロード オブジェクト指向プログラミングの主な柱は以下の4つです: カプセル化 抽象化 継承 多態性 なぜオブジェクト指向設計を使うのか? ソフトウェアを構築する際、アプリケーションが使用するデータを設計し、そのデータ
逆離散コサイン変換(IDCT、Inverse Cosine Transform)は、コサイン変換のプロセスを逆転させる数学演算です。信号や画像を周波数領域の表現から再構成する際、信号処理や画像処理で特に有用です。 2次元信号や画像の文脈では、2次元逆離散コサイン変換(2-D IDCT)は、コサイン係数の行列(信号や画像の周波数成分を表す)を空間領域に戻し、元の信号や画像を生成します。 MATLABでの2次元逆コサイン変換は、コサイン値の行列を空間領域の画像に変換するために使用されます。これは2次元コサイン変換の逆演算であり、画像処理と圧縮で一般的に用いられます。idct2 関数を使用して2次元
ガウシアンフィルタは、画像処理で画像をぼかしやスムージングするために使用される線形フィルタです。ガウシアン関数にちなんで名付けられ、フィルタの形状を定義するために使用されます。ガウシアンフィルタは、画像のノイズとディテールを低減し、さらなる処理や分析に適した状態にするためによく使用されます。 ラプラシアン・オブ・ガウシアン(LoG)フィルタは、画像処理で広く使用される画像拡張とエッジ検出フィルタです。これは2つのフィルタの組み合わせです:ガウシアンフィルタとラプラシアンフィルタ。ガウシアンフィルタで画像をスムージングしノイズを低減し、ラプラシアンフィルタでエッジを検出します。 LoGフィルタは
数学において、導関数は関数の変数に対する変化率を表します。簡単に言えば、関数が任意の点でどのように変化しているかを示します。導関数は微積分学の基礎であり、物理学、工学、経済学などで変化と運動をモデル化するために広く使用されます。 例えば、時間に対する車の位置を記述する関数がある場合、その関数の導関数は車の速度(位置の変化率)を与えます。 多項式の導関数 多項式は、変数が異なる累乗で現れ、係数と組み合わされた数学的表現です。例えば、P(x) = 3x² + 2x + 5 は2次多項式です。 多項式関数の導関数は、単純なルールを適用して求められます:各項について、係数に指数を掛け、指数を1減らしま
MATLABは、数式や関数を可視化するための強力なツールを提供します。シンプルな線形方程式から複雑な数式まで、幅広い関数をプロットし、2Dまたは3D空間で可視化できます。この機能は、数学的関数の振る舞いを分析・理解する必要があるエンジニア、科学者、数学者にとって特に有用です。 MATLABでは、式や関数のプロットに以下のメソッドを使用できます。 fplot() — 2Dプロット用 fplot3() — 3Dプロット用 MATLABでのfplot()の使用 MATLABのfplot()関数は、1変数の関数を指定範囲でプロットするために使用されます。数学的関数や式の可視化に特に適しています。
Simulinkは、MATLABと統合された動的および組み込みシステムのためのシミュレーションとモデルベース設計環境です。MathWorksによって開発されたSimulinkは、マルチドメイン動的システムのモデリング、シミュレーション、分析のためのデータフロー型グラフィカルプログラミング言語ツールです。基本的に、カスタマイズ可能なブロックライブラリセットを持つグラフィカルブロック図ツールです。 MATLABアルゴリズムをモデルに組み込んだり、シミュレーション結果をMATLABにエクスポートしてさらなる分析を行ったりできます。 Simulinkは以下をサポートします。 システムレベル設計 シミ
GNU OctaveはMATLABのような高水準プログラミング言語で、MATLABとほぼ互換性があります。数値計算にも使用されます。 OctaveにはMATLABと以下の共通機能があります。 行列が基本データ型 複素数の組み込みサポート 組み込み数学関数とライブラリ ユーザー定義関数のサポート GNU Octaveは自由に再配布可能なソフトウェアです。フリーソフトウェア財団によって公開されたGNU General Public License(GPL)の条件の下で、再配布および変更が可能です。 MATLABとOctaveの比較 ほとんどのMATLABプログラムはOctaveで実行できますが
MATLABには、ラプラス変換やフーリエ変換などの変換を扱うコマンドが用意されています。変換は、科学と工学において、解析を簡略化し、データを別の角度から見るためのツールとして使用されます。 例えば、フーリエ変換を使用すると、時間関数として表現された信号を周波数関数に変換できます。ラプラス変換を使用すると、微分方程式を代数方程式に変換できます。 MATLABには、ラプラス、フーリエ、高速フーリエ変換を扱うlaplace、fourier、fftコマンドがあります。 ラプラス変換 時間関数f(t)のラプラス変換は、以下の積分で与えられます。 ラプラス変換は、f(t)からF(s)への変換としても表記
MATLABでは、多項式を行ベクトルとして表現し、係数を降べきの順で格納します。例えば、方程式P(x) = x4 + 7x3 - 5x + 9は以下のように表現できます。 p = [1 7 0 -5 9]; 多項式の評価 polyval関数は、指定された値での多項式の評価に使用します。例えば、前の多項式pをx = 4で評価するには、以下のように入力します。 ライブデモ p = [1 7 0 -5 9]; polyval(p,4) MATLABは上記のステートメントを実行し、以下の結果を返します。 ans = 693 MATLABには、行列多項式を評価するpolyvalm関数も用意され
積分には、本質的に異なる2種類の問題があります。 第1のタイプでは、関数の導関数が与えられ、元の関数を求めます。つまり、微分の逆プロセスを行います。この逆プロセスは、逆微分、原始関数の発見、または不定積分の発見として知られています。 第2のタイプでは、非常に多数の非常に小さな量を加算し、量のサイズがゼロに近づき、項の数が無限大に近づく極限を取ります。このプロセスは定積分の定義につながります。 定積分は、面積、体積、重心、慣性モーメント、力による仕事、およびその他多数の用途で使用されます。 MATLABでの不定積分の計算 定義により、関数f(x)の導関数がf(x)である場合、f(x)のxに関
MATLABには、シンボリック微分を計算するdiffコマンドがあります。最も簡単な形式では、微分したい関数をdiffコマンドの引数として渡します。 例えば、関数f(t) = 3t2 + 2t-2の導関数を計算してみましょう。 例 スクリプトファイルを作成し、以下のコードを入力します。 syms t f = 3*t^2 + 2*t^(-2); diff(f) 上記のコードをコンパイルして実行すると、以下の結果が得られます。 ans = 6*t - 4/t^3 以下は上記計算のOctave版です。 pkg load symbolic symbols t = sym(t); f = 3*t
MATLABには、微分積分学の問題、任意の次数の微分方程式の解法、極限の計算のためのさまざまな方法が用意されています。何よりも、複雑な関数のグラフを簡単にプロットし、元の関数とその導関数を解くことで、グラフ上の極大値、極小値、その他の定常点を確認できます。 この章では微積分の問題を扱います。この章では、関数の極限計算と極限の性質の検証など、微積分準備の概念について説明します。 次の章微分では、式の導関数を計算し、グラフ上の局所的な極大値と極小値を見つけます。また、微分方程式の解法についても説明します。 最後に、積分の章では積分学について説明します。 極限の計算 MATLABには、極限を計算する
これまで、すべての例がMATLABとそのGNU版であるOctaveの両方で動作することを見てきました。しかし、基本的な代数方程式を解く場合、MATLABとOctaveは少し異なるため、別々のセクションで説明します。 また、代数式の因数分解と簡略化についても説明します。 MATLABでの基本代数方程式の解法 solve関数は代数方程式の解法に使用します。最も簡単な形式では、solve関数は引用符で囲まれた方程式を引数として受け取ります。 例えば、x - 5 = 0の方程式でxを解いてみましょう。 solve(x-5=0) MATLABは上記のステートメントを実行し、以下の結果を返します。
この章では、MATLABのプロットとグラフィックス機能の探求を続けます。以下について説明します。 棒グラフの描画 等高線の描画 3次元プロット 棒グラフの描画 barコマンドは2次元棒グラフを描画します。例で説明します。 例 10人の学生がいる架空の教室を想定します。これらの学生の得点率が75、58、90、87、50、85、92、75、60、95であることがわかっています。このデータの棒グラフを描画します。 スクリプトファイルを作成し、以下のコードを入力します。 x = [1:10]; y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95]; bar(x
関数のグラフをプロットするには、以下の手順を実行します。 変数xの値の範囲を指定してxを定義 関数y = f(x)を定義 plotコマンドをplot(x, y)として呼び出し 以下の例で概念を説明します。簡単な関数y = xを、xの値の範囲0から100、増分5でプロットします。 スクリプトファイルを作成し、以下のコードを入力します。 x = [0:5:100]; y = x; plot(x, y) ファイルを実行すると、MATLABは以下のプロットを表示します。 もう一つ例として、y = x2の関数をプロットします。同じ関数で2つのグラフを描きますが、2回目は増分値を小さくします。増
MATLABでのデータエクスポート(出力)とは、ファイルに書き込むことを意味します。MATLABでは、ASCIIファイルを読み取る他のアプリケーションでデータを使用できます。そのために、MATLABはいくつかのデータエクスポートオプションを提供しています。 以下のタイプのファイルを作成できます。 配列から区切り文字付きASCIIデータファイル(長方形) キーストロークとその結果のテキスト出力を記録したダイアリ(ログ)ファイル fprintfなどの低レベル関数を使用した特殊なASCIIファイル 特定のテキストファイル形式に書き込むC/C++またはFortranルーチンにアクセスするためのMEX
MATLABでのデータインポートとは、外部ファイルからデータを読み込むことを意味します。importdata関数を使用すると、さまざまな形式のデータファイルを読み込めます。これには以下の5つの形式があります。 番号 関数と説明 1 A = importdata(filename) filenameで指定されたファイルからデータを配列Aに読み込みます。 2 A = importdata(-pastespecial) ファイルではなく、システムクリップボードからデータを読み込みます。 3 A = importdata(___, delimiterIn) delimiter
関数は、タスクを実行するためのステートメントのグループです。MATLABでは、関数は別ファイルで定義されます。ファイル名と関数名は同じにする必要があります。 関数は、独自のワークスペース内の変数で動作します。これはローカルワークスペースと呼ばれ、MATLABコマンドプロンプトでアクセスするベースワークスペースとは別です。 関数は複数の入力引数を受け取り、複数の出力引数を返すことができます。 関数ステートメントの構文は以下の通りです。 function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN) 例 以下のmymaxという関数は
MATLABでの文字列作成は非常に簡単です。実際、これまで何度も使用してきました。例えば、コマンドプロンプトで以下を入力します。 ライブデモ my_string = Tutorials Point MATLABは上記のステートメントを実行し、以下の結果を返します。 my_string = Tutorials Point MATLABはすべての変数を配列として扱い、文字列は文字配列と見なされます。whosコマンドを使って、上記で作成した変数を確認してみましょう。 whos MATLABは上記のステートメントを実行し、以下の結果を返します。 Name Size Bytes Clas
MATLAB