求助关于sym的问题
子程序function va=vayouhua(x)
%syms beta gamma r3 c w theta
%beta=x(1);gamma=x(2);r3=x(3);c=x(4);w=x(5);theta=x(6);
va1=solve('(3*beta*(1-beta)*gamma^2*((r3-c*gamma)*w*r3*sin(theta)-va*r3*cos(theta))*(w*r3*sin(theta)-va*cos(theta))*cos(theta))/((1-beta)*((r3-c*gamma)*w*r3*sin(theta)-va*r3*cos(theta))+beta*r3*(1+gamma)^3*(w*r3*sin(theta)-va*cos(theta)))*(r3-c-c*gamma)-((1-beta)*(r3-c*gamma))/(c*(1+gamma))*va-beta*va=0','va');
%此处先解出va1的表达式而已
beta=sym(x(1));gamma=sym(x(2));r3=sym(x(3));c=sym(x(4));w=sym(x(5));theta=sym(x(6));
vaa=va1(1);
va=subs(vaa);
主程序
%main function
function vamain
clear all
clc
x0=;%定义初始点
lb=;%设置上边界
ub=;%设置下边界
options=optimset('largescale','off');
=fmincon(@vayouhua,x0,[],[],[],[],lb,ub,[],options)
出错提示:
??? Conversion to double from sym is not possible.
Error in ==> finitedifferences at 171
gradf(gcnt,1) =(fplus-fCurrent)/CHG(gcnt);
Error in ==> optim\private\nlconst at 269
=finitedifferences(XOUT,x,funfcn,confcn,lb,ub,f,nc, ...
Error in ==> fmincon at 498
=...
Error in ==> vamain at 9
=fmincon(@vayouhua,x0,[],[],[],[],lb,ub,[],optios)
什么原因,恳请高手调试,运行很快的
如果在另一个程序中先解出va1的表达式,把结果直接贴在子程序中而不是在子程序计算va1的表达式,程序没有错误,因此如何解决这个矛盾?或者有没有方法在子程序中调用计算va1的程序,这样也可以解决矛盾,如何调用? 这个问题用1stOpt来解可能更合适.
我以前好象算过一个类似的问题,现在一时没找到程序放哪儿了. 请你再想想,1stOpt是什么东西 原帖由 jsp613 于 2007-5-12 10:21 发表 http://forum.vibunion.com/forum/images/common/back.gif
请你再想想,1stOpt是什么东西
请发贴前搜索一下论坛,就搜索 1stOpt 这个,然后就可以知道答案了,用不着发帖的 这个软件没用过,呵呵
页:
[1]