24小时热门版块排行榜    

CyRhmU.jpeg
查看: 744  |  回复: 2

周亦良

金虫 (小有名气)

[求助] matlab求两个自变量的最值已有1人参与

clear
clc
T=0.3;
Vsw=2500;
Vvw=3900;
Vs=100;
Vv=187;
yc=25;
yd=16;
yst=19;
yw=10;
kh1=0.3;
H=10;
ru=0.2;
b=0.2*H;
h=0.75*H;
B=30*pi/180;
D=B/2;
C=10*pi/180;
A=0:0.01*pi/180:pi/2;
t=0:0.001:0.3;
yy=((h/H)^2*yst+(1-(h/H)^2)*yd)
kh=yst*kh1/(yy*(1-ru))
kv=0.5*kh;
m1=T*Vs*kh*(1+tan(A)*tan(C))/(2*pi^2*H^2*tan(A))*(2*pi*H*cos(2*pi*(t/T-H/(T*Vs)))+T*Vs*(sin(2*pi*(t/T-H/(T*Vs)))-sin(2*pi*t/T)));
m2=T*Vv*kv*(1+tan(A)*tan(C))/(2*pi^2*H^2*tan(A))*(2*pi*H*cos(2*pi*(t/T-H/(T*Vv)))+T*Vv*(sin(2*pi*(t/T-H/(T*Vv)))-sin(2*pi*t/T)));
Ke=(1+tan(A)*tan(C))*sin((A+B))/tan(A)/cos((A+B+D-C))-m1*cos((A+B))/cos((A+B+D-C))-m2*sin((A+B))/cos((A+B+D-C))
麻烦用matlab写出求得Ke的最小值(Ke为正的最小值)程序,以及相应A,t的值

发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyh700600

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
周亦良: 金币+50, ★★★★★最佳答案 2022-05-05 17:00:34
CODE:
clear; clc
format long g

T=0.3;
Vsw=2500;
Vvw=3900;
Vs=100;
Vv=187;
yc=25;
yd=16;
yst=19;
yw=10;
kh1=0.3;
H=10;
ru=0.2;
b=0.2*H;
h=0.75*H;
B=30*pi/180;
D=B/2;
C=10*pi/180;

% A=0:0.01*pi/180:pi/2;
%  t=0:0.001:0.3;

syms A t

yy=((h/H)^2*yst+(1-(h/H)^2)*yd);
kh=yst*kh1/(yy*(1-ru));
kv=0.5*kh;

m1=T*Vs*kh*(1+tan(A)*tan(C))/(2*pi^2*H^2*tan(A))*(2*pi*H*cos(2*pi*(t/T-H/(T*Vs)))+T*Vs*(sin(2*pi*(t/T-H/(T*Vs)))-sin(2*pi*t/T)));
m2=T*Vv*kv*(1+tan(A)*tan(C))/(2*pi^2*H^2*tan(A))*(2*pi*H*cos(2*pi*(t/T-H/(T*Vv)))+T*Vv*(sin(2*pi*(t/T-H/(T*Vv)))-sin(2*pi*t/T)));
Ke = (1+tan(A)*tan(C))*sin((A+B))/tan(A)/cos((A+B+D-C))-m1*cos((A+B))/cos((A+B+D-C))-m2*sin((A+B))/cos((A+B+D-C));

Kem = matlabFunction(Ke);

[x,fval,exitflag] = fminsearch(@(x) Kem(x(1),x(2)),[0.5, 1.3]);

A0 = x(1)
t0 = x(2)
Ke_min = fval

计算结果:

A0 =         0.281986095843263
t0 =         1.33097106429981

Ke_min       2.04515149602023


求最值,可根据具体问题,选用 fmincon 、fminunc  、fminsearch 等函数。

» 本帖已获得的红花(最新10朵)

2楼2022-05-05 11:58:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

周亦良

金虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by zyh700600 at 2022-05-05 11:58:26
clear; clc
format long g

T=0.3;
Vsw=2500;
Vvw=3900;
Vs=100;
Vv=187;
yc=25;
yd=16;
yst=19;
yw=10;
kh1=0.3;
H=10;
ru=0.2;
b=0.2*H;
h=0.75*H;
B=30*pi/180;
D=B/2;
C=10*pi/180;

...

你好,很高兴你的解答,但我改变kh1=0.6时,会显示超过了函数计算的最大数目- 请增大 MaxFunEvals 选项。请问应该如何调整?非常感谢
3楼2022-11-07 17:44:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 周亦良 的主题更新
信息提示
请填处理意见