利用MATLAB软件求f(x)=x sin(x cosx)求f(x)在[0,4pi]上的极值,拐点
发布网友
发布时间:2022-05-01 15:39
我来回答
共2个回答
热心网友
时间:2022-06-01 20:07
展开3全部
求连续函数的极值和拐点,必要条件就是f'(x)=0和f''(x)=0。
由于f'(x)=0和f''(x)=0在指定区间都有多个根,难点就在于怎样求出所有的根。
我找到一个利用切比雪夫多项式*近来求解任意函数指定区间内的所有实根的程序,用于求解本问题比较有效(n需要取比较大),请参见附件。
求解的代码如下:
syms x
f=x*sin(x*cos(x));
df=diff(f);
figure(1)
clf
x0=FindRealRoots(eval(['@(x)' char(df)]),0,4*pi,100);
ezplot(f,[0 4*pi])
hold on
plot(x0,subs(f,x0),'ro')
d2f=diff(f,2);
figure(2)
clf
subplot 211
x0=FindRealRoots(eval(['@(x)' char(d2f)]),0,4*pi,100);
ezplot(f,[0 4*pi])
hold on
plot(x0,subs(f,x0),'g>')
subplot 212
ezplot(df,[0 4*pi])
hold on
plot(x0,subs(df,x0),'ro')
axis tight
热心网友
时间:2022-06-01 20:07
用fminsearch(fun,x0)求解,该函数适应求函数的最小值。对于求函数的最大值问题,只要把函数写成最小值问题,即-fun。
运算结果,当x=1.09063时,有最大值g=0.5265。