数运算法则有:加减法、乘除法,乘积,商,次幂,n次方根,指数,对数,正弦,余弦,模和幅角。两个复数的和依然是复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。复数的加法满足交换律和结合律。此外,复数作为幂和对数的底数、指数、真数时,其运算规则可由欧拉公式e^iθ=cos θ i sin θ(弧度制)推导而得。
加法法则
复数的加法按照以下规定的法则进行:设z1=a bi,z2=c di是任意两个复数,
则它们的和是 (a bi) (c di)=(a c) (b d)i。
两个复数的和依然是复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。
复数的加法满足交换律和结合律,
即对任意复数z1,z2,z3,有: z1 z2=z2 z1;(z1 z2) z3=z1 (z2 z3)。
减法法则
复数的减法按照以下规定的法则进行:设z1=a bi,z2=c di是任意两个复数,
则它们的差是 (a bi)-(c di)=(a-c) (b-d)i。
两个复数的差依然是复数,它的实部是原来两个复数实部的差,它的虚部是原来两个虚部的差。
乘法法则
规定复数的乘法按照以下的法则进行:
设z1=a bi,z2=c di(a、b、c、d∈R)是任意两个复数,那么它们的积(a bi)(c di)=(ac-bd) (bc ad)i。
其实就是把两个复数相乘,类似两个多项式相乘,展开得: ac adi bci bdi2,因为i2=-1,所以结果是(ac-bd) (bc ad)i 。两个复数的积仍然是一个复数。
在极坐标下,复数可用模长r与幅角θ表示为(r,θ)。对于复数a bi,r=√(a² b²),θ=arctan(b/a)。此时,复数相乘表现为幅角相加,模长相乘。
除法法则
复数除法定义:满足(c di)(x yi)=(a bi)的复数x yi(x,y∈R)叫复数a bi除以复数c di的商。
运算方法:可以把除法换算成乘法做,在分子吃鸡辅助卡盟网站分母同时乘上分母的共轭。所谓共轭你可以理解为加减号的变换,互为共轭的两个复数相乘是个实常数。
除法运算规则:
①设复数a bi(a,b∈R),除以c di(c,d∈R),其商为x yi(x,y∈R),
图1 分母实数化
即(a bi)÷(c di)=x yi
∵(x yi)(c di)=(cx-dy) (dx cy)i
∴(cx-dy) (dx cy)i=a bi
由复数相等定义可知 cx-dy=a dx cy=b
解这个方程组,得 x=(ac bd)/(c2 d2) y=(bc-ad)/(c2 d2)
于是有:(a bi)/(c di)=(ac bd)/(c2 d2) (绝地求生外挂(bc-ad)/(c2 d2))i
接下来利用C 编出最会计的计算方法。计算代码如下:
//复数的运算类#include # includeusing namespace std;//复数的计算类class complex{private:double R;//复数的实部 double I;//复数的虚部public:complex(double real=0,double image=0) //构造函数 {R=real;I=image;}void print()//复数输出{cout<<\"(\"<<R<<\",\"<<I<<\")\" ; //输出为(R,I)return ; } double Cabs()//复数的模 {double y;y=sqrt(R*R I*I);return 0;}double angle()//复数幅角 {double y;y=atan2(I,R);return y;}complex operator (complex& c2)//复数加法;重载运算符 {complex c;c.R=R c2.R;c.I=I c2.I;return c;}complex operator – (complex& c2)//复数减法;重载运算符-{complex c;c.R=R-c2.R;c.I=I-c2.I;return c;}complex operator * (complex& c2)//复数乘法;重载运算符 *{complex c;double p,q,s;p=R*c2.R;q=I*c2.I;s=(R I)*(c2.R c2.I);c.R=p-q;c.I=s-p-q;return c;}complex operator / (complex& c2)//复数除;重载运算符 /{complex c;double p,q,s,w;p=R*c2.R;q=-I*c2.I;s=(R I)*(c2.R-c2.I);w=(c2.R)*(c2.R) (c2.I)*(c2.I);if(w 1.0 !=1.0){c.R=(p-q)/w;c.I=(s-p-q)/w;}else {c.R=1e 300;c.I=1e 300;}return c;}complex Power(int n)//复数乘幂{complex c;double r,q;q=atan2(I,R);r=sqrt(R*R I*I );if(r 1.0 !=1.0){r=n*log(r);r=exp(r);}c.R =r*cos(n*q);c.I =r*sin(n*q);return c;} void Root(int n,complex *p)//复数的 n 次方根{complex c;int k;double r,q,t;if(n<1)return ;q=atan2(I,R);r=sqrt(R*R I*I);if(r 1.0 !=1.0){r=(1.0/n)*log(r);r=exp(r);}for(k=0;k<n;k ){t=(2.0*k*3.1415926987 q)/n;c.R=r*cos(t);c.I=r*sin(t);p[k]=c;} } complex Exp()//复数指数{complex c;double p;p=exp(R);c.R=p*cos(I);c.I=p*sin(I);return c;} complex Log()//复数对数{complex c;double p;p=R*R I*I;p=log(sqrt(p));c.R =p;c.I =atan2(I,R);return c;} complex Sin()//复数正弦{complex c;double p,q;p=exp(I);q=exp(-I);c.R =sin(R)*(p q)/2;c.I =cos(R)*(p-q)/2;return c;} complex Cos()//复数余弦{complex c;double p,q;p=exp(I);q=exp(-I);c.R =cos(R)*(p q)/2;c.I =-sin(R)*(p-q)/2;return c;} } ;
接下来对复数进行实力计算,在计算的过程中充分利用类的使用
//实例计算 #include#include#include\”复数运算类.h\”using namespace std;int main(){int i;double a,b;complex c1,c2,c3,c,p[5];cin>>a>>b; //输入c1的实部和虚部 c1=complex(a,b); cout<<\"c1=\"; c1.print(); couta>>b; //输入c2的实部和虚部 c2=complex(a,b); cout<<\"c2=\"; c2.print(); couta>>b; //输入c2的实部和虚部 c3=complex(a,b); cout<<\"c3=\"; c3.print(); cout<<endl;c=c1 c2;cout<<\"c1 c2=\"; c.print();cout<<endl; c=c1-c2;cout<<\"c1-c2=\"; c.print();cout<<endl; c=c1*c2;cout<<\"c1*c2=\"; c.print();cout<<endl;c=c1/c2;cout<<\"c1/c2=\"; c.print();cout<<endl;c=c3.Power(-3);cout<<\"c3的-5次方=\"; c.print();cout<<endl;cout<<\"c3的8次方为:\"<<endl;c3.Root(8,p);for(i=0;i<8;i ){p[i].print();cout<<endl;} c=c3.Exp();cout<<\"exp(c3)=\";c.print();cout<<endl;c=c3.Log();cout<<\"log(c3)=\";c.print();cout<<endl;c=c3.Sin();cout<<\"sin(c3)=\";c.print();cout<<endl;c=c3.Cos();cout<<\"cos(c3)=\";c.print();cout<<endl;return 0;}
其中第一行为键盘输入
则,计算结果为:
复数的运算执行结果