luzhidong 发表于 2006-5-29 06:15

初学者求助方程组问题

<P>请问 :小弟用的fsolve 解十个方程组,其中一段如下<BR>x0=;x1=fsolve(@NonlinEqs,x0)<BR>然后x1解出十个解.<BR>请问怎么输出其中任意一个解啊?<BR><BR>比如说我想输出x1中的第三个解.<BR>但是我输入x1(3)却提示<BR><FONT color=#ee1111>???</FONT> <FONT color=#d56f2b><FONT color=#f70909>Undefined command/function 'x1'. <BR></FONT><FONT color=#000000>麻烦了</FONT><BR></FONT><BR></P>

NVHht 发表于 2006-5-29 09:37

x1=fsolve(@NonlinEqs,x0)改为=fsolve(@NonlinEqs,x0)试一试。<BR><BR><BR>

happy 发表于 2006-5-29 09:39

回复:(luzhidong)初学者求助方程组问题

<P>把代码贴一下</P>

luzhidong 发表于 2006-5-29 09:54

<P>谢谢楼上的两位朋友,可是改成好象没用.<BR>function xFsolve<BR>clear all;clc<BR>global Q1 C0 Q2 U Cp t3 t4 r3 Ey3 Q3 r2 Ey2 r1 Ey1 t1 t2 T0 T1 D0 Cpw Es1 Es2 Es3 E1 E2 E3 E4 T2 T3 H1 H2 H3 H4 r0 r2 r3 ta1 ta2 ta3 ta4 q Q4 s</P>
<P>x0=;=fsolve(@NonlinEqs,x0)</P>
<P>function f=NonlinEqs(x)<BR>Q1=1;C0=2;Q2=3;U=20;Cp=4;t3=8;t4=6;r3=7;Ey3=0.8;Q3=4;r2=9;Ey2=0.9;r1=2;Ey1=0.4;t1=10;t2=9;T0=78;T1=66;D0=100;Cpw=22;Es1=0.6;Es2=0.8;Es3=0.6;E1=0.5;E2=0.3;E3=0.4;E4=0.6;r0=13;r2=19;r3=12;<BR>ta1=30;ta2=25;ta3=18;ta4=10;q=30;H3=28;Q4=5;Cpb=10;<BR>T2=55;T3=43;H1=22;H2=33;H4=22;<BR>f(1)=(((Q1+1)/Q1)*(C0/(U-C0))*x(7)+x(7)+((Q2+1)/Q2)*(C0/(U-C0))*x(8)+x(8)+((Q3+1)/Q3)*(C0/(U-C0))*x(9)+x(9))*Cp*(t3-t4)-x(3)*r3*Ey3;<BR>f(2)=(((Q1+1)/Q1)*(C0/(U-C0))*x(8)+x(8)+((Q2+1)/Q2)*(C0/(U-C0))*x(9)+x(9))*Cp*(t2-t3)-x(2)*r2*Ey2;<BR>f(3)=(((Q1+1)/Q1)*(C0/(U-C0))*x(7)+x(7))*Cp*(t1-t2)-x(1)*r1*Ey1;<BR>f(4)=D0*Cpw*(T0-T1)-x(4)*r1*Es1;<BR>f(5)=(D0+x(7))*Cpw*(T1-T2)-x(5)*r2*Es2;<BR>f(6)=(D0+x(7)+x(8))*Cpw*(T2-T3)-x(6)*r3*Es3;<BR>f(7)=D0*r0*(1-E1)-x(7)*H1-(x(7)*C0/(U-C0))*((Q1+1)/Q1)*(Cp/(1+Q1)+Cpb*Q1/(Q1+1))*ta1-q*x(7)*C0/(U-C0)+(((Q1+1)/Q1)*(C0/(U-C0))*x(7)+x(7))*Cp*t1;<BR>f(8)=(x(7)-x(1)+x(4))*r1*(1-E2)-x(8)*H2-(x(8)*C0/(U-C0))*((Q2+1)/Q2)*(Cp/(1+Q2)+Cpb*Q2/(Q2+1))*ta2-q*x(8)*C0/(U-C0)+(((Q2+1)/Q2)*(C0/(U-C0))*x(8)+x(8))*Cp*t2;<BR>f(9)=(x(8)-x(2)+x(5))*r2*(1-E3)-x(9)*H3-(x(9)*C0/(U-C0))*((Q3+1)/Q3)*(Cp/(1+Q3)+Cpb*Q3/(Q3+1))*ta3-q*x(9)*C0/(U-C0)+(((Q3+1)/Q3)*(C0/(U-C0))*x(9)+x(9))*Cp*t3;<BR>f(10)=(x(9)-x(3)+x(6))*r3*(1-E4)-x(10)*H3-(x(10)*C0/(U-C0))*((Q4+1)/Q4)*(Cp/(1+Q4)+Cpb*Q4/(Q4+1))*ta4-q*x(10)*C0/(U-C0)+(((Q4+1)/Q4)*(C0/(U-C0))*x(10)+x(10))*Cp*t4;</P>

happy 发表于 2006-5-29 10:05

回复:(luzhidong)初学者求助方程组问题

把function xFsolve去掉就行了

luzhidong 发表于 2006-5-29 10:17

谢谢<BR>我存储的是M文件,刚才我把function xFsolve去掉再调用就提示<BR><FONT color=#ee3d11>??? Error: File: ld.m Line: 7 Column: 1<BR>Function definitions are not permitted at the prompt or in scripts.</FONT>

happy 发表于 2006-5-29 10:20

回复:(luzhidong)初学者求助方程组问题

建议看一下关于子程序方面的资料<BR><BR>你把第一句改成function =xFsolve就行了

luzhidong 发表于 2006-5-29 10:36

<P>谢谢HAPPY,<br>我得出结果了.<br>谢谢,非常谢谢happy这么耐心</P>
[此贴子已经被作者于2006-5-29 10:49:20编辑过]

lrf1232003 发表于 2006-5-29 16:28

谢谢

edwardflr 发表于 2006-5-29 16:50

哦,这个貌似是matlab在窗口下不能访问函数的workspace造成的。
页: [1]
查看完整版本: 初学者求助方程组问题