ホームページ > 記事 > コンピューターのチュートリアル > Matlab で区分関数の極点を実現する方法
関数 m=フェンドゥアンハンシュ(t)
m=t.*(t>=0 & t1 & t2)
###【説明する】###Matlab では、上記の関数の式 m=t.*(t>=0 & t
1 & t2) の演算規則は、ブール式が true の場合、ブール式は式 式の値は、操作に参加するには 1 をとり、それ以外の場合は 0 をとって操作に参加します。 たとえば、式内の (t>=0 & t
=0 & t1 & t2) が true でない場合、0 が演算に参加するものとみなされます。今回は m=t.* 1 (-t 2)*0 0.1.*0=t となります。 Matlab のこの設計により、ユーザーは科学計算を実行しやすくなり、コードの量が削減され、開発効率が向上します。個人的には使用することを強くお勧めします。
Matlab を使用して関数の最大値問題を解く方法
% 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 の二項関数の最大値
多変数関数の最適化問題は単純に書くことができません。
以下は 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: 2y: 0.46
以上がMatlab で区分関数の極点を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。