Rumah > Artikel > tutorial komputer > Bagaimana untuk merealisasikan titik ekstrem fungsi piecewise dalam matlab
fungsi m=fenduanhanshu(t)
m=t.*(t>=0 & t1 & t2)
【Penjelasan】
Dalam Matlab, peraturan operasi ungkapan m=t.*(t>=0 & t1 & t2) dalam fungsi di atas ialah apabila ungkapan Boolean adalah benar, nilai ungkapan Boolean ialah 1 , Sertai operasi, jika tidak, ambil 0 dan sertai dalam operasi.
Sebagai contoh, apabila (t>=0 & t=0 & t1 & t2) dalam ungkapan adalah tidak benar, 0 digunakan untuk mengambil bahagian dalam operasi, jadi pada masa ini m=t.*1 +(-t+2) *0+0.1.*0=t.
Reka bentuk dalam Matlab ini memudahkan pengguna melakukan pengiraan saintifik, mengurangkan jumlah kod dan meningkatkan kecekapan pembangunan. Secara peribadi sangat mengesyorkan menggunakannya.
Nilai maksimum boleh ditukar kepada masalah nilai minimum. Contohnya: % Kira nilai minimum f(x) = -x1*x2*x3, titik permulaan ialah x = [10;10;10], dan kekangannya ialah:
% 0 ≤ x1 + 2*x2 + 2*x3 ≤ 72.
% –x1–2*x2–2*x3 ≤ 0
% 1. Tulis fungsi objektif% fungsi f = myfun(x)
% f = -x(1) * x(2) * x(3);% 2. Kekangan
% –x1–2*x2–2*x3 ≤ 0
% x1 + 2*x2 + 2*x3≤ 72
% 3. Bina matriks kekangan
% A = [-1 -2 -2; ...
% 1 2 2];
% b = [0;72];% 4. Pengiraan pengoptimuman% x0 = [10;10;10];
% [x,fval] = fmincon(@myfun,x0,A,b);% 5. Keputusan
% x
% x =
% 24.0000
% 12.0000
% 12.0000
%
%
% fval
% fval =
% -3.4560e+03
%
%
% A*x-b
% jawapan =
-72
Masalah pengoptimuman fungsi multivariate tidak boleh ditulis dengan mudah.
MATLAB sendiri tidak sesuai untuk pengoptimuman Adalah disyorkan untuk menggunakan alat seperti lingo dan 1stopt.
Berikut adalah keputusan menggunakan alat 1stopt:
1. Kod:
Parameter x=[1.8,2,2],y=[.46,.90];
Minimum;
Fungsi (-256.926x+572.13)*(y*(0.867+0.037*y+0.05*x)*252-17.784*y);
2. Keputusan:
Bilangan lelaran: 25
Masa pengiraan (jam: minit: saat: milisaat): 00:00:00:141
Punca pengiraan dihentikan: Kriteria penumpuan tercapai
Algoritma pengoptimuman: Kaedah kecerunan konjugat + kaedah pengoptimuman global umum
Ungkapan fungsi: (-256.926*x+572.13)*(y*(0.867+0.037*y+0.05*x)*252-17.784*y)
Nilai fungsi objektif (minimum): 6170.8801616352
x: 2
y: 0.46
Atas ialah kandungan terperinci Bagaimana untuk merealisasikan titik ekstrem fungsi piecewise dalam matlab. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!