声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1235|回复: 9

初学者求助方程组问题

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

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

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

x
<P>请问 :小弟用的fsolve 解十个方程组,其中一段如下<BR>x0=[0 0 0 0 0 0 0 0 0 0];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>[em06]
回复
分享到:

使用道具 举报

发表于 2006-5-29 09:37 | 显示全部楼层
x1=fsolve(@NonlinEqs,x0)改为[x]=fsolve(@NonlinEqs,x0)试一试。<BR><BR><BR>[em01]
发表于 2006-5-29 09:39 | 显示全部楼层

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

<P>把代码贴一下</P>
 楼主| 发表于 2006-5-29 09:54 | 显示全部楼层
<P>谢谢楼上的两位朋友,可是改成[x]好象没用.<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=[0 0 0 0 0 0 0 0 0 0];[x1]=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>
发表于 2006-5-29 10:05 | 显示全部楼层

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

把function xFsolve去掉就行了
 楼主| 发表于 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>
发表于 2006-5-29 10:20 | 显示全部楼层

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

建议看一下关于子程序方面的资料<BR><BR>你把第一句改成function [x1]=xFsolve就行了
 楼主| 发表于 2006-5-29 10:36 | 显示全部楼层
<P>谢谢HAPPY,<br>我得出结果了.<br>谢谢,非常谢谢happy这么耐心</P>
[此贴子已经被作者于2006-5-29 10:49:20编辑过]

发表于 2006-5-29 16:28 | 显示全部楼层
谢谢
发表于 2006-5-29 16:50 | 显示全部楼层
哦,这个貌似是matlab在窗口下不能访问函数的workspace造成的。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-25 15:28 , Processed in 0.057164 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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