neuzq 发表于 2007-5-13 15:02

如何求解这个方程组?

请教如何求解这个方程组?四个未知数,四个方程
70640*x1-35.4*x1*x2+6.32*x4-7584=0;
70640*x1+35.4*x2-70.8*x3-6.32*x4+126.4=0;
10.31*((3*x2-x3)/2+273)^4*10^(-8)-10.31*((1200+x4)/2+273)^4*10^(-8)+6.32*x4-7584=0;
10.31*((x2+x3)/2+273)^4*10^(-8)-10.31*((x4+20)/2+273)^4*10^(-8)-6.32*x4+126.4=0;
用solve函数去解还是用fsolve? 用solve求解时如何取实数解而去除复数解?谢谢

huright 发表于 2007-5-13 16:30

看看这样行不行:::
function F=myfun(x)

F=[70640*x(1)-35.4*x(1)*x(2)+6.32*x(4)-7584
70640*x(1)+35.4*x(2)-70.8*x(3)-6.32*x(4)+126.4
10.31*((3*x(2)-x(3))/2+273)^4*10^(-8)-10.31*((1200+x(4))/2+273)^4*10^(-8)+6.32*x(4)-7584
10.31*((x(2)+x(3))/2+273)^4*10^(-8)-10.31*((x(4)+20)/2+273)^4*10^(-8)-6.32*x(4)+126.4]
>> fsolve(@myfun,)
ans =

    0.0572 -880.8499 -422.0419 -111.3073

xjzuo 发表于 2007-5-13 16:31

“如何取实数解而去除复数解?”---这个问题好像前几天已经回答过了。
另: 这个问题本身还是有意思的: solve求解时,可发现有多个实数解.
   当我用fsolve或1stOpt均只求得了一组实数解, 当然,后者得到的解更好,因为前者涉及初值选取问题...

[ 本帖最后由 xjzuo 于 2007-5-13 16:33 编辑 ]

flybaly 发表于 2007-5-13 20:25

从第一个方程求得x4,带入第二个方程得到x3,然后把x3,x4代到后两个方程中,这样是不是简化了原问题
对于数学问题,应该先简化,再变成求解,这样更利于发现问题、检验结果

neuzq 发表于 2007-5-13 20:37

2楼主的求解结果好像不对,因为x2/x3/x4都应该在20~1200之间的值

[ 本帖最后由 xinyuxf 于 2007-5-14 16:35 编辑 ]

neuzq 发表于 2007-5-13 20:49

“如何取实数解而去除复数解?”---这个问题好像前几天已经回答过了。
另: 这个问题本身还是有意思的: solve求解时,可发现有多个实数解.
   当我用fsolve或1stOpt均只求得了一组实数解, 当然,后者得到的解更好,因为前者涉及初值选取问题...

呵呵,不好意思,我没看到前几天的回答。不过我还想问下,1stOpt和fsolve一样是要写成函数形式吗?4楼楼主可有例子否?谢谢

neuzq 发表于 2007-5-13 21:26

4楼楼主能否帮解一下这个题,不胜感激!

dingd 发表于 2007-5-13 22:56

x1: -0.000241706960823913
x2: 918.2958885897
x3: 353.443268754893
x4: 1201.45836210702

neuzq 发表于 2007-5-14 08:18

9楼楼主是用什么方法解出的该题?能否给个详细的程序,谢谢!因我要求的变量很多,这只是一个简化式

neuzq 发表于 2007-5-14 08:20

还有,我用solve函数求解的结果如下:
程序:=solve('70640*x1-35.4*x1*x2+6.32*x4-7584=0','70640*x1+35.4*x2-70.8*x3-6.32*x4+126.4=0','10.31*((3*x2-x3)/2+273)^4*10^(-8)-10.31*((1200+x4)/2+273)^4*10^(-8)+6.32*x4-7584=0','10.31*((x2+x3)/2+273)^4*10^(-8)-10.31*((x4+20)/2+273)^4*10^(-8)-6.32*x4+126.4=0')
运算结果:
x1 =
[                                       .44300171279956188715207106618823e-1]
[.61762288503275352219106979284710e-1-.52423652873332999430680811986837e-1*i]
[.61762288503275352219106979284710e-1+.52423652873332999430680811986837e-1*i]
[                                          .20020603951839662415378199545087]
[   .11555622487442888856341671928067+.44770683254687585575820101003185e-1*i]
[   .11555622487442888856341671928067-.44770683254687585575820101003185e-1*i]
[ -.25022628701363595878797805922225e-2-.99663553352430370495343916750051e-2*i]
[ -.25022628701363595878797805922225e-2+.99663553352430370495343916750051e-2*i]
[   .15944128005185490869364679165593-.85274283207050021877488448424359e-1*i]
[   .15944128005185490869364679165593+.85274283207050021877488448424359e-1*i]
[   .20426618937097621823908773845434-.25941634661274565261539763451475e-1*i]
[   .20426618937097621823908773845434+.25941634661274565261539763451475e-1*i]
[   .21010750883153466004161645791375+.65600318105008557764499433368190e-1*i]
[   .21010750883153466004161645791375-.65600318105008557764499433368190e-1*i]
[      .56125814802840279002360934818837-.20317146110219137538628231997514*i]
[      .56125814802840279002360934818837+.20317146110219137538628231997514*i]
[                                        -.24170696082375642684110818367970e-3]
[      .49331649688815696233713904602841-3.2168218254962241651508083638211*i]
[      .49331649688815696233713904602841+3.2168218254962241651508083638211*i]
[      .82678228176581688537582884465577+3.1880199682255099547696403881248*i]
[      .82678228176581688537582884465577-3.1880199682255099547696403881248*i]
[      .59946921490619215586880943949833-5.9381569398808699598817474505470*i]
[      .59946921490619215586880943949833+5.9381569398808699598817474505470*i]
[      .93488468355630039919695309834150+5.9282690191165010464182576577323*i]
[      .93488468355630039919695309834150-5.9282690191165010464182576577323*i]
[      .90231859851227803161072302527373-1.3650513072661349066090988765904*i]
[      .90231859851227803161072302527373+1.3650513072661349066090988765904*i]
[                                          1.0806275044714100160128208256192]
x2 =
[                                     -1094.3708398628937177957257148031]
[ -928.91111813914449747550130921879-328.64862187341210613890671220235*i]
[ -928.91111813914449747550130921879+328.64862187341210613890671220235*i]
[                                     -596.60766455608992525570175078249]
[ -515.93637209845740034161916099521-502.63037373643738677564584335005*i]
[ -515.93637209845740034161916099521+502.63037373643738677564584335005*i]
[ -205.14131330357184563514579220979-1173.5413456163890677536691853223*i]
[ -205.14131330357184563514579220979+1173.5413456163890677536691853223*i]
[ -109.64106788457515451339778164469-479.89323462767405926523827876392*i]
[ -109.64106788457515451339778164469+479.89323462767405926523827876392*i]
[ -82.677021240635624562009061848078-497.02899843879017588596084414572*i]
[ -82.677021240635624562009061848078+497.02899843879017588596084414572*i]




[                                    918.29588858970104219575926307036]










[                                    2532.9616503744096517298210681707]
x3 =
[                                     -539.87822964285722559966803197515]
[ -409.24314811140987560445980426905-283.13408512311607986237739490483*i]
[ -409.24314811140987560445980426905+283.13408512311607986237739490483*i]
[                                    55.592256204641943883740205883717]
[ -114.15308056655203253019401592202-121.38572753398684565370191138735*i]
[ -114.15308056655203253019401592202+121.38572753398684565370191138735*i]
[ -207.30589978290126636425198851216-609.14884788386278498868013477010*i]
[ -207.30589978290126636425198851216+609.14884788386278498868013477010*i]








[                                    353.44326875489354002893690523695]










[                                    1948.9242951031450517544077418326]
x4 =
[                                    433.29351689619606540032221065890]


[                                     -1706.7861444611859890502355056357]
[ -299.49647832972331975250394334881-955.12731894817781242086006226301*i]
[ -299.49647832972331975250394334881+955.12731894817781242086006226301*i]


[ -909.24506355790081250811457055235+576.91871668852289954629893247474*i]
[ -909.24506355790081250811457055235-576.91871668852289954629893247474*i]
[ -1249.9432958950233480242532909331-266.70664396120284838124014372210*i]
[ -1249.9432958950233480242532909331+266.70664396120284838124014372210*i]
[ -761.98163292466694549397258162880-1102.9376313116227118240565875193*i]
[ -761.98163292466694549397258162880+1102.9376313116227118240565875193*i]
[ -3079.7844715881903112371597379332+624.71868006130084371178169581028*i]
[ -3079.7844715881903112371597379332-624.71868006130084371178169581028*i]
[                                    1201.4583621070196369761216993385]
[ -4614.4591555966893821645041851111+3979.9432194229282366037635942084*i]
[ -4614.4591555966893821645041851111-3979.9432194229282366037635942084*i]


[ -6416.7521288178100536162870332499-4891.5296555873535558076371916425*i]
[ -6416.7521288178100536162870332499+4891.5296555873535558076371916425*i]


[ -2419.7444830892993613142385548067-5009.3971595925367904676822801444*i]
[ -2419.7444830892993613142385548067+5009.3971595925367904676822801444*i]
[                                    4453.3115895271891674318450653855]

好像包含你给出的解,请问如何剔除复数解?

neuzq 发表于 2007-5-14 13:53

是不是都不在啊???没有人回复

sffei 发表于 2007-5-14 15:41

用subs转成数值,在参考这个帖子
http://forum.vibunion.com/forum/viewthread.php?tid=42320&highlight=%CC%D8%D5%F7%D6%B5
页: [1]
查看完整版本: 如何求解这个方程组?