Matlab のプログラミング言語は何ですか? MATLAB の簡単な説明。 拡張パックの一覧表示

タンボフ州立工科大学


部門

「情報プロセスと管理」

方法論の開発

実験レッスンNo.1用

「意思決定理論」という学問分野で

学問分野の名前

トピック名

主題: 1次元最適化手法の研究

仕事の目標:

数学および科学技術計算用の多機能統合自動化システム MATLAB 7.1 環境における 1 次元最適化手法とそのアルゴリズム実装手法の研究。

手法の計算コストの比較評価: ダイレクト スキャニング、二分法、「黄金分割」、およびフィボナッチ法。

文学:

1. 青木正人. 最適化手法の紹介。 M.: ナウカ、1977 年、444 p。

2.バティシシェフD.I. 最適な設計手法。 M.: 「ラジオと通信」、1984 年、248 ページ。

3. ボドロフ V.I.、ラザレバ T.Ya.、マルテミャノフ Yu.F. 意思決定の数学的方法: Proc. 手当。 タンボフ: タンブ出版社。 州 それらの。 大学、2004 年、124 p。

4. ポラック E. 数値最適化手法。 M.: ミール、1997. 376 p.

5. ヒンメルブラウ D. 応用非線形計画法。 M.: ミール、1975. 534 p.

6. ユディン DB 意思決定理論の計算手法。 M.: ナウカ、1989. 316 p.

7. Ketkov Yu. L.、Ketkov A. Yu.、Shultz M.M. MATLAB 7: プログラミング、数値的手法。 - サンクトペテルブルク: BHV-ペテルブルク、2005。 - 752 p.

レッスンを実施することで

「意思決定理論」分野の実験授業は、学生がさまざまなタイプの授業や教材の自主学習の過程で得た理論的知識を深めて定着させ、数学的手法の実践的な実装のスキルを習得することを目的として行われます。意思決定の。 実験室授業の結果に基づいて、学生は次のことを行う必要があります。

モデリングの実行に基づいた理論的資料、およびプログラムで形式化された物理プロセスの本質。

関連プロセスをモデル化するための基本的な方法。

モデリング結果に対する主要パラメータの影響を選択して評価します。

得られた結果を分析して要約します。

ラボでの作業を完了するには、ラボ レッスンの事前準備、レッスン自体、ラボ レッスンの報告という 3 つの段階が含まれます。

レッスンの目標は、理論的な内容と実践の関係を示し、理論を実践的な問題の解決に適用する方法を生徒に教えることです。

実験作業は、学生の MATLAB の知識を前提としない方法で構成されています。 各ラボは、アクティビティを完了するために必要な背景情報を学生に提供する MATLAB 概要から始まります。

授業の準備

授業の前夜に、生徒は次のことを行う必要があります。

このラボのマニュアルを読んでください。

講義資料を繰り返し、このトピックに関する提案された文献を研究してください。

作業を実行する手順を検討します。

セキュリティの質問に答える準備をします。

レッスン実施の流れ

レッスンの導入部分では、学習グループが受け入れられ、以前に学習した教材とのつながりが与えられ、このレッスンのトピック、目的、順序、特徴が発表され、学習グループのレッスンへの準備状況が確認されます。

次に、学生は方法論に従って研究を開始します。 実験室の授業に関して不明な点がある場合は、学生は教師、工学スタッフ、またはコンピューター室の講師に問い合わせてください。 研究結果と結論は、実験室レポートの形式で提示されます。 レポートは生徒の作業文書であり、弁護の際に主任教師に提出されます。 次に、実験室授業のレポートが提出され、最後に授業の結果がまとめられます。

レッスンレポート

学生は研究室セッションの単位を取得する必要があります。 報告の原則は個人であり、レッスンの主要部分を完了した後に口頭または書面で行うことができます。 成績を発行する際には、レポートフォームの可用性、読み書き能力と正確さ、研究室での作業の質、およびテスト質問への回答結果が考慮されます。 単位を取得できず、この実験室の授業を欠席した学生は、自分の時間にそれについて報告します。

MATLAB の簡単な説明

MATLAB (Matrix Laboratory) システムは、さまざまな科学分野の幅広い数学的および技術的問題を解決できる多数の特別なプログラムで構成されています。 その主要な要素は MATLAB システムの中核です。 これに加えて、システムには、数学、数理物理学、設計、通信、経済学などのさまざまなセクションに対応する約 80 種類のコマンド セット (いわゆる「ツールボックス」) が含まれています。 この作業では、基本的な MATLAB プログラミング ツール (M ファイル – 関数、組み込み関数、演算子、コマンドなど) を使用します。

図1。 システムデスクトップ

図 1 はシステムのデスクトップを示しています。 メニュー バー ([ファイル]、[編集] など) は、多くの点で Microsoft Word エディターと似ています。 以下にあるアイコンの行も、Word エディターと同じ操作を実行します (最後の 3 つを除く)。 システムのデスクトップは複数のウィンドウで構成されており、その構成はメニュー コマンドを使用して変更できます。 デスクトップ。左側の上部ウィンドウの図 1 は、ワークスペースの内容を示しています ワークスペース、操作中にユーザーが入力したすべての定数と関数の説明が含まれています。 下の窓には コマンド履歴実行されたコマンドのシーケンスが示されます。 ウィンドウのサイズは、境界線をマウスでドラッグして調整します。 メインデスクトップウィンドウ - コマンドウィンドウ(コマンドウィンドウ)。 コマンド ウィンドウでは、「>>」記号の後にコマンド ラインが入力され、「」キーを押した後に実行されます。 入力".

MATLAB を使用すると、他の高級プログラミング言語と同様のプログラム ファイルを作成できます。 さらに、強力なプログラム可能な計算機の特性も備えています。 この作業では、検索アルゴリズムのソフトウェア実装は M 関数ファイルを使用して実行され、コマンド ウィンドウからプログラムを起動して初期データを入力できます。

数値形式はメニューで設定します ファイル(図1)断面図 環境設定関数を使用して 数値形式。 12 種類のフォーマットのうち最も一般的に使用されるのは次のとおりです。 短いそして 長さ– 短い数値形式と長い数値形式。

MATLAB の基本概念のいくつかは次のとおりです。 変数 そして ステートメント .

変数単一の文字、または文字で始まる文字と数字のセットで表されます。 セット内の文字と数字の合計数は 19 を超えてはなりません。 声明 は次の形式になります。

>>変数=式

ステートメントを入力すると、変数には等号に続く式が割り当てられるか、数学演算が含まれる場合はそれらの演算の実行後に得られる結果が割り当てられます。 ステートメントは M ファイルまたは MATLAB コマンド ウィンドウに入力できます。 「>>」記号は、コマンド ウィンドウの表示画面に表示されるコマンド プロンプトで、ステートメントを入力できることを示します。

主な算術演算子を表 1.1 に示します。 「」を押した後にコマンドウィンドウで計算を実行する場合 入力「結果はパラメータに代入されます」 答え"、対応する式に名前が割り当てられていない場合、またはその名前 - それ以外の場合 (変数、定数、および関数の名前は文字 (ラテン文字) で始まる必要があり、数字とアンダースコアを含めることができます)。計算の出力をブロックするには特定の式の結果の後には、符号; (セミコロン) を設定する必要があります。

表1.1

たとえば、式を評価したいとします。 そして結果を変数に代入します バツ。 この場合、ステートメント (プログラム) は次の形式になります (小数部では、整数部と小数部はドットで区切られます)。

>> x=log(1+5*((log10(100))^2-0.2*pi)/sqrt(1+2.71828^3))

ステートメントを導入した後、つまり Enter キーを押すと、結果がすぐに下に表示されます。 結果をブロックする必要がある場合、つまり ディスプレイ画面に表示する必要がない場合は、ステートメントの最後に記号「;」を付ける必要があります。 "(セミコロン)。 前の式は別の形式で表すことができます。

>> a=(log10(100))^2;

>> b=sqrt(1+2.71828^3);

>> x=log(1+5*(a-0.2*pi)/b)

MATLAB にはいくつかの組み込み変数があります。 パイ、eps、inf、私そして j.変数 円周率数字を表し、 eps=2 -52 =2.2204*10 -16 – 浮動小数点数の演算エラー、 無限- 無限大 ( )、 私そして j– 虚数単位 ( = j= ).

左引数が指定されていない場合、式の結果は共通変数 ans に代入されます。

関係演算子 (表 1.2) は、条件文、ループ演算子などで使用されます。 M 関数を使用して検索アルゴリズムを実装する場合 (サブルーチン関数は拡張子 .m のファイルに書き込まれます)。

表1.2

したがって、MATLAB システムのプログラムは、プログラム コードの形式でプログラムの記録を含むテキスト形式の M ファイルです。

MATLAB 入力言語には、14 の関数ワードを使用する演算子が 9 つしかありません。 対応する構文構造を表に示します。 1.3.

表1.3

演算子の形式 説明
変数 = 式 代入演算子。 式 expr の値を計算し、計算結果を変数に格納します 変数
ifcondition_1 ステートメント_1 終了 条件演算子。 条件 1 が true の場合、グループ オペレーター 1 が実行され、条件 2 が真の場合、グループ オペレーター 2 が実行されます。指定された条件がすべて false の場合、else と end の間にある演算子が実行されます。
switchexpr casevail 演算子_1 caseval2 演算子_2 。 。 。 。 。 。 。 。 。 [その他の発言] 終了 式の値 expr で切り替えます。 値 vail と一致する場合はグループ Operators_1 が実行され、値 val2 と一致する場合はグループ Operator_2 が実行されます。値 expr がリストされた値のいずれとも一致しない場合は、間にある演算子が実行されます。 othervise と end が実行される
forvar=el:e3 終了ステートメント 等差数列型のサイクル。ループ本体が繰り返されるたびに、変数 var がステップ e2 の初期値 el から最終値 e3 まで変化します。
whilecondition ステートメントが終了する 指定された条件が真になるまで繰り返される前提条件のあるループ
try ステートメント_1 catch ステートメント 2 end グループoperator_1を実行しようとしています。 実行の結果として例外が発生した場合、制御はグループoperator_2 (障害状況の処理) に移されます。 エラーが発生しない場合、グループoperator_2は実行されません。
壊す for 、 while 、 switch 、 try - catch などの制御構造からの早期終了
関数 f1 関数 f2 (x1,x2, ...) 関数 y=f3(x1,x2,...) 関数 =f4(x1,x2, ...) 関数ヘッダー (x1、x2、... - 入力パラメータ、y、yl、y2、... - 出力パラメータ)
戻る 関数本体を早期に終了する

関数プログラムを作成する場合、プログラムが格納されている M ファイルの名前は関数の名前と必ず一致する必要があります。

グローバル変数 (グローバル演算子によって宣言される)、入力パラメーター、および出力パラメーターを除く、関数の本体に現れるすべての変数はローカルとみなされます。 これらはローカル ワークスペースを形成し、それらを生成した関数の本体でのみ使用でき、他の関数はそれらを使用できません。

MATLAB 言語には演算子が含まれていません 後藤。 この点に関して、m ファイルのテキストには演算子ラベルはありません。 緊急事態が発生した回線を識別するために、システムによって自動的に割り当てられる内線番号が使用されます。

高等数学を扱う人は、時としてどのような数学的な「怪物」に対処しなければならないかをよく知っています。 たとえば、巨大な三重積分の計算には、非常に多くの時間、精神的エネルギー、そして回復しない神経細胞を費やすことがあります。 もちろん、積分に挑戦して受けるのはとても面白いです。 しかし、代わりに積分があなたを連れて行くと脅したらどうでしょうか? それともさらに悪いことに、三次三項式が制御不能になって暴走してしまったのでしょうか? 敵にそんなことは望まないだろう。


以前は、すべてをあきらめて散歩に行くか、積分と数時間の戦いに入るかの 2 つの選択肢しかありませんでした。 そうですね、何時間もかかった人もいれば、何分もかかった人もいます。誰がどのように勉強したのか。 しかし、それは問題ではありません。 20 世紀の容赦ない進歩は、私たちに 3 番目の方法を提供します。つまり、最も複雑な積分を「迅速に」実行できるようになります。 同じことが、あらゆる種類の方程式を解くこと、三次双曲面の形式で関数のグラフをプロットすることなどにも当てはまります。

このような異常ではあるが定期的に生徒の間で発生する状況に対して、強力な数学的武器があります。 まだ知らない人のために、MATLAB ソフトウェア パッケージを紹介します。

Matlab は方程式を解き、近似し、関数のグラフを作成します。 これが何を意味するかわかりますか、友達?

これは、これが現在利用可能な最も強力なデータ処理パッケージの 1 つであることを意味します。 名前の略は、 マトリックス研究室。 マトリックス研究所ロシア語なら . このプログラムの機能は、数学のほぼすべての分野をカバーします。 したがって、Matlab を使用すると、次のことが可能になります。

  • 行列に対してあらゆる種類の演算を実行し、一次方程式を解き、ベクトルを操作します。
  • 任意の次数の多項式の根を計算し、多項式で演算を実行し、曲線を微分、外挿および補間し、任意の関数のグラフを構築します。
  • デジタルフィルタリング、統計回帰を使用してデータの統計分析を実行します。
  • 微分方程式を解きます。 偏導関数では、線形、非線形、境界条件があっても問題ありません。Matlab はすべてを解決します。
  • 整数の算術演算を実行します。

これらすべてに加えて、MATLAB の機能を使用すると、3 次元グラフの構築やアニメーション ビデオの作成など、データを視覚化できます。

もちろん、Matlab についての説明は完全ではありません。 メーカーが提供する機能に加えて、愛好家や他の企業によって単純に作成された Matlab ツールが多数あります。

プログラミング言語としての MATLAB


プログラムを操作するときに直接使用されるプログラミング言語でもあります。 詳細には立ち入りませんが、MATLAB で作成されたプログラムには関数とスクリプトの 2 種類があるということだけは言っておきます。


プログラムの主な作業ファイルは M ファイルです。 これは無限のテキスト ファイルであり、計算が直接プログラムされています。 ちなみに、この言葉を怖がらないでください。MATLAB で作業するために、プロのプログラマーである必要はありません。

M ファイルは次のように分割されます。

  • Mシナリオ。 M スクリプトは最も単純なタイプの M ファイルであり、入力引数も出力引数もありません。 このファイルは、繰り返しの計算を自動化するために使用されます。
  • M 機能。 M 関数は、入力引数と出力引数を受け入れる M ファイルです。

MATLAB でどのように作業が行われるかを明確に示すために、以下に Matlab で関数を作成する例を示します。 この関数はベクトルの平均値を計算します。
f 関数 y = 平均(x)
% AVERAGE ベクトル要素の平均値。
% AVERAGE(X)、X はベクトルです。 ベクトルの要素の平均を計算します。
% 入力引数がベクトルでない場合、エラーが生成されます。
= サイズ(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error("入力配列はベクトルである必要があります')
終わり
y = 合計(x)/長さ(x); % 実際の計算

関数定義行は、ファイルが M 関数であることを MATLAB に伝え、入力引数のリストも指定します。 したがって、平均関数の定義行は次のようになります。
関数 y = 平均(x)
どこ:

  1. function - M 関数を定義するキーワード。
  2. y - 出力引数。
  3. 平均 - 関数名;
  4. x は入力引数です。

したがって、MATLAB で関数を作成するには、MATLAB システムのすべての関数に、以下のような関数定義行が含まれていることを覚えておく必要があります。

もちろん、このような強力なパッケージが必要なのは、学生の生活を楽にするためだけではありません。 現在、MATLAB は、多くの科学および工学分野の専門家の間で非常に人気があります。 一方、MATLAB は大規模な行列を処理できるため、金融アナリストにとって不可欠なツールとなり、たとえばよく知られた Excel よりも多くの問題を解決できるようになります。 これについてはレビュー記事で詳しく読むことができます。

MATLAB を使用する場合の欠点


MATLAB を使用する際の難しさは何ですか? おそらく難点が一つだけあります。 でも基本的なこと。 MATLAB の機能を完全に明らかにし、目の前で発生する問題を簡単に解決するには、まずハードワークして Matlab 自体 (ファイルの作成方法、関数の作成方法など) を理解する必要があります。 そして、これはそれほど単純ではありません。なぜなら、権力と幅広い機会には犠牲が必要だからです。

たとえそうしたいと思っても、MATLAB がそうであるとは言えません。簡単なプログラム。 それにもかかわらず、私たちは上記のすべてがその開発を開始するための十分な議論となることを望んでいます。

そして最後に。 人生のすべてがなぜそのように進み、そうでないのかがわからない場合は、Matlab に質問してください。 コマンドラインに「why」と入力するだけです。 彼は答えてくれるでしょう。 それを試してみてください!

これで Matlab の機能がわかりました。 教育の分野では、MATLAB は数値手法や線形代数の指導によく使用されます。 多くの学生は、研究室での実験結果を処理する際に、これなしではいられないでしょう。 MATLAB の操作の基本を迅速かつ効率的に習得するには、いつでもご質問にお答えできるよう、いつでもお問い合わせください。

    パッケージの主な特長マットラボ

    パッケージツールセットマットラボ

    パッケージの構造と作業ウィンドウマットラボ

    チームモードでの作業

    プログラミング言語の基本要素マットラボ

1. Matlab パッケージの主な機能

MATLAB(「Matrix Laboratory」の略) は、技術的なコンピューティングの問題を解決するためのアプリケーション プログラムのパッケージと、このパッケージで使用されている同じ名前のプログラミング言語です。 MATLAB は 1,000,000 人を超えるエンジニアや科学者によって使用されており、Linux、Mac OS、Solaris (Solaris は R2010b 以降サポートされなくなりました)、および Microsoft Windows を含むほとんどの最新のオペレーティング システム上で実行されます。

話。プログラミング言語としての MATLAB は、ニューメキシコ大学のコンピューター サイエンス学部長だった 1970 年代後半に Cleve Moler によって開発されました。 開発の目標は、学部の学生に、Fortran を勉強することなく Linpack および EISPACK ソフトウェア ライブラリを使用する機会を提供することでした。 この新しい言語はすぐに他の大学に広がり、応用数学の分野で働く科学者たちに大きな関心を持って受け入れられました。 Fortran で書かれ、オープンソースとして配布された 1982 年のバージョンは、今でもインターネット上で見つけることができます。 エンジニアのジョン N. (ジャック) リトルは、1983 年にクリーブ モウラーがスタンフォード大学を訪問したときにこの言語を知りました。 新しい言語には大きな商業的可能性があることに気づいた彼は、Cleve Mowler と Steve Bangert とチームを組みました。 彼らは協力して MATLAB を C で書き直し、それをさらに発展させるために 1984 年に The MathWorks 社を設立しました。 これらのライブラリは C で書き直され、長い間 JACKPAC という名前で知られていました。 MATLAB は当初、制御システム設計 (ジョン リトルの専門) を目的としていましたが、すぐに他の多くの科学および工学分野で人気を博しました。 また、教育、特に線形代数や数値手法の指導にも広く使用されています。

MATLAB 言語の説明。 MATLAB言語は高レベルです 解釈されたプログラミング言語に基づくものを含む 行列データ構造、幅広い機能、統合開発環境、オブジェクト指向機能、および他のプログラミング言語で書かれたプログラムへのインターフェイスです。

MATLAB で書かれたプログラムには 2 つのタイプがあります。 機能そして スクリプト.

関数には、入力引数と出力引数に加えて、中間計算結果と変数を保存するための独自のワークスペースがあります。

スクリプトは共通のワークスペースを使用します。 スクリプトと関数は両方ともマシンコードにコンパイルされず、テキスト ファイルとして保存されます。

いわゆる保存も可能です 事前に解析されたプログラム - マシンの実行に便利な形式に処理された関数とスクリプト。 一般に、このようなプログラムは、特に関数にグラフ作成コマンドが含まれている場合、通常のプログラムよりも高速に実行されます。

MATLAB 言語の主な特徴は、行列を操作するための幅広い機能であり、言語の作成者はそれを「ベクトル的に考える」というスローガンで表現しました。 考える ベクトル化された).

MATLAB のアプリケーション。

数学と計算。 MATLAB は、数学のほぼすべての領域をカバーする、データ分析用の多数 (数百) の関数をユーザーに提供します。

    行列と線形代数 - 行列代数、一次方程式、固有値とベクトル、特異点、行列因数分解など。

    多項式と補間 - 多項式の根、多項式の演算とその微分、曲線の内挿と外挿など。

    数学的統計とデータ分析 - 統計関数、統計回帰、デジタル フィルタリング、高速フーリエ変換など。

    データ処理 - プロット、最適化、ゼロ検索、数値積分 (求積法) などを含む一連の特殊関数。

    微分方程式 - 微分方程式および微分代数方程式、遅延微分方程式、制約された方程式、偏微分方程式などを解きます。

    スパース行列は、特殊なアプリケーションで使用される MATLAB パッケージの特別なデータ クラスです。

    整数算術 - MATLAB で整数算術演算を実行します。

アルゴリズムの開発。 MATLAB は、オブジェクト指向プログラミングの概念を使用して、高レベルのアルゴリズムを含むアルゴリズムを開発するための便利なツールを提供します。 デバッガーやプロファイラーなど、統合開発環境に必要なツールがすべて揃っています。 データ型全体を操作するための関数により、必要に応じてマイクロコントローラーやその他のアプリケーション用のアルゴリズムを簡単に作成できます。

データの視覚化。 MATLAB パッケージには、3 次元グラフを含むグラフの作成、ビジュアル データ分析、アニメーション ビデオの作成のための多数の機能が含まれています。

組み込み開発環境を使用すると、ボタンや入力フィールドなどのさまざまなコントロールを備えたグラフィカル ユーザー インターフェイスを作成できます。

独立したアプリケーション. MATLAB プログラムは、コンソールと GUI の両方で、コンポーネントを使用してコンパイルできます。 MATLAB コンパイラ MATLAB に依存しない実行可能アプリケーションまたはダイナミック ライブラリに保存できますが、他のコンピューターで実行するには自由に再配布可能な環境をインストールする必要があります。 MATLAB コンパイラ ランタイム(MCR)。

外部インターフェース。 MATLAB には、他のプログラミング言語で記述された外部ルーチン、データ、コンポーネント オブジェクト モデルまたは動的データ交換テクノロジを介して通信するクライアントとサーバー、および MATLAB と直接通信する周辺デバイスにアクセスするためのさまざまなインターフェイスが含まれています。 これらの機能の多くは MATLAB API として知られています。

コム。 MATLAB は、COM オブジェクト (クライアントとサーバーの両方) を作成、操作、削除できる関数へのアクセスを提供します。 ActiveXテクノロジーもサポートされています。 すべての COM オブジェクトは、MATLAB パッケージの特別な COM クラスに属します。 オートメーションコントローラー機能を持つすべてのプログラム (英語) オートメーション コントローラ) オートメーション サーバーとして MATLAB にアクセスできます。 オートメーション サーバ).

。ネット。 Microsoft Windows 上の MATLAB は、.NET Framework へのアクセスを提供します。 MATLAB 環境から .NET アセンブリをロードし、.NET クラス オブジェクトを操作することができます。 MATLAB バージョン 7.11 (R2010b) は、.NET Framework バージョン 2.0、3.0、3.5、および 4.0 をサポートします。

DDE。 MATLAB には、Dynamic Data Exchange (DDE) テクノロジを通じて、他の Windows アプリケーションにアクセスしたり、それらのアプリケーションが MATLAB データにアクセスしたりできるようにする関数が含まれています。 DDE サーバーとなることができる各アプリケーションには、独自の一意の識別名があります。 MATLAB の場合、この名前は - マットラボ.

ウェブサービス。 MATLAB では、Web サービスのメソッドを呼び出すことができます。 カスタム関数は、Web サービス API メソッドに基づいてクラスを作成します。

MATLAB は、Web サービス クライアントからメッセージを受け取り、処理し、応答を送信することによって、Web サービス クライアントと対話します。 次のテクノロジがサポートされています: Simple Object Access Protocol (SOAP) および Web Services description Language (WSDL)。

COMポート。 MATLAB のシリアル ポート インターフェイスは、シリアル ポート (COM ポート) を通じてコン​​ピュータに接続するモデム、プリンタ、科学機器などの周辺機器への直接アクセスを提供します。 このインターフェイスは、シリアル ポート用の特別なクラス オブジェクトを作成することによって機能します。 このクラスで使用可能なメソッドを使用すると、シリアル ポートへのデータの読み取りと書き込み、イベントとイベント ハンドラーの使用、およびコンピューター ディスクへの情報のリアルタイムの書き込みが可能になります。 これは、実験の実施、リアルタイム システムのシミュレーション、およびその他のアプリケーションの場合に必要です。

MEX ファイル。 MATLAB パッケージには、C および Fortran で記述された外部アプリケーションと対話するためのインターフェイスが含まれています。 この対話は MEX ファイルを通じて実行されます。 C または Fortran で記述されたルーチンを、パッケージの組み込み関数であるかのように MATLAB から呼び出すことができます。 MEX ファイルは、MATLAB に組み込まれたインタープリターによってロードして実行できるダイナミック リンク ライブラリです。 MEX プロシージャには、組み込みの MATLAB コマンドを呼び出す機能もあります。

DLL。 MATLAB 汎用 DLL インターフェイスを使用すると、一般的なダイナミック リンク ライブラリにある関数を MATLAB から直接呼び出すことができます。 これらの関数には C インターフェイスが必要です。

さらに、MATLAB には C インターフェイスを介して組み込み関数にアクセスする機能があり、これによりパッケージの関数を C で記述された外部アプリケーションで使用できるようになります。MATLAB のこのテクノロジは と呼ばれます。 Cエンジン.

代替パッケージ。 数値解析の問題を解決するためのソフトウェア パッケージは多数あります。 これらのパッケージの多くは無料ソフトウェアです。

プログラミング言語レベルでMATLABと互換性あり:

機能的には似ている:

    APL とその子孫: J など

    Python は、Python(x,y) ソフトウェア パッケージだけでなく、NumPy、SciPy、matplotlib などのライブラリとともに使用すると、同様の機能を実装します。

    IDL(英語) 相互の作用 データ 言語、対話型データ記述言語) は、かつては MATLAB の商業的競合相手でしたが、数値解析ソフトウェアにおける市場シェアは急激に低下しましたが、現在では多くのアプリケーション分野で深刻な競合相手であり続けています。

    Sun Microsystems によって作成されたプログラミング言語である Fortress は、Fortran の子孫ですが、Fortran とは互換性がありません。

    数値解析のための大規模なプロジェクトを開発する必要がある場合は、静的型付けとモジュール構造をサポートする汎用プログラミング言語を使用できます。 例には、Modula-3、Haskell、Ada、Java などがあります。 この場合、科学および工学環境で知られている特殊なライブラリを使用することをお勧めします。

2. Matlab ツールボックス

Matlab では、と呼ばれる特殊なプログラム グループに重要な役割が与えられます。 ツールボックス。 ツールボックスは、特定のクラスの問題を解決するために MATLAB で記述された関数 (m ファイル) の包括的なコレクションです。 Mathworks は、次のようなさまざまな分野で使用されるツールキットを提供しています。

    デジタル信号、画像、データ処理: DSP ツールボックス, 画像処理ツールボックス, ウェーブレット ツールボックス, コミュニケーションツールボックス, フィルター設計ツールボックス- 信号および画像処理、デジタル フィルターおよび通信システムの設計に関する幅広い問題の解決を可能にする一連の関数。

    制御システム: 制御システムツールボックス, μ-分析および合成ツールボックス, 堅牢な制御ツールボックス, システム識別ツールボックス, LMI コントロール ツールボックス, モデル予測制御ツールボックス, モデルベースのキャリブレーション ツールボックス- ロバスト制御、H∞ 制御、LMN 合成、μ 合成などの最新の制御アルゴリズムを含む、動的システムの分析と合成、制御システムの設計、モデリング、識別を容易にする一連の関数。

    財務分析: GARCH ツールボックス, 債券ツールボックス, 金融時系列ツールボックス, 金融デリバティブツールボックス, 財務ツールボックス, データフィードツールボックス- さまざまな財務情報を迅速かつ効率的に収集、処理、送信できる一連の機能。

    3次元地図を含む地理地図の解析と合成: マッピングツールボックス.

    実験データの収集と分析: データ収集ツールボックス, 画像取得ツールボックス, 機器制御ツールボックス, Code Composer Studio へのリンク- リアルタイムを含む実験中に取得したデータを保存および処理できる一連の関数。 幅広い科学および工学計測機器がサポートされています。

    データの視覚化とプレゼンテーション: 仮想現実ツールボックス- 仮想現実技術と VRML 言語を使用して、インタラクティブな世界を作成し、科学情報を視覚化できます。

    開発ツール: COM 用の MATLAB ビルダー, Excel 用 MATLAB ビルダー, NET 用の MATLAB ビルダー, MATLAB コンパイラ, フィルター設計 HDL コーダー- MATLAB 環境から独立したアプリケーションを作成できるようにする関数のセット。

    外部ソフトウェア製品との相互作用: MATLAB レポート ジェネレーター, エクセルリンク, データベースツールボックス, MATLAB Web サーバー, ModelSim へのリンク- 他のプログラムが使用できる方法でデータを保存できる一連の関数。

    データベース: データベースツールボックス- データベースを操作するためのツール。

    科学と数学のパック: バイオインフォマティクス ツールボックス, カーブフィッティングツールボックス, 固定小数点ツールボックス, ファジーロジックツールボックス, 遺伝的アルゴリズムと直接検索ツールボックス, OPC ツールボックス, 最適化ツールボックス, 偏微分方程式ツールボックス, スプラインツールボックス, 統計ツールボックス, RF ツールボックス- 遺伝的アルゴリズムの開発、偏導関数問題、整数問題、システム最適化などの解決を含む、幅広い科学および工学問題の解決を可能にする特殊な数学関数のセット。

    ニューラルネットワーク: ニューラル ネットワーク ツールボックス- ニューラルネットワークの合成と分析のためのツール。

    ファジーロジック: ファジーロジックツールボックス- ファジーセットを構築および分析するためのツール。

    記号計算: 記号数学ツールボックス- Maple プログラムのシンボリック プロセッサと対話する機能を備えたシンボリック計算用のツール。

上記に加えて、他の企業や愛好家によって作成された他にも何千もの MATLAB ツールキットがあります。

機能の概要

英語のMatLab。 Matrix Laboratory は、工学および技術計算の問題を解決するためのアプリケーション プログラムのパッケージであり、このパッケージで使用される同名のプログラミング言語です。

MatLab は、Linux、Mac OS、Solaris、Microsoft Windows など、ほとんどの最新のオペレーティング システムでの使用に適しています。

プログラミング言語としての MATLAB は、1970 年代後半に Cleve Moler によって開発されました。 開発の目標は、学部の学生に、Fortran を勉強することなく Linpack および EISPACK ソフトウェア ライブラリを使用する機会を提供することでした。 その後、マウラーは J. リトルおよび S. バンガートと協力して MATLAB を C で書き直し、それをさらに発展させるために 1984 年に The MathWorks 社を設立しました。 MATLAB はもともと制御システム設計を目的としていましたが、すぐに他の多くの科学および工学分野でも人気が高まりました。 また、教育、特に線形代数や数値手法の指導にも広く使用されています。

最新の MatLab は、主なデータ要素が配列である対話型システムです。 これにより、行列やベクトルの演算を集中的に使用する数値メソッドをプログラムで実装できるようになり、C、C++、Fortran などの「スカラー」プログラミング言語で同様のプログラムを作成する場合よりも数倍高速になります。

MatLab の重要な利点は関数コードのオープン性であり、経験豊富なユーザーがコードを変更して改善したり、タスクに適応させたりすることができます。 プログラミング言語としての MatLab は、Fortran のシンプルさと C の柔軟性を兼ね備えていますが、形式的な観点から見ると、MatLab は 通訳者。 MatLab API は C および Fortran で記述されたプログラムと通信するため、C\Fortran コードから MatLab 関数を呼び出すことができ、またその逆も可能であることに注意してください。

MatLab には、2 次元および 3 次元のデータを視覚化するための広範な機能があります。 高レベルのグラフィックス機能とグラフィカルインターフェイスにより、ユーザーの労力を最小限に抑えながら高品質な画像を提供します。 「上級」ユーザー向けの低レベル機能にもアクセスでき、システムのグラフィック機能がさらに拡張されます。

MatLab パッケージは、10 年以上前に Math Works によって作成されました。 何百人もの科学者とプログラマーの取り組みは、その機能を継続的に拡張し、基礎となるアルゴリズムを改善することを目的としています。 現在、MatLab は人間の活動のさまざまな分野で発生する問題を解決するための強力で普遍的なツールです。
作業環境 MatLab 6.x、MatLab 7 には、MatLab の多くの補助要素にアクセスするための便利なインターフェイスが備わっています。
MatLab 6.x を起動すると、作業環境が画面に表示されます , 図に示されています。 1.

米。 1. MatLab 6.x パッケージの動作環境

このレッスンでは、MATLAB での作業の基本 (入門) を学びます。

作業環境には次の要素が含まれます。

メニュー;
- ボタンとドロップダウン リストを備えたツールバー;
- タブ付きウィンドウ 打ち上げ パッドそして ワークスペースここから、さまざまな ToolBox モジュールや作業環境のコンテンツに簡単にアクセスできます。
- タブ付きウィンドウ 指示 歴史そして 現在 ディレクトリ、以前に入力したコマンドの表示と再呼び出し、および現在のディレクトリの設定を目的としています。
- コマンドウィンドウ 指示 点滅するカーソルを含むコマンドライン。
- ステータスバー。

このラボで説明するすべてのコマンドは、コマンド プロンプトに入力する必要があります。 例に示されているコマンド ライン プロンプトを示す記号自体は、入力する必要はありません。 作業領域を表示するには、スクロール バーまたはキーを使用すると便利です , 左または右に移動して、 , 上または下に移動します。 キーの使用について , , , さらに言われるだろう。 コマンド ウィンドウの作業領域内を移動した後、カーソルが点滅しているコマンド ラインが突然消えた場合は、 .
コマンドまたは式の入力はキーを押して終了する必要があることに注意してください。 MatLab プログラムがこのコマンドを実行するか、式を評価するために。

注1

説明されているウィンドウの一部が MatLab 6.x 作業環境にない場合は、メニューに移動する必要があります。 ビュー適切な項目を選択します: コマンド ウィンドウ、コマンド履歴、現在のディレクトリ、ワークスペース、起動パッド。

2.1. 算術計算

MatLab の組み込み数学関数を使用すると、さまざまな式の意味を見つけることができます。 MatLab は、結果の出力形式を制御する機能を提供します。 式を評価するためのコマンドには、すべての高級プログラミング言語に特有の形式があります。

2.1.1. 簡単な計算

コマンドラインに「1+2」と入力し、キーを押します。 。 その結果、MatLab コマンド ウィンドウには以下が表示されます。

» 1+2
答え =
3
» |

MatLab プログラムは何をしましたか? まず、1+2 の合計を計算し、その結果を特殊変数 ans に書き込み、その値 3 をコマンド ウィンドウに表示しました。 応答の下にはカーソルが点滅するコマンド ラインがあり、MatLab でさらなる計算の準備ができていることを示します。 コマンドラインに新しい式を入力して、その意味を調べることができます。

たとえば、(1+2)/4.5 を計算するなど、前の式を引き続き使用する必要がある場合、最も簡単な方法は、ans 変数に保存されている既存の結果を使用することです。 コマンドラインに ans/4.5 と入力し (小数点を入力する場合はドットが使用されます)、 を押します。 、 それが判明:

» ans/4.5
答え =
0.6667
» |

注2

計算結果が出力される形式は、MatLab で設定されている出力形式に依存します。 基本的な出力形式の設定方法を説明します。

2.1.2. 計算結果の出力形式

必要な結果の出力形式は、ユーザーが MatLab メニューから決定します。 メニューから選択 ファイル段落 環境設定画面にダイアログボックスが表示されます 環境設定出力形式を設定するには、左側のパネルのリストで項目が選択されていることを確認してください。 指示 。 形式はドロップダウンリストから設定します 数値 フォーマットパネル 文章 画面。
現時点では、最も一般的に使用される形式のみを分析します。 選択する 短いドロップダウンリストで 数値 フォーマット MatLab 6.x の場合。 「OK」をクリックしてダイアログボックスを閉じます。 計算結果を出力するショート浮動小数点形式をショートに設定し、小数点以下4桁のみを画面に表示するようにしました。 コマンドラインに「100/3」と入力し、キーを押します。 .
結果は短い形式で出力されます。

» 100/3
答え =
33.3333

別の形式が設定されない限り、この出力形式は後続のすべての計算で保持されます。 MatLab では、大きすぎるまたは小さすぎる数値を表示すると、結果が短い形式に収まらない可能性があることに注意してください。 100000/3 を計算すると、結果は指数形式で出力されます。

» 100000/3
答え =
Z.ZZZZe+004

1/3000 を求める場合も同じことが起こります。

» 1/3000
答え =
Z.ZZZZe-004

ただし、初期形式設定はその後の計算中に保持され、数値が小さい場合、結果は再び短い形式で出力されます。

前の例では、MatLab パッケージは計算結果を次のように出力しました。 指数関数的な形。エントリ 3.3333e-004 は、3.3333*10-4 または 0.00033333 を意味します。 同様に、式に数値を入力できます。 たとえば、1000000000 と入力するよりも 10e9 または l.0e10 と入力する方が簡単で、結果は同じになります。 入力時に数字と記号 e の間にスペースを入れることはできません。 これにより、次のエラー メッセージが表示されます。

» 10 e9
??? 10e9

より正確に計算結果を取得したい場合は、ドロップダウンリストから選択してください。 長さ。 結果は、小数点以下 14 桁の長い浮動小数点形式で表示されます。 フォーマット 短い eそして 長さ eは、結果を小数点以下 4 桁と 15 桁の指数形式で表示するように設計されています。 形式に関する情報は、コマンド ラインで format 引数を指定して help と入力すると取得できます。

各形式の説明がコマンド ウィンドウに表示されます。

format コマンドを使用して、コマンド ラインから出力形式を直接設定できます。 たとえば、計算結果を出力するために長整数浮動小数点形式を設定するには、コマンド ラインで format long e コマンドを入力します。

» 長いフォーマット
» 1.25/3.11
答え =
4.019292604501608е-001

help format コマンドでは、フォーマット名が大文字で表示されることに注意してください。 ただし、入力する必要があるコマンドは小文字で構成されています。 組み込みヘルプのこの機能には慣れるのに時間がかかります。 MatLab は大文字と小文字を区別します。 コマンドを大文字で入力しようとすると、エラーが発生します。

» フォーマット長 E
??? フォーマットロング。
演算子、カンマ、セミコロンがありません。

結果をわかりやすくするために、MatLab では計算式の 1 行後に計算結果が表示されます。 ただし、画面上により多くの行を配置すると便利な場合があります。その場合は、ラジオ ボタンを選択する必要があります。 コンパクト (ファイル、数値 画面)ドロップダウンリストから。 空白行を追加するには、 ゆるいドロップダウンリストから 数値 画面.

注3

MatLab はすべての中間計算を次のように実行します。 倍精度、どのような出力形式が設定されていても、

2.2. 初等関数の使用

次の式を評価するとします。

MatLab ルールに従ってコマンド ラインにこの式を入力し、 を押します。 :

» exp(-2.5)*log(11.3)^0.3-sqrt((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))

応答がコマンド ウィンドウに表示されます。

答え =
-3.2105

式を入力すると、MatLab の組み込み関数を使用して、指数、自然対数、平方根、三角関数が計算されます。 どのような組み込み基本関数を使用できますか?また、それらを呼び出す方法は何ですか? コマンド ラインに help eifun コマンドを入力すると、すべての組み込み基本関数のリストとその簡単な説明がコマンド ウィンドウに表示されます。 関数の引数は括弧で囲み、関数名は小文字で入力します。 数字を入力するには コマンドラインに pi と入力するだけです。

MatLab の算術演算は、ほとんどのプログラミング言語で一般的な通常の順序で実行されます。

累乗 ^;
- 乗算と除算 *、/;
- 加算と減算 +、-。

算術演算子の実行順序を変更するには、かっこを使用します。
次に、前の式と同様の式の値を評価したい場合、たとえば、

コマンドラインに再度入力する必要はありません。 MatLab が入力されたすべてのコマンドを記憶しているという事実を利用できます。 コマンドラインに再入力するには、キーを使用します。 , 。 次の手順を使用して、この式を評価します。

1. キーを押します。<­>と、前に入力した式がコマンド ラインに表示されます。
2. 必要な変更を加え、マイナス記号をプラス記号に、平方根を二乗に置き換えます (式の線に沿って移動するには、 キーを使用します) , , , ).
3. をクリックして、変更した式を評価します。 .

それが判明

»exp(-2.5)*log(11.3)^0.3+((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
答え =
121.2446

より正確な結果を取得する必要がある場合は、format long e コマンドを実行して、 キーを押す必要があります。<­>必要な式がコマンドラインに表示されるまで入力し、 を押して計算します。 .

» 長いフォーマット
» exp(-2.5)*log(11.3)^0.3+((sin.(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
答え =
1.212446016556763e+002

最後に見つかった式の結果を、再計​​算せずに別の形式で出力できます。 短いコマンドを使用して形式を変更し、コマンド ラインに入力して ans 変数の値を確認し、 を押す必要があります。 :

» 短いフォーマット
» 答え
答え =
121.2446

MatLab 6.x 作業環境には、以前に入力したコマンドを呼び出すための便利なツールであるウィンドウがあります。 指示 歴史チームの歴史とともに。 コマンド履歴には、MatLab 6.x を使用した各セッションの日時が含まれます。 ウィンドウをアクティブにするには 指示 歴史同じ名前のタブを選択する必要があります。 ウィンドウ内の現在のコマンドは青色の背景に表示されます。 ウィンドウ内のコマンドをマウスの左ボタンでクリックすると、このコマンドが現在のコマンドになります。 MatLab で実行するには、マウスをダブルクリックするか、キーを使用してコマンドの行を選択する必要があります。 , そしてキーを押してください 。 余分なコマンドはウィンドウから削除できます。 これを行うには、それを最新にして、キーを使用して削除する必要があります。 。 キーボード ショートカットを使用して、複数の連続したコマンドを選択できます +, +そしてそれらを使用して実行します またはキーで削除 。 連続コマンドの選択は、キーを押しながらマウスの左ボタンで行うことができます。 。 コマンドが相互に続かない場合は、キーを押したままマウスの左ボタンを使用してコマンドを選択する必要があります。 .

ウィンドウ領域を右クリックした場合 指示 歴史ポップアップメニューが表示されます。 アイテムを一つ選べ ソラコマンドが Windows バッファにコピーされます。 助けを借りて 評価する 選択マークされたコマンドのグループを実行できます。 現在のコマンドを削除するには、アイテムを使用します 消去 選択。 D現在のコマンドより前のすべてのコマンドを削除するには - 消去 選択、すべてのコマンドを削除するには - 消去 全体 歴史。

ゼロによる除算など、ほとんどのプログラミング言語でエラーが発生する計算には例外がいくつかある場合があります。 MatLab で正の数をゼロで除算すると結果は inf (無限大) になり、負の数をゼロで除算すると結果は -inf (マイナス無限大) となり、警告が発行されます。

» 1/0
警告: ゼロで割ってください。
答え =
インフ

0 を 0 で除算すると NaN (非数値) となり、警告も生成されます。

» 0/0
警告: ゼロで割ってください。
答え =
NaN

計算する場合、例えばsqrt(-1) , エラーや警告は発生しません。 MatLab は自動的に複素数の領域に移動します。

»sqrt(-1.0)
答え =
0 + l.0000i

使用できる組み込みのプリミティブ関数とその呼び出し方法をどのようにして知ることができますか? コマンドラインにコマンドを入力します エイフンを助けてと、すべての組み込み基本関数のリストとその簡単な説明がコマンド ウィンドウに表示されます。

トピックの続き:
モデム

白海とオネガ湖を結ぶ白海バルト運河の建設は、ヨシフ・スターリンの主導で 1931 年に始まりました。 評議会の下で運河を建設するには...