forcal 发表于 2011-1-16 09:58

复数方程(组)求解

一个复数对应2个实数。目前,Forcal中虽然没有专门求解复数方程(组)的函数,但可以借助实数算法来求解。

例子1:求实数方程复数域内的全部解:x^3+2*x*x+10*x-20=0;

本例若用isolve求解,只能获得实数解:
!using["fcopt"];
f(x)=2*x^6-x^3+2*x*x+10*x-20;
isolve;

-1.543029953303134        7.105427357601002e-015
1.221035549850575         3.552713678800501e-015

用solve求解方程组,可获得复数解(需要多次求解,与实数解比较,获得复数解):
!using["fcopt"];
c: cf(x,y)= y=2*x^6-x^3+2*x*x+10*x-20;
cc(x,y,y1,y2)= cf(x,y,&y1,&y2);
solve;

1.221035549850575         2.559801991936669e-027    2.51214793389404e-015
0.8999326566465651        1.099717348577194         3.76822190084106e-015
0.8999326566465653        -1.099717348577193        7.944109290391274e-015
-1.543029953303134        1.782340001805797e-016    1.560233745709171e-014
-0.738935454920286        -1.443073377091521        2.161031364628563e-014
-0.738935454920286        1.443073377091521         2.369955620929136e-014

forcal 发表于 2011-1-16 10:00

本帖最后由 forcal 于 2011-1-17 20:28 编辑

例子2:求复数方程组:
(2+5i)*x1-x2^(2-3i)-exp(-x1)=0
-(x1^3)+x1*x2-exp(-x2)=0

代码:
!using["fcopt"];
c: cf(x1,x2,y1,y2)=
{
  y1=(2+5i)*x1-x2^(2-3i)-exp(-x1),
  y2=-(x1^3)+x1*x2-exp(-x2)
};
cc(x11,x12,x21,x22,y11,y12,y21,y22)= cf(x11,x12,x21,x22,&y11,&y12,&y21,&y22);
solve;

结果(多次求解,每组最后一个是误差):
0.350403406122754         -0.2581172046401702       0.9031492305415151        0.2062068702236727        3.500829247998799e-014

8.343862612128539e-002    -0.1745973157301181       0.3407059687466865        -3.686653995029365        1.014802625489917e-011

-2.866006054280364e-002   -1.195892184488039e-002   1.330587481557424         -8.406178015373364        1.344455731312484e-011

0.3248221986204087        -0.8164562030925229       8.588879599246295e-002    0.2894415311777754        3.570823474245571e-011

8.663773118603429e-003    5.927370162144334e-002    2.009821712522968         -0.9744617637719372       1.073856633613092e-010

0.1575094449966286        -6.233406303049387e-003   -0.5428160523568441       -10.90400468060007        1.542485713397894e-013

0.5108186106709388        0.8884343740105763        -3.912183017503166e-002   1.868542038988761e-002    4.891644231048831e-012

-1.000140126356298        4.481460412883024e-005    -2.935625999646882e-002   4.580361872777336e-003    1.741254712865244e-012

结果可能不全,欢迎大家补充。

李——建辉 发表于 2012-1-21 20:15

支持一,下楼主辛苦了         103787

liupeng723911 发表于 2012-12-24 00:15

好帖还是要收藏,请继续

发表于 1970-1-1 08:00

页: [1]
查看完整版本: 复数方程(组)求解