Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-09-29
帖子: 2
声望力: 0 ![]() |
![]()
对matlab不熟悉,由于临时需要做一个方程组的求解才开始接触这个软件。方程组如下图,我解出结果后,将结果代回原先的方程组,方程两边却不相等。不知道为什么。
有哪位大虾能帮忙解一下这个方程组,最好能给出matlab代码,非常感谢~~~ 下面是我编写的m文件,其中x(1),x(2),x(3)分别对应上图中的R1、R2、R3: function Test clc clear options=optimset('Display','off'); options.TolFun=1e-30; options.TolX=1e-16; x0=[0.4;0.4;0.4]; %初值 [x,fval]=fsolve(@mf,x0,options) function F=mf(x) b0=0.611553; b1=1.746500; b2=1.860016; u = 6; F = [1.0/(x(1)*x(2)*x(3))-b0;1.0/(x(1)*x(2))+(2-u)/(x(1)*x(3))+(3-u)/(x(2)*x(3))-b1;2.0/x(2)+(2-u)/x(3)+1.0/x(1)-b2]; 得出的结果: x = 0.7567 1.2281 11.1929 fval = -0.5154 -1.3610 0.7326 可以看出,这三个x如果代回到第一个方程中,方程两边根本就不相等,而且差很多。 另外,不明白这个fval代表什么意思,是做什么的。 希望各位大虾帮帮忙解一下这个方程,再次感谢~~~ |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24 ![]() |
![]()
是因为迭代次数达到了 所以没有找到要求范围内的数值 修改相应的options即可
__________________
qq604443022 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-09-29
帖子: 2
声望力: 0 ![]() |
![]()
谢谢楼上,我对matlab刚刚开始学习,很生疏,请问修改options中的哪个参数呢,要修改为多大呢?
|
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24 ![]() |
![]()
help fsolve .
__________________
qq604443022 |
![]() |
![]() |