声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1260|回复: 4

[编程技巧] 求助关于sym的问题

[复制链接]
发表于 2007-5-11 16:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
子程序
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=[0.1 1 0.007 0.001 31.42 pi/4];%定义初始点
lb=[0.02 0.5 0.004 0.0005 10 15*pi/180];%设置上边界
ub=[0.2 2 0.01 0.002 50 75*pi/180];%设置下边界
options=optimset('largescale','off');
[x,fval,exitflag,output,lambda]=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
         [gf,gnc,NEWLAMBDA,OLDLAMBDA,s]=finitedifferences(XOUT,x,funfcn,confcn,lb,ub,f,nc, ...
Error in ==> fmincon at 498
   [X,FVAL,lambda,EXITFLAG,OUTPUT,GRAD,HESSIAN]=...
Error in ==> vamain at 9
[x,fval,exitflag,output,lambda]=fmincon(@vayouhua,x0,[],[],[],[],lb,ub,[],optios)      
什么原因,恳请高手调试,运行很快的
如果在另一个程序中先解出va1的表达式,把结果直接贴在子程序中而不是在子程序计算va1的表达式,程序没有错误,因此如何解决这个矛盾?或者有没有方法在子程序中调用计算va1的程序,这样也可以解决矛盾,如何调用?
回复
分享到:

使用道具 举报

发表于 2007-5-11 22:27 | 显示全部楼层
这个问题用1stOpt来解可能更合适.
我以前好象算过一个类似的问题,现在一时没找到程序放哪儿了.
 楼主| 发表于 2007-5-12 10:21 | 显示全部楼层
请你再想想,1stOpt是什么东西
发表于 2007-5-12 10:22 | 显示全部楼层
 楼主| 发表于 2007-5-12 10:26 | 显示全部楼层
这个软件没用过,呵呵
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 20:51 , Processed in 0.090317 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表