matlab求函数f=(1+x^2)/(1+x^4)在区间0<x<2的最大值怎么求,求代码
1个回答
展开全部
首先,通过解析的办法可以求到精确解。
求f对x的导数,令其等于0,求得x=√(√2-1)或者-1。所以,最大值为(1+√2)/2。
matlab中输入(1+sqrt(2))/2,得到1.2071。
如果非要求解,我的思路是:
a. 首先绘图观察函数曲线,如执行如下命令即可画出f在(0,2)区间的图形。
x=0:0.0001:2; plot(x,(1+x.^2)./(1+x.^4));
通过观察可以看出,最大值在0.6到0.8之间,并且在极值两侧都是单调的。
b. 通过如下程序计算出极值,请保存成qiujjizhi.m,执行即可。
function [x y]=qiujizhi()
h=0.00001; %%解的精度
x=0.6;
y=(1+x^2)/(1+x^4);
while (1+(x+h)^2)/(1+(x+h)^4) > y
x=x+h;
y=(1+x^2)/(1+x^4);
end
fprintf('极大值时x取值%5.20d,极大值时y=,%5.20d',x,y);
求f对x的导数,令其等于0,求得x=√(√2-1)或者-1。所以,最大值为(1+√2)/2。
matlab中输入(1+sqrt(2))/2,得到1.2071。
如果非要求解,我的思路是:
a. 首先绘图观察函数曲线,如执行如下命令即可画出f在(0,2)区间的图形。
x=0:0.0001:2; plot(x,(1+x.^2)./(1+x.^4));
通过观察可以看出,最大值在0.6到0.8之间,并且在极值两侧都是单调的。
b. 通过如下程序计算出极值,请保存成qiujjizhi.m,执行即可。
function [x y]=qiujizhi()
h=0.00001; %%解的精度
x=0.6;
y=(1+x^2)/(1+x^4);
while (1+(x+h)^2)/(1+(x+h)^4) > y
x=x+h;
y=(1+x^2)/(1+x^4);
end
fprintf('极大值时x取值%5.20d,极大值时y=,%5.20d',x,y);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询