怎樣在Matlab中求函式的極大值

時間 2021-07-01 01:43:38

1樓:匿名使用者

% by dynamic of matlab技術論壇

% contact me [email protected]% 2010-02-28 14:06:18%syms x

y=x*sin(x) ;

dy=diff(y);% 一階導數

d2y=diff(dy);%二階導數

x1=double(solve(dy));% 找出導數為0的點,就是極點

x2=subs(d2y,x1)

% 如果一階導數為零,二階導數小於零,則為極大點x1(x2<0)

2樓:達長青空霜

可以利用max函式獲取最值的位置。

如果是極值,可以通過微分來做。比如:%bylyqmath

%dlut

school

ofmathematical

sciences

%blog:

http://blog.csdn.net/lyqmath%有一組資料,matlab怎樣取得每個波峰波谷的資料clc;

close

all;

clear;

data=[105.03

99.18

84.965

72.445

68.994

77.265...

91.052

100.61

98.215

86.363

74.439

71.625...

80.061

92.18

97.823

91.483

80.241

73.616...

78.547

89.084

94.924

89.689

79.898

75.485...

81.544

89.485

90.578

83.712

77.401

80.18...

86.904

88.721

83.468

78.971

81.983

86.25...

85.224

80.901

80.808

84.488];

indmin=find(diff(sign(diff(data)))>0)+1;

indmax=find(diff(sign(diff(data)))<0)+1;

plot(1:length(data),data);

hold

on;grid

on;plot(indmin,data(indmin),'r^')plot(indmax,data(indmax),'k*')legend('曲線','波谷點','波峰點')

matlab中求極值點,matlab中求極值點

先畫出導數的曲線,根據其零點判斷有幾個極點,然後對各極點分別指定適當的初值,利用fsolve求出準確的零點位置,再繪圖即可.參考 如下 symsxf 2 x.2 4 sin 2 pi x df diff f ezplot df,33 x0 1.8 1.3 0.80.50.20.51.2 x0 fso...

matlab怎麼在主函式中呼叫子函式計算出來的值

如果希望子函式計算出來的值可以被呼叫,那麼需要將其作為子函式的返回值。下面給出乙個簡單的示例 1 建立子函式my 儲存在當前工作目錄下 function a,b,c,d my fun x,y a x y b x y c x y d x y end2 主函式中可根據需要呼叫部分返回值,例如。x 10 ...

MATLAB中的DEBLANK函式

多瑙的萊茵 deblank函式是用來刪除字串中尾部空格的一個函式。在matlab中輸入help deblank就可以檢視其用法,在裡面都有詳細介紹。matlab處理字串的函式還有 strcmp 比較兩個字串是否完全相等,是,返回真,否則,返回假 strncmp 比較兩個字串前n個字元是否相等,是,返...