求参数x取最大值时对应y的值。
约束方程组求解的是x,y是相互对应的数组,后续我如何得到在x取最大值时对应的y值?(最后一行代码有问题)
clear
clc
syms vh vd x t
h1=vh-vd.*cos(x.*t)
F1=int(h1,t,0,pi./(2.*x))
syms vh vd x y t
h2=vh-(vd.*(x./y)).*cos(y.*(t-pi./(2.*x)+pi./(2.*y)))
F2=int(h2,t,pi./(2.*x),pi./(2.*x)+pi./(2.*y))
syms x y D
D=100
vh=14.29
vd=4.29
[x,y,params,conditions]=solve(D==F1+F2+(vh+vd.*x./y).*(D./vh-pi./(2.*x)-pi./(2.*y)),abs(vd.*x.*y)<=10,x>0,y>0,[x,y],'ReturnConditions',true)
试了一下,返回empty sym,方程可能无解吧?
x任取一个值,总能得到复数解:
clc,clear,close all;
syms vh vd y t
x=1;
h1 = vh-vd*cos(x*t);
F1 = int(h1,t,0,pi/(2*x));
h2 = vh-(vd*(x/y))*cos(y*(t-pi/(2*x)+pi/(2*y)));
F2 = int(h2,t,pi/(2*x),pi/(2*x)+pi/(2*y));
D=100;
vh=14.29;
vd=4.29;
[y,params,conditions] = solve(D==F1+F2+(vh+vd*x/y)*(D/vh-pi/(2*x)-pi/(2*y))...
,abs(vd*x*y)<=10,y>0,y,'ReturnConditions',true)
y =
xexp(u1i)
params =
[u, x]