%使用for 循环是由于有好几层的板需要进行校核……%
for i=1:n
stress1(i)=stress12(1,1,i);
stress2(i)=stress12(2,1,i);
tao(i)=stress12(3,1,i);
end
%(这就是一个stress1(i),stress2(i),tao(i)是三个含有 符号Nx 和 Z 的表达式)%
F=stress1.^2/Xt^2-stress1.*stress2/Xt^2+stress2.^2/Yt^2+tao.^2/S^2-1;
%Xt Yt S 为数值,材料常数%
F_Nx=[];
Nxmin=[];
for i=1:n
jie=solve(F(i),Nx);%运行后可以看到jie里有值,但系数太诡异%
[fz,fval]=fminbnd(jie,z(i),z(i+1)); %这一句一直报错,错误提示见后%
fzmin=[fzmin fz ];
Nxmin=[Nxmin fval];
end
错误提示:
??? Error using ==> fcnchk at 103
If FUN is a MATLAB object, it must have an feval method.
Error in ==> fminbnd at 183
funfcn = fcnchk(funfcn,length(varargin));
Error in ==> composites at 311
[fz,fval]=fminbnd(jie,z(i),z(i+1));
matlab 隐函数求解出来结果很诡异,想用 fminbnd 求解 最小值,错误,具体程序如下
答案:2 悬赏:0 手机版
解决时间 2021-03-04 22:13
- 提问者网友:不要迷恋哥
- 2021-03-03 21:42
最佳答案
- 五星知识达人网友:woshuo
- 2021-03-03 23:19
1、最主要的问题在于,你的jie是sym对象,不能用于fminbnd这类数值方法的优化程序。可以改成
[fz,fval]=fminbnd(inline(char(jie(i)),z(i),z(i+1));
2、由于你现在的条件中,Xt、Yt、S以及z的值都没给出,我随便指定的值,虽然可以运行,但算出来的结果没什么意义。
希望对你有帮助,有问题可追问。
[fz,fval]=fminbnd(inline(char(jie(i)),z(i),z(i+1));
2、由于你现在的条件中,Xt、Yt、S以及z的值都没给出,我随便指定的值,虽然可以运行,但算出来的结果没什么意义。
希望对你有帮助,有问题可追问。
全部回答
- 1楼网友:北城痞子
- 2021-03-04 00:35
你好!
最主要的问题在于,你的jie是sym对象
我的回答你还满意吗~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯