amygod 发表于 2006-6-3 18:58

急:fsolve解方程时出错,请高人指点

<P ><FONT face="Times New Roman">我在做一个图形就是反应器内温度y随冷凝水温度c的变化<BR><BR>M</FONT>文件:</P>
<P ><FONT face="Times New Roman">function F = fh1(x,a)</FONT></P>
<P ><FONT face="Times New Roman">      F=[ 40000*(x-500)+1000*200*200*(x-500)-(55000*3.3*exp((9900/1.987)*(1/300.-1/x))*0.3*10)/(1+3.3*exp((9900/1.987)*(1/300.-1/x))*0.01)-40000*(x-a)+1000*0.3*200*(x-293.15)];       %a 为冷凝水温度,解出的x是所求的反应器内温度%</FONT></P>
<P ><p><FONT face="Times New Roman"> <BR></FONT></p></P>
<P >程序<FONT face="Times New Roman">&gt;&gt; for i=1:200</FONT></P>
<P ><FONT face="Times New Roman">c(i)=273+i;      %冷凝水温度从274K变化到473K%</FONT></P>
<P ><FONT face="Times New Roman">a=c(i);</FONT></P>
<P ><FONT face="Times New Roman">x = fsolve(@(x) fh1(x,a),);</FONT></P>
<P ><FONT face="Times New Roman">y(i)=x;</FONT></P>
<P ><FONT face="Times New Roman">end<BR></FONT></P>
<P ><FONT face="Times New Roman">输入end后就出现了下面的错误:请高手帮我解决一下啊!<BR>Optimization terminated: norm of relative change in X is less<p></p></FONT></P>
<P ><FONT face="Times New Roman"> than max(options.TolX^2,eps) andsum-of-squares of function <p></p></FONT></P>
<P ><FONT face="Times New Roman"> values is less than sqrt(options.TolFun).<p></p></FONT></P>

wei343 发表于 2006-6-3 19:12

F函数输入的对吗,[]在这里有意义吗

buaalqq 发表于 2006-6-3 21:07

<P>F函数应该没有问题,[]可有可无。<BR>不过搂主fsolve的用法小弟没见过啊,一般都是fsolve(@fh1,273,[],c(i))吧。</P>

amygod 发表于 2006-6-4 22:04

<P>这是解隐匿函数时用的啊,如:f=x+a;</P>

amygod 发表于 2006-6-4 22:28

<P>我核对了好几遍了应该没问题的,我在想是不是因为fsolve不适合那类方程的求解<BR>什么的,我把问题再描述一下,请高手帮忙啊:<BR>有两个温度Tc(冷凝水温度)和T(反应器内温度),他们之间有一定的函数关系,<BR>比如是UA*(T-Tc)+v*cA0*cp*(T-T0)=H*Vr*(k*cA0/(1+k*Vr/v));其中<BR>k=3.3*exp((E/R)*(1/300.-1/T));式中除了Tc与T外其他符号如UA等都是已知的<BR>现在我想画出Tc与T的关系曲线,实际情况时,二者应是一对应的,但那个方程可能会<BR>出现一个Tc对应多个T的情况,取舍方法是给定一个Tc0,当Tc大于Tc0时取最小的T值,<BR>反之,就取最大的T值。怎么办啊~~~~~~~期待牛人指点~~~<BR></P>
页: [1]
查看完整版本: 急:fsolve解方程时出错,请高人指点