为什么同样的程序到我机子上就不能运行呢?
是我装的软件的问题吗?疑惑中……我的也是7.0版本……
请给出错误信息 用1stOpt来凑个热闹:
Constant H=0.32, Pc0=0.23, W=0.18;
LoopConstant k = ;
PlotLoopData k, x1, x2;
Function Pc0+H*(1+1.5*(x1/W-1)-0.5*(x1/W-1)^3)-x2;
x1-k*sqrt(x2); x0 = ; % 取初值
是非线性方程组,为什么还要取初值呢
回复 #20 dingd 的帖子
原来下载了个1stOpt不好用 我用的是6.5,按13楼的改了代码,可为什么和没改之前一样,总是出现这个结果呢?
>> Warning: List of equations is empty.
> In C:\MATLAB6p5\toolbox\symbolic\solve.m at line 85
ans =
[ empty sym ] 谢谢楼主的 共享
我昨天求解一个 非线性方程就遇到这样的问题。
不过不是变参数的,而是一个带符号的非线性方程
出错啦!
怎么在我的机子上运行不了了!!!>> clear
>> H=0.32;
Pc0=0.23;W=0.18;
x0 = ; % 取初值
options = optimset('Display','off');
k=0:0.01:1; % 变量取值范围
for i=1:1:length(k)
kk=k(i);
x = fsolve(@(x) myfun(x,kk), x0, options);%求解非线性方程组
x1(i)=x(1);
x2(i)=x(2);
end
??? Attempt to execute SCRIPT myfun as a function.
Error in ==> fsolve at 180
fuser = feval(funfcn{3},x,varargin{:});
回复 25楼 bingzi 的帖子
这段怎么没有写呢?%定义方程组如下,其中k为变量
function F = myfun(x,k)
H=0.32;
Pc0=0.23;W=0.18;
F=[Pc0+H*(1+1.5*(x(1)/W-1)-0.5*(x(1)/W-1)^3)-x(2);
x(1)-k*sqrt(x(2))]; 谢谢啊,太感谢楼主了 原帖由 aiguo 于 2007-11-9 11:03 发表 http://www.chinavib.com/forum/images/common/back.gif
x0 = ; % 取初值
是非线性方程组,为什么还要取初值呢
个人理解
Optimization Toolbox中的函数都要给初值, 主要与数值求解
的Algorithm有关, 它并非将函数解全部解出, 亦有可能不是真解! 恩,不错,变参数的语法有点高级
非常的有意义
正在求解中,学习了,感谢了回复 12楼 michael1003 的帖子
是的,设为全局变量也可以实现 楼主帮我解惑了,谢谢 这个程序为什么在我机子上用不了呢function F = mcccfun(x,k)
H=0.32;
Pc0=0.23;W=0.18;
F=[Pc0+H*(1+1.5*(x(1)/W-1)-0.5*(x(1)/W-1)^3)-x(2);
x(1)-k*sqrt(x(2))];
H=0.32;
Pc0=0.23;W=0.18;
x0 = ; % 取初值
options = optimset('Display','off');
k=0:0.01:1; % 变量取值范围
for i=1:1:length(k)
kk=k(i);
x = fsolve(@(x) mcccfun(x,kk), x0, options);%求解非线性方程组
x1(i)=x(1);
x2(i)=x(2);
Error: File: D:\matlab1\work\mcccfun.m Line: 28 Column: 1
This statement is incomplete.