eight 发表于 2007-11-1 12:39

原帖由 huanhuan023 于 2007-11-1 11:01 发表 http://www.chinavib.com/forum/images/common/back.gif
为什么同样的程序到我机子上就不能运行呢?
是我装的软件的问题吗?疑惑中……我的也是7.0版本……
请给出错误信息

dingd 发表于 2007-11-1 16:55

用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);

aiguo 发表于 2007-11-9 11:03

x0 = ;         % 取初值
是非线性方程组,为什么还要取初值呢

huright 发表于 2007-11-9 11:51

回复 #20 dingd 的帖子

原来下载了个1stOpt
不好用

tigerlun 发表于 2008-4-1 12:00

我用的是6.5,按13楼的改了代码,可为什么和没改之前一样,总是出现这个结果呢?
>> Warning: List of equations is empty.
> In C:\MATLAB6p5\toolbox\symbolic\solve.m at line 85

ans =

[ empty sym ]

penghust 发表于 2008-6-8 10:19

谢谢楼主的 共享

我昨天求解一个 非线性方程就遇到这样的问题。

不过不是变参数的,而是一个带符号的非线性方程

bingzi 发表于 2009-1-11 14:14

出错啦!

怎么在我的机子上运行不了了!!!

>> 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{:});

ch_j1985 发表于 2009-1-11 22:30

回复 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))];

chenvy 发表于 2009-2-26 04:49

谢谢啊,太感谢楼主了

ChaChing 发表于 2009-2-26 14:08

原帖由 aiguo 于 2007-11-9 11:03 发表 http://www.chinavib.com/forum/images/common/back.gif
x0 = ;         % 取初值
是非线性方程组,为什么还要取初值呢
个人理解
Optimization Toolbox中的函数都要给初值, 主要与数值求解
的Algorithm有关, 它并非将函数解全部解出, 亦有可能不是真解!

alljoyland 发表于 2009-2-26 20:08

恩,不错,变参数的语法有点高级

wusemm 发表于 2010-3-30 22:29

非常的有意义

正在求解中,学习了,感谢了

pmsl 发表于 2010-8-10 17:21

回复 12楼 michael1003 的帖子

是的,设为全局变量也可以实现

fanhuasijin 发表于 2011-4-11 15:32

楼主帮我解惑了,谢谢

东南小忽悠 发表于 2011-6-30 15:28

这个程序为什么在我机子上用不了呢
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.
页: 1 [2] 3
查看完整版本: 【原创】变参数非线性方程组的求解!