matlab 图像 隐函数 求最值

作出p和f关于z的图像,且求出f的最值

img

img


为啥和你的结果区别这么大,我上一次回答复制粘贴*被忽略了,你再看一下,可以追加悬赏

声明:回答仅供参考,不保证结论正确,不为采用本回答的带来的结果负责。

可以看到,p和f均为关于p,f,z的函数,即隐函数。绘制隐函数图像的函数有ezplot,ezplot3,fplot,fplot3,fimplicit,fimplicit3等函数。由于p和f的变量为3个,matlab不推荐使用ezplot3和fplot3绘制函数图像,故使用fimplicit3绘制函数图像。查阅fimplicit3的帮助文件,fimplicit3(f)绘制 f(x,y,z) = 0 定义的三维隐函数。 故绘制图像p - p1(f,p,z) = 0的函数图像。

clear
syms p f a N2
z = a;
h=6.6260689610^(-34);
c=2.9910^(9);
up=97510^(-9);
us=108010^(-9);
Tap=2.510^(-24);
Tep=2.510^(-24);
Tas=1.7510^(-27);
Tes=2.0510^(-25);
t=0.8310^(-3);
Ac=7.8510^(-11);
N=5.535210^(13);
Fp=0.0059;
Fs=0.8269;
ap=210^(-3);
as=410^(-4);
L=40;
vp=c/up;
vs=c/us;
Pp=h*vp*Ac/(t*Fp*(Tap+Tep));
Ps=h*vs*Ac/(t*Fs*(Tas+Tes));
N2=N*(p*Tap/(Tap+Tep)/Pp+f*Tas/(Tas+Tes)/Ps)/(1+p/Pp+f)/Ps;
p1 =exp(-z*(as + Fp*N*Tas - Fp*N2*Tas - Fp*N2*Tes));
f1 =exp(z*(ap - Fs*N*Tap + Fs*N2*Tap + Fs*N2*Tep));
fimplicit3(p1-p,[-10,10])
xlabel('z')
ylabel('f')
zlabel('p')
view([0 0]) %考察p = p(z)的图像
fimplicit3(f1-f,[-10,10])
xlabel('z')
ylabel('f')
zlabel('p')
rotate3d on
view([0 90])%考察f = f(z)的图像

得到了如下的图像

img


img


进一步,只分别考虑f、p和z的关系

img


img


从图像中可以看到,f和p近似无关,且f和p关于z单调递减,不存在极值。
为了进一步说明,分别求f和p的极值。
有多元函数的极值存在条件可知,
solve(diff(f1,a) == 0,diff(f1,p) == 0,[a,p])的解为f1的极值点。
solve(diff(p1,a) == 0,diff(p1,f) == 0,[a,f])的解为p1的极值点。
解得
(0,-49659621239420576889308.549001688 f-49659621239420576889308.549001688)为f1的极值点
(0,-0.000000000000000000000020137084718765122272278326990089 p -1.0)为p1的极值点
代入p和f的表达式,即可活得p和f的极值点的表达式。