首頁  >  文章  >  電腦教學  >  matlab怎麼實作分段函數的極值點

matlab怎麼實作分段函數的極值點

WBOY
WBOY轉載
2024-01-20 08:03:131114瀏覽

matlab怎麼實作分段函數的極值點

matlab怎麼實作分段函數的極值點

function m=fenduanhanshu(t)

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

【解釋】

在Matlab中,上述函數中的表達式m=t.*(t>=0 & t1 & t2)的運算規則是當布林表達式為true時,布林表達式式的值取1,參與運算,否則取0,參與運算。

例如,當表達式中的(t>=0 & t=0 & t1 & t2)都不成立,取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

% x =

% 24.0000

% 12.0000

% 12.0000

%

%

% fval

% fval =

% -3.4560e 03

%

%

% A*x-b

% ans =

-72

matlab二元函數最大值

多元函數的最佳化問題可不是簡簡單單就能寫出來的。

本身MATLAB就不適合用來做優化,建議使用lingo,1stopt等工具。

以下是使用1stopt工具做出來的結果:

1. 程式碼:

Parameters x=[1.8,2,2],y=[.46,.90];

Minimum;

Function (-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

x: 2

y: 0.46

以上是matlab怎麼實作分段函數的極值點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:docexcel.net。如有侵權,請聯絡admin@php.cn刪除