ホームページ  >  記事  >  コンピューターのチュートリアル  >  Matlab で区分関数の極点を実現する方法

Matlab で区分関数の極点を実現する方法

WBOY
WBOY転載
2024-01-20 08:03:131117ブラウズ

Matlab で区分関数の極点を実現する方法

MATLAB は区分関数の極点をどのように実現するのでしょうか

関数 m=フェンドゥアンハンシュ(t)

m=t.*(t>=0 & t1 & t2)

###【説明する】#​​##

Matlab では、上記の関数の式 m=t.*(t>=0 & t

1 & t

2) の演算規則は、ブール式が true の場合、ブール式は式 式の値は、操作に参加するには 1 をとり、それ以外の場合は 0 をとって操作に参加します。 たとえば、式内の (t>=0 & t

=0 & t

1 & t2) が true でない場合、0 が演算に参加するものとみなされます。今回は m=t.* 1 (-t 2)*0 0.1.*0=t となります。 Matlab のこの設計により、ユーザーは科学計算を実行しやすくなり、コードの量が削減され、開発効率が向上します。個人的には使用することを強くお勧めします。

Matlab を使用して関数の最大値問題を解く方法

最大値は最小値問題に変換できます。例: % 最小値 f(x) = -x1*x2*x3 を計算します。開始点は x = [10;10;10]、制約は次のとおりです:

% 0 ≤ x1 2*x2 2*x3 ≤ 72.

% –x1–2*x2–2*x3 ≤ 0

% 1. 目的関数を作成します % function f = myfun(x)

% f = -x(1) * x(2) * x(3);% 2. 制約

% –x1–2*x2–2*x3 ≤ 0

% x1 2*x2 2*x3≤ 72

% 3. 制約行列を構築します

% A = [-1 -2 -2; ...

%1 2 2];

% b = [0;72];% 4. 最適化計算% x0 = [10;10;10];

% [x,fval] = fmincon(@myfun,x0,A,b);% 5. 結果

###% バツ###

% x =

% 24.0000

%12.0000

%12.0000

%

%

% fval

% fval =

% -3.4560e 03

%

%

% A*x-b

% 回答 =

-72

matlab の二項関数の最大値

多変数関数の最適化問題は単純に書くことができません。

MATLAB 自体は最適化には適していないため、lingo や 1stopt などのツールを使用することをお勧めします。

以下は 1stopt ツールを使用した結果です:

1.コード:

パラメータ x=[1.8,2,2],y=[.46,.90];

###最小;###

関数 (-256.926x 572.13)*(y*(0.867 0.037*y 0.05*x)*252-17.784*y);

2.結果:

反復数: 25

計算時間 (時:分:秒:ミリ秒): 00:00:00:141

計算中止の原因: 収束基準に達しました

最適化アルゴリズム:共役勾配法 一般的な全体最適化法

関数式: (-256.926*x 572.13)*(y*(0.867 0.037*y 0.05*x)*252-17.784*y)

目的関数値 (最小): 6170.8801616352

#xx: 2

y: 0.46

以上がMatlab で区分関数の極点を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。