复数的基本运算(C语言)
复数的基本运算与性质

复数的基本运算与性质复数是数学中一种重要的数形式,由实部和虚部组成。
在复数系统中,我们可以进行加法、减法、乘法和除法等基本运算。
本文将介绍复数的基本运算与性质,帮助读者理解和应用复数。
一、复数的定义复数是由实数和虚数构成的数,通常以"a+bi"的形式表示,其中a 是实部,b是虚部,i是虚数单位。
二、复数的加法与减法1. 加法:将两个复数的实部分别相加,虚部分别相加,得到它们的和。
例如:(a+bi) + (c+di) = (a+c) + (b+d)i2. 减法:将两个复数的实部分别相减,虚部分别相减,得到它们的差。
例如:(a+bi) - (c+di) = (a-c) + (b-d)i三、复数的乘法与除法1. 乘法:将两个复数的实部和虚部运用分配律相乘,再结合虚数单位的平方等于-1,得到它们的乘积。
例如:(a+bi)(c+di) = (ac-bd) + (ad+bc)i2. 除法:将两个复数的实部和虚部运用分配律相除,再结合虚数单位的平方等于-1,得到它们的商。
例如:(a+bi)/(c+di) = ((ac+bd)/(c^2+d^2)) + ((bc-ad)/(c^2+d^2))i复数的乘法和除法的计算过程较繁琐,可以通过将复数化为三角形式或指数形式来简化计算。
四、复数的性质1. 复数的加法满足交换律和结合律,即对于任意的复数a、b、c,有:a+b = b+a(a+b)+c = a+(b+c)2. 复数的乘法满足交换律和结合律,即对于任意的复数a、b、c,有:a*b = b*a(a*b)*c = a*(b*c)3. 复数的乘法满足分配律,即对于任意的复数a、b、c,有:a*(b+c) = a*b + a*c4. 对于一个复数a+bi,若a和b都为0,则该复数为零复数,记作0+0i。
5. 对于一个复数a+bi,若a为0且b不为0,或a不为0且b为0,则该复数为纯虚数。
6. 对于一个复数a+bi,若a不为0且b不为0,则该复数既有实部又有虚部,为非零复数。
复数的运算

回顾总结
1.复数的四则运算; 2.复数运算的乘方形式; 3.共轭复数的相关运算性质; 4.复数运算中的常用结论。
如你看后满意,请把此页面删掉,以免打扰你正常使用,我们万分感谢!
本站敬告: 一、本课件由“半岛教学资源( :// 228668 )”提供下载, 官网是 :// zjbandao ,网站创办人杨影,真名实姓,绝不虚假,系广东 省徐闻县徐城中学语文教师,兼任电脑课,拥有多年网站和课件制作经验,欢迎查实。 二、此课件为作者原作,如你看后有不满意的地方,我们提供专业技术修改,具体如下: 1、修改最低起点15元,负责给你修改4个以内页面,24小时内完成,不完成全额退款; 2、修改4个页面以上的,每加1个页面收5元,插入你发来图片并制作动画特效每张1元; 3、帮你制作一个动画或一个FLASH按钮并插入你指定的页面内收10元; 4、帮你把一个音频或视频文件剪成一个或几个并插入你指定的页面内并制特效收10元。 三、成交方法: 1、根据上面第二点的4个小点,算下你的修改要多少钱,然后付款,付款方法有二: 1)网上在线付款:在我们的网站 :// 228668 或 :// zjbandao 里注册会员后登录进会员中心在线付款到我们网站里; 2)银行汇款:到银行柜台转账或汇款,开户行:工商银行,账号:9558 8220 1500 0448136 收款人:杨影 2、把你要修改的课件发到我们的邮箱228668338@qq 或mmzwzy@139 里,并 在邮件里写明你在我们网站里的会员账号和付款是多少钱,以便我们查询。 3、把你要修改的要求写在发来的邮件里,如果需要我们帮剪辑音频或视频文件的,要 把文件一并发来,要插入图片的也要把图片发来(我们不提供找图片服务)。 四、加急请联系: 13030187488,QQ228668338 ,短信:13692343839 五、温馨提示:请在修改要求中尽可能详细的说明你的要求,我们做好发给你后只给你 提供一次重改机会,因你说明不清楚造成要修改第三次的,要补交半数费用。
复数的基本运算公式

复数的基本运算公式复数是由实数和虚数构成的数学概念,在高中数学中被广泛应用。
复数的运算是高中数学的重要内容之一,其基本运算公式包括加法、减法、乘法和除法。
本文将详细介绍这些基本运算公式,并给出相应的实例,以帮助读者更好地理解和掌握复数的基本运算。
一、复数的加法复数的加法是指将两个复数相加得到一个新的复数,其基本公式如下:(a+bi) + (c+di) = (a+c) + (b+d)i其中,a、b、c、d均为实数,i为虚数单位,表示-1的平方根。
这个公式的实现方法相当简单,只需要将两个复数的实部(即a和c)相加,并将虚部(即b和d)相加即可。
例如,将复数(3+2i)和(4-5i)相加,运用上述公式,可以得到结果为(7-3i)。
二、复数的减法复数的减法与加法类似,只是将两个复数相减,其基本公式如下:(a+bi) - (c+di) = (a-c) + (b-d)i同样,实现方法也很简单,只需要将两个复数的实部相减,并将虚部相减即可。
举个例子,将复数(6-5i)减去(3+2i),使用上述公式,可以得到结果为(3-7i)。
三、复数的乘法复数的乘法是将两个复数相乘得到一个新的复数,其基本公式如下:(a+bi)×(c+di) = (ac-bd)+(ad+bc)i其中,a、b、c、d均为实数,i为虚数单位。
推导这个公式较为复杂,因此我们直接给出一个例子:将复数(2+3i)和(4-5i)相乘,运用上述公式,可以得到结果为(23-2i)。
四、复数的除法复数的除法是将一个复数除以另一个复数得到一个新的复数,其基本公式如下:(a+bi)÷(c+di) = [(ac+bd)+(bc-ad)i]÷(c²+d²)需要注意的是,作为除数的复数不能为0。
另外,需要将分子和分母同时乘以(c-di),再根据公式进行简化。
例如,将复数(1+2i)除以(3+4i),运用上述公式,可以得到结果为(11-2i)÷25。
使用函数计算两个复数之积c语言

标题:使用C语言计算两个复数之积的函数一、概述复数是数学中的一个重要概念,它包括实部和虚部。
在实际工程项目中,我们经常需要进行复数运算,特别是计算两个复数的乘积。
本文将介绍如何使用C语言编写函数来计算两个复数的乘积。
二、复数的表示1. 复数的表示形式复数可以用a+bi的形式表示,其中a为实部,b为虚部,i为虚数单位。
2. C语言中的复数表示在C语言中,通常使用结构体来表示复数。
一个典型的复数结构体可以定义如下:```ctypedef struct {double real; // 实部double imag; // 虚部} Complex;```三、计算两个复数的乘积计算两个复数的乘积可以分为两个步骤:实部相乘减去虚部相乘得到新的实部,实部相乘再加上虚部相乘得到新的虚部。
具体的计算过程如下:```cComplex multiply(Complex c1, Complex c2) {Complex result;result.real = c1.real * c2.real - c1.imag * c2.imag; // 新的实部 result.imag = c1.real * c2.imag + c1.imag * c2.real; // 新的虚部return result;}```四、示例下面我们通过一个示例来演示如何使用上面定义的multiply函数来计算两个复数的乘积。
```c#include <stdio.h>int m本人n() {Complex c1 = {3.0, 4.0}; // 3+4iComplex c2 = {5.0, 6.0}; // 5+6iComplex result = multiply(c1, c2);printf("The product of f+fi and f+fi is f+fi\n", c1.real, c1.imag, c2.real, c2.imag, result.real, result.imag);return 0;}```五、总结本文介绍了如何使用C语言编写函数来计算两个复数的乘积。
运用C语言编写复数的四则运算

运用C语言编写复数的四则运算一、需求分析1.设计一个可进行复数运算的演示程序2.实现以下六种基本运算:〔1〕由于输入的实部和虚部生成一个复数;〔2〕两个复数求和;〔3〕两个复数求差;〔4〕两个复数求积;〔5〕从已知复数中别离出虚部。
运算结果一相应的复数或实数的表示形式显示。
3.程序执行的命令包括:4.〔1〕建立一个复数,然后根据提示用户输入两个复数,使得能同时进行两个复数的加.减.乘运算。
(2)输入形式和输入值得范围:分别输入两个复数,其格式为:a+bi用enter结束输入。
(3)输出形式:按程序规定输出其运算值。
如:运算后只有实数时只输出实数虚部部分不表示,反之一样〔1〕0,0;0,0;应输出“0”〔2〕3.1,0;4.22, 8.9; 应输出“7.32+i8.9”(3)-1.33, 2.34; 0.1, -6.5; 应输出“-1.23-i4.16”(4)0, 9.7; -2.1, -9.7;应输出“-2.1”(5)7.7,-8;-7.7,0;应输出“-i8”二.概要分析1.为实现上述程序的功能,需要定义一个表示复数的抽象数据类型。
2.本程序包含的函数:〔1〕主函数main〔〕;(2)构造函数typedef struct〔〕;(3)调用函数Complex createComplex(float a,float b)Complex add(Complex z1,Complex z2)Complex jian(Complex z1,Complex z2)Complex cheng(Complex z1,Complex z2)void printComplex(Complex z);各函数关系如下:(5)主函数伪代码main( ){说明一个构造函数Complex;定义两个实数和虚数分别为z1,z2;提示输入实数和虚数z1,z2;调用子函数;提示输入+ - *;根据输入的符号判断输入的复数做何运算{输入+时,调用加法子函数,打印输出;输入-时,调用加法子函数,打印输出;输入*时,调用加法子函数,打印输出;}}三.详细设计1.主函数及其他函数#include<stdio.h>#include<math.h>typedef struct{float re;float im;} Complex;Complex createComplex(float a,float b) //编写一个函数生成复数// {Complex z;z.re=a;z.im=b;return z;}void printComplex(Complex z) //输出复数并控制其格式// {if(z.re==0&&z.im==0)printf("0\n");else if(z.re!=0&&z.im==0)printf("%.2f\n",z.re);else if(z.re==0&&z.im!=0){if(z.im>0)printf("i%.2f\n",z.im);else if(z.im<0)printf("-i%.2f\n",fabs(z.im));}else{if(z.im>0)printf("%.2f+i%.2f\n",z.re,z.im);elseprintf("%.2f-i%.2f\n",z.re,fabs(z.im));}}Complex add(Complex z1,Complex z2){Complex z;z.re=z1.re+z2.re;z.im=z1.im+z2.im;return z;}Complex jian(Complex z1,Complex z2){Complex z;z.re=z1.re-z2.re;z.im=z1.im-z2.im;return z;}Complex cheng(Complex z1,Complex z2) {Complex z;z.re=z1.re*z2.re-z1.im*z2.im;z.im=z1.re*z2.im+z1.im*z2.re;return z;}main(){float a,b,c,d;Complex z1,z2,c1,c2,c3;printf("请输入元素");scanf("%f%f%f%f",&a,&b,&c,&d); //输入元素并调用函数生成复数z1,z2;并输出//z1=createComplex(a,b);z2=createComplex(c,d);printf("产生的两个复数为:");printComplex(z1);printComplex(z2);c1=add(z1,z2);c2=jian(z1,z2);c3=cheng(z1,z2);printf("这两个复数的和差积:");printComplex(c1);printComplex(c2);printComplex(c3);}四.调试及分析1.由于开始对于结构体使用并不熟悉,使用时语法错误很多,需要多加使用。
§2 复数的四则运算

()
A.1-2i
B.2-i
C.2+i 答案:D
D.1+2i
5.若x-2+yi和3x-i互为共轭复数,则实数x=______,y=
________.
答案:-1 1
考点一 复数的加减运算 [典例] 计算:(1)(1+2i)+(3-4i)-(5+6i); (2)5i-[(3+4i)-(-1+3i)];
(3)(a+bi)-(2a-3bi)-3i(a,b∈R ). [解] (1)(1+2i)+(3-4i)-(5+6i) =(4-2i)-(5+6i)=-1-8i. (2)5i-[(3+4i)-(-1+3i)]=5i-(4+i)=-4+4i. (3)(a+bi)-(2a-3bi)-3i=(a-2a)+[b-(-3b)-3]i=-a +(4b-3)i.
2+ 2i34+5i (2) 5-4i1-i . 解:(1)(4-i5)(6+2i7)+(7+i11)(4-3i)
=(4-i)(6-2i)+(7-i)(4-3i)
=24-8i-6i-2+28-21i-4i-3
=47-39i.
(2)
25+-42ii31-4+i5i=2
二、基本技能·素养培优
1.判断(正确的打“√”,错误的打“×”)
(1)复数与向量一一对应. (2)复数与复数相加减后结果只能是实数.
(×)Байду номын сангаас(× )
(3)因为虚数不能比较大小,所以虚数的模也不能比较大小.
(× )
(4)两个共轭复数的差为纯虚数.
(√ )
(5)若z1,z2∈C,且z21+z22=0,则z1=z2=0.
4.共轭复数 当两个复数的 实部 相等,虚部 互为相反数时,这样的两个
复数叫做共轭复数 .复数z的共轭复数用 z 来表示,也就是当z= a+bi时, z = a-bi .于是z z =a2+b2= |z|2 .
C语言复数的运算

C语言复数的运算实验名称:C语言复数的运算实验目的:1.理解复数的概念及其在数学上的运算规则;2.掌握在C语言中实现复数运算的方法;3.通过编写程序实现复数加减乘除等运算。
实验原理:复数是由实部和虚部组成的数字,可表示为 a + bi,其中a为实部,b为虚部。
复数的运算包括加法、减法、乘法和除法四种基本运算。
1.复数的加法:两个复数a1+b1i和a2+b2i的和为(a1+a2)+(b1+b2)i。
2.复数的减法:两个复数a1+b1i和a2+b2i的差为(a1-a2)+(b1-b2)i。
3.复数的乘法:两个复数a1+b1i和a2+b2i的乘积为(a1a2-b1b2)+(a1b2+a2b1)i。
4.复数的除法:两个复数a1+b1i和a2+b2i的商为[(a1a2+b1b2)/(a2^2+b2^2)]+[(a2b1-a1b2)/(a2^2+b2^2)]i。
实验器材:计算机、C语言编译器。
实验步骤:2. 在源文件中引入头文件<math.h>,该头文件包含了数学函数的声明和宏定义。
3.定义一个复数的结构体,包括实部和虚部两个成员变量。
```cdouble real; // 实部double imag; // 虚部```4.编写函数实现复数加法运算。
```cresult.real = c1.real + c2.real;result.imag = c1.imag + c2.imag;return result;```5.编写函数实现复数减法运算。
```cresult.real = c1.real - c2.real;result.imag = c1.imag - c2.imag;return result;```6.编写函数实现复数乘法运算。
```cresult.real = c1.real * c2.real - c1.imag * c2.imag;result.imag = c1.real * c2.imag + c2.real * c1.imag;return result;```7.编写函数实现复数除法运算。
复数的运算法则

复数运算公式
复数z=a+bi,(a,b均为R),但a,b不可同为0,否则z=o为实数i是虚数,i的平方为-1,你可以将i看为一个字母,遇到i的平方就变为-1 例如(a+bi)(c+di)=ac+adi+bci-bd=(ac-bd)+(ad+bc)其实就是有i的放一起运算,没i的放一起运算复数之间不可以比较大小,能比较大小的一定为实数,如果有a+bi&c+di &为等于,大于,小于之类的那么就有b=d=0,然后a&c 用向量表示复数时,就是向量(a,b)表示复数a+bi.
1.加法法则:复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的和是(a+bi)+(c+di)=(a+c)+(b+d)i。
2.减法法则:复数的减法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的差是(a+bi)-(c+di)=(a-c)+(b-d)i。
3.乘法法则:规定复数的乘法按照以下的法则进行:设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i。
4.除法法则:复数除法定义:满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商。
复数的运算公式

复数的运算公式复数的四则运算公式:加减法运算:(a+bi)±(c+di)=(a±c)+(b±d)i乘法运算:(a+bi)(c+di)=(ac-bd)+(bc+ad)i除法运算:(c+di)(x+yi)=(a+bi)了解复数的运算公式之前,应该先明白复数的定义,在定义的基础上理解、运用复数的运算公式。
一、复数的定义复数是形如a+bi的数。
式中a,b为实数,i是一个满足i=-1的数,因为任何实数的平方不等于-1,所以i不是实数,而是实数以外的新的数。
在复数a+bi中,a称为复数的实部,b称为复数的虚部,i称为虚数单位。
当虚部等于零时,这个复数就是实数;当虚部不等于零时,这个复数称为虚数,虚数的实部如果等于零,则称为纯虚数。
由上可知,复数集包含了实数集,因而是实数集的扩张。
复数常用形式z=a+bi叫做代数式。
二、复数的四则运算公式加减法运算设z1=a+bi,z2=c+di是任意两个复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和:(a+bi)±(c+di)=(a±c)+(b±d)i。
乘法运算设z1=a+bi,z2=c+di是任意两个复数,则:(a+bi)(c+di)=(ac-bd)+(bc+ad)i。
其实就是把两个复数相乘,类似两个多项式相乘,结果中i=-1,把实部与虚部分别合并。
两个复数的积仍然是一个复数。
除法运算复数除法定义:满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商。
运算方法:可以把除法换算成乘法做,将分子分母同时乘上分母的共轭复数,再用乘法运算。
例:求(a+bi)/(c+di)我们设结果为x+yi只需解方程(a+bi)=(c+di)(x+yi)即可也就是方程组cx-dy=a cy+dx=b解得x=(ac+ba)/(c+d) y=(bc-ad)/(c+d)三、小结总的来说,复数的基本运算很简单,把它当做是关于i的多项式进行计算即可。
2.1 复数的加法与减法2.2 复数的乘法与除法(1)

§2 复数的四则运算 2.1 复数的加法与减法 2.2 复数的乘法与除法(1)1.复数的加法与减法运算法则 (a +b i)+(c +d i)=(a +c )+(b +d )i ; (a +b i)-(c +d i)=(a -c )+(b -d )i . 复数的加法满足交换律、结合律,即对任意的复数z 1、z 2、z 3∈C ,都有z 1+z 2=z 2+z 1(交换律),(z 1+z 2)+z 3=z 1+(z 2+z 3)(结合律).(1)类比平面向量加、减运算理解复数的加法与减法的运算.(2)类比平面向量加、减运算的几何意义可得出复数加、减运算的几何意义. 2.复数的乘法设a +b i 与c +d i 分别是任意两个复数,(1)定义:(a +b i)(c +d i)=(ac -bd )+(ad +bc )i . (2)运算律: 交换律:z 1·z 2=z 2·z 1. 结合律:(z 1·z 2)·z 3=z 1·(z 2·z 3). 分配律:z 1(z 2+z 3)=z 1z 2+z 1z 3. 3.共轭复数(1)定义:当两个复数的实部相等,虚部互为相反数时,这样的两个复数叫作互为共轭复数.复数z 的共轭复数用z -__表示,即若z =a +b i(a ,b ∈R ),则z -=a -b i .(2)性质:z ·z -=|z |2=|z -|2.判断下列说法是否正确.(在题后标注“√”或“×”) (1)两个共轭复数的和与积是实数.( )(2)复数的减法不满足结合律,即(z 1-z 2)-z 3=z 1-(z 2+z 3)可能不成立.( )(3)若|z +1|=1,则复数z 对应的点的轨迹是以(1,0)为圆心,以1为半径的圆.( ) (4)复数加减乘的混合运算法则是先乘,后加减.( ) 答案:(1)√ (2)× (3)× (4)√ (1+i)(2+i)=( ) A .1-i B .1+3i C .3+i D .3+3i 解析:选B.依题意得(1+i)(2+i)=2+i 2+3i =1+3i ,选B. 设f (x )=|z |,z 1=3+4i ,z 2=-2-i ,则f (z 1-z 2)=( )A.10 B .5 5 C. 2D .5 2解析:选D.因为z 1-z 2=5+5i , 所以f (z 1-z 2)=f (5+5i)=|5+5i|=5 2.若复数z 满足z =i(2-z )(i 是虚数单位),则z =________. 解析:设z =a +b i(a ,b ∈R ), 则a +b i =i(2-a -b i)=b +(2-a )i ,由复数相等的定义,得⎩⎪⎨⎪⎧a =b ,b =2-a .所以a =b =1,即z =1+i. 答案:1+i1.对复数加减法的理解(1)把复数的代数形式看成关于“i”的多项式,则复数的加法、减法运算,类似于多项式的加法、减法运算,只需要“合并同类项”就可以了.(2)复数的加减法中规定,两复数相加减,是实部与实部相加减,虚部与虚部相加减,复数的加减法可推广到多个复数相加减的情形.(3)两个复数的和(差)是复数,但两个虚数的和(差)不一定是虚数.例如,(3-2i)+2i =3.2.对复数乘法的理解(1)复数的乘法与多项式乘法是类似的,有一点不同即必须在所得结果中把i 2换成-1,再把实部、虚部分别合并.(2)两个复数的积仍然是一个复数,可推广到任意多个复数的积仍然是一个复数.复数的加、减法运算计算:(1)(-2+3i)+(5-i); (2)(-1+2i)+(1+2i);(3)(a +b i)-(2a -3b i)-3i(a ,b ∈R ).【解】 (1)(-2+3i)+(5-i)=(-2+5)+(3-1)i =3+2i. (2)(-1+2i)+(1+2i)=(-1+1)+(2+2)i =22i. (3)(a +b i)-(2a -3b i)-3i =(a -2a )+(b +3b -3)i =-a +(4b -3)i.解决复数加减运算的思路两个复数相加(减),就是把两个复数的实部相加(减),虚部相加(减).复数的减法是加法的逆运算,两个复数相减,也可以看成是加上这个复数的相反数.当多个复数相加(减)时,可将这些复数的所有实部相加(减),所有虚部相加(减).1.(1)(6-3i)-(3i +1)+(2-2i)的结果为( )A .5-3iB .3+5iC .7-8iD .7-2i(2)复数z =(3+2i)-7i ,其中i 是虚数单位,则复数z 的虚部是________.(3)已知z 1=(3x +y )+(y -4x )i ,z 2=(4y -2x )-(5x +3y )i(x ,y ∈R ),若z 1-z 2=13-2i ,求z 1,z 2.解:(1)选C.(6-3i)-(3i +1)+(2-2i) =(6-1)+(-3-3)i +(2-2i)=5+(-6)i +(2-2i)=(5+2)+(-6-2)i =7-8i.故选C.(2)z =(3+2i)-7i =3-5i ,虚部是-5.故填-5. (3)z 1-z 2=(3x +y )+(y -4x )i -[(4y -2x )-(5x +3y )i] =[(3x +y )-(4y -2x )]+[(y -4x )+(5x +3y )]i =(5x -3y )+(x +4y )i. 又因为z 1-z 2=13-2i , 所以(5x -3y )+(x +4y )i =13-2i.所以⎩⎪⎨⎪⎧5x -3y =13,x +4y =-2,解得⎩⎪⎨⎪⎧x =2,y =-1.所以z 1=(3×2-1)+(-1-4×2)i =5-9i , z 2=[4×(-1)-2×2]-[5×2+3×(-1)]i =-8-7i.复数的乘法运算计算:(1)(1+i)(1-i)+(-1+i); (2)⎝⎛⎭⎫-12+32i ⎝⎛⎭⎫32+12i (1+i); (3)(2+i)(1+2i)(2-i)-5i. 【解】 (1)(1+i)(1-i)+(-1+i) =1-i 2+(-1+i) =2-1+i =1+i.(2)⎝⎛⎭⎫-12+32i ⎝⎛⎭⎫32+12i (1+i) =⎣⎡⎦⎤⎝⎛⎭⎫-34-34+⎝⎛⎭⎫34-14i (1+i) =⎝⎛⎭⎫-32+12i (1+i) =⎝⎛⎭⎫-32-12+⎝⎛⎭⎫12-32i =-1+32+1-32i.(3)(2+i)(1+2i)(2-i)-5i =(2+i)(2-i)(1+2i)-5i =(4-i 2)(1+2i)-5i=5(1+2i)-5i =5+10i -5i =5+5i.(1)三个或三个以上的复数相乘,可按从左向右的顺序运算,或利用结合律运算.混合运算的顺序与实数的运算顺序一样.(2)平方差公式、完全平方公式等在复数范围内仍然成立.一些常见的结论要熟记:i 2=-1,(1±i)2=±2i.2.(1)下列各式的运算结果为纯虚数的是( )A .i(1+i)2B .i 2(1-i)C .(1+i)2D .i(1+i) (2)设(1+i)x =1+y i ,其中x ,y 是实数,则|x +y i|=( ) A .1B . 2C. 3 D .2解析:(1)选C.i(1+i)2=i·2i =-2,不是纯虚数,排除A ;i 2(1-i)=-(1-i)=-1+i ,不是纯虚数,排除B ;(1+i)2=2i ,2i 是纯虚数.故选C.(2)选B.因为(1+i)x =x +x i =1+y i ,所以x =y =1,|x +y i|=|1+i|= 12+12=2,选B.共轭复数(1)已知a ,b ∈R ,i 是虚数单位,若a -i 与2+b i 互为共轭复数,则(a +b i)2=( ) A .5-4i B .5+4i C .3-4i D .3+4i (2)把复数z 的共轭复数记作z -,已知(1+2i) z -=4+3i ,求z . 【解】 (1)选D.因为a -i 与2+b i 互为共轭复数, 所以a =2,b =1,所以(a +b i)2=(2+i)2=3+4i. (2)设z =a +b i(a ,b ∈R ), 则z -=a -b i ,由已知得:(1+2i)(a -b i)=(a +2b )+(2a -b )i =4+3i ,由复数相等的定义知,⎩⎪⎨⎪⎧a +2b =4,2a -b =3.得a =2,b =1, 所以z =2+i.共轭复数性质的巧用(1)z ·z -=|z |2=|z -|2是共轭复数的常用性质;(2)实数的共轭复数是它本身,即z ∈R ⇔z =z -,利用此性质可以证明一个复数是实数; (3)若z ≠0且z +z -=0,则z 为纯虚数,利用此性质可证明一个复数是纯虚数.3.(1)设复数z 满足z +i =3-i ,则z -=( )A .-1+2iB .1-2iC .3+2iD .3-2i(2)已知z ∈C ,z -为z 的共轭复数,若z ·z --3i z -=1+3i ,求z .解:(1)选C.易知z =3-2i ,所以z -=3+2i. (2)设z =a +b i(a ,b ∈R ), 则z -=a -b i(a ,b ∈R ),由题意得(a +b i)(a -b i)-3i(a -b i)=1+3i , 即a 2+b 2-3b -3a i =1+3i ,则有⎩⎪⎨⎪⎧a 2+b 2-3b =1,-3a =3,解得⎩⎪⎨⎪⎧a =-1,b =0或⎩⎪⎨⎪⎧a =-1,b =3.所以z =-1或z =-1+3i.易错警示把复数运算混淆为实数运算致误已知M ={z ||z +1|=1},N ={z ||z +i|=|z -i|},则M ∩N =________. 【解析】 利用复数的几何意义解决问题.在复平面内,|z +1|=1的几何意义是以点(-1,0)为圆心,以1为半径的圆. |z +i|=|z -i|的几何意义是到点A (0,1)和点B (0,-1)距离相等的点的集合,是线段AB 的垂直平分线,也就是x 轴.M ∩N 的几何意义是x 轴与圆的公共点对应的复数. 故z =0或z =-2. 所以M ∩N ={0,-2}. 【答案】 {0,-2}本题若混淆复数运算与代数运算的不同,则会错误地将集合M 和N 化简为M ={z |z +1=±1},N ={z |z +i =±(z -i)}从而造成解题错误.在复数运算中,若z =a +b i(a ,b ∈R ),则|z |=a 2+b 2,要注意与实数运算中的绝对值运算的区别.1.复数(1+i)2(2+3i)的值为( ) A .6-4i B .-6-4i C .6+4iD .-6+4i解析:选D.(1+i)2(2+3i)=2i(2+3i)=4i -6=-6+4i. 2.已知(x +i)(1-i)=y ,则( ) A .x =-1,y =1 B .x =-1,y =2 C .x =1,y =1 D .x =1,y =2解析:选D.由x ,y 为实数,且(x +i)(1-i)=y ,得x +1+(1-x )i =y ,所以⎩⎪⎨⎪⎧y =x +1,1-x =0.所以x =1,y =2.3.向量OA →对应的复数为-1+i ,OB →对应的复数为2+3i ,BC →对应的复数为-2+i ,则向量AC →对应的复数为________.解析:因为BC →=OC →-OB →,所以OC →=BC →+OB →,OC →对应的复数为(-2+i)+(2+3i)=4i , 又AC →=OC →-OA →,所以AC →对应的复数为4i -(-1+i)=1+3i. 答案:1+3i4.已知x ,y ∈R ,x 2+2x +(2y +x )i 和3x -(y +1)i 互为共轭复数,求复数z =x +y i 和z -.解:由已知得⎩⎪⎨⎪⎧x 2+2x =3x ,2y +x =y +1,解方程组得⎩⎪⎨⎪⎧x =0,y =1,或⎩⎪⎨⎪⎧x =1,y =0.所以z =i 或z =1,z -=-i 或z -=1.[A 基础达标]1.复平面内表示复数z =i(-2+i)的点位于( ) A .第一象限 B .第二象限 C .第三象限D .第四象限解析:选C.z =i(-2+i)=-2i +i 2=-1-2i ,故复平面内表示复数z =i(-2+i)的点位于第三象限,故选C.2.复数z 1=a +4i(a ∈R ),z 2=-3+b i(b ∈R ),若它们的和为实数,差为纯虚数,则( ) A .a =-3,b =-4 B .a =-3,b =4 C .a =3,b =-4 D .a =3,b =4解析:选A.由题意,可知z 1+z 2=(a -3)+(b +4)i 是实数,z 1-z 2=(a +3)+(4-b )i 是纯虚数,故⎩⎪⎨⎪⎧b +4=0a +3=04-b ≠0,解得a =-3,b =-4,故选A.3.若复数z 满足z +(2-3i)=-1+2i ,则z +2-5i 等于( ) A .-1 B .-1+10i C .1-6i D .1-10i 解析:选A.由z +(2-3i)=-1+2i , 得z =(-1+2i)-(2-3i)=-3+5i ,于是z +2-5i =(-3+5i)+(2-5i)=-1,故选A. 4.若z +z -=6,z ·z -=10,则z =( ) A .1±3i B .3±i C .3+iD .3-i解析:选B.设z =a +b i(a ,b ∈R ),则z -=a -b i ,所以⎩⎪⎨⎪⎧2a =6,a 2+b 2=10,解得a =3,b =±1,则z =3±i.5.设复数z 1,z 2在复平面内的对应点关于虚轴对称,z 1=2+i ,则z 1z 2等于( ) A .-5 B .5 C .-4+i D .-4-i 解析:选A.z 1=2+i ,由题意,z 2=-2+i , 所以z 1·z 2=(2+i)(-2+i)=i 2-4=-5.故选A.6.设z 1=x +2i ,z 2=3-y i(x ,y ∈R ),且z 1+z 2=5-6i ,则z 1-z 2=________. 解析:因为z 1=x +2i ,z 2=3-y i ,z 1+z 2=5-6i , 所以(3+x )+(2-y )i =5-6i ,所以⎩⎪⎨⎪⎧3+x =5,2-y =-6,所以⎩⎪⎨⎪⎧x =2,y =8.所以z 1-z 2=(2+2i)-(3-8i)=-1+10i.答案:-1+10i7.已知|z |=3,且z +3i 是纯虚数,则z =________. 解析:令z =a +b i(a ,b ∈R ),则a 2+b 2=9.① 又z +3i =a +(3+b )i 是纯虚数,所以⎩⎪⎨⎪⎧a =0,b +3≠0.②由①②得a =0,b =3, 所以z =3i. 答案:3i8.设z 2=z 1-i z -1(其中z -1表示z 1的共轭复数),已知z 2的实部是-1,则z 2的虚部为________.解析:设z 1=a +b i(a ,b ∈R ), 则z 2=z 1-i z -1=a +b i -i(a -b i) =(a -b )-(a -b )i.因为z 2的实部是-1,即a -b =-1,所以z 2的虚部为1. 答案:1 9.已知z 1=32a +(a +1)i ,z 2=-33b +(b +2)i ,(a ,b ∈R ),且z 1-z 2=43,求复数z =a +b i.解:z 1-z 2=⎣⎡⎦⎤32a +(a +1)i -[-33b +(b +2)i]=⎝⎛⎭⎫32a +33b +(a -b -1)i , 所以⎩⎪⎨⎪⎧32a +33b =43,a -b -1=0,解得⎩⎪⎨⎪⎧a =2,b =1.所以z =2+i.10.已知复数3z -z -对应的点落在射线y =-x (x <0)上,|z +1|=2,求复数z . 解:设z =a +b i(a ,b ∈R ), 则3z -z -=3a +3b i -a +b i =2a +4b i. 由题意,得⎩⎪⎨⎪⎧4b 2a =-1,b >0.①又由|z +1|=2,得(a +1)2+b 2=2.②由①②解得⎩⎪⎨⎪⎧a =-2,b =1,所以z =-2+i.[B 能力提升]11.若z ∈C 且|z +2-2i|=1,则|z -1-2i|的最小值是( ) A .2 B .3 C .4 D .5 解析:选A.设z =a +b i(a ,b ∈R ),则z +2-2i =(a +2)+(b -2)i , 所以|z +2-2i|=(a +2)2+(b -2)2=1,即(a +2)2+(b -2)2=1,表示点(a ,b )的轨迹为以(-2,2)为圆心,以1为半径的圆.因为z -1-2i =(a -1)+(b -2)i ,所以|z -1-2i|=(a -1)2+(b -2)2,表示点(a ,b )与点(1,2)间的距离.点(1,2)与(-2,2)间的距离d =|1-(-2)|=3,所以|z -1-2i|min =3-1=2.故A 正确.12.已知-1+i 是关于x 的方程x 2+px +q =0的一个根,则实数p ,q 的值为________. 解析:由题意知,(-1+i)2+p (-1+i)+q =0, 得(-p +q )+(p -2)i =0, 根据复数相等的充要条件得,⎩⎪⎨⎪⎧-p +q =0,p -2=0.解得⎩⎪⎨⎪⎧p =2,q =2.答案:2,213.实数x ,y ,θ有以下关系:x +y i =3+5cos θ+i(-4+5sin θ),求x 2+y 2的最大值. 解:由x +y i =3+5cos θ+i(-4+5sin θ)得x =3+5cos θ,y =-4+5sin θ.所以x 2+y 2=(3+5cos θ)2+(-4+5sin θ)2=50-40sin θ+30cos θ=50-50sin(θ+φ),所以sin(θ+φ)=-1时,(x 2+y 2)max =100.14.(选做题)已知复数z 满足z =(-1+3i)·(1-i)-4.(1)求复数z 的共轭复数;(2)若ω=z +a i ,且复数ω对应向量的模不大于复数z 所对应向量的模,求实数a 的取值范围.解:(1)z =-1+i +3i +3-4=-2+4i ,所以复数z 的共轭复数为-2-4i.(2)ω=-2+(4+a )i ,复数ω对应向量为(-2,4+a ), 其模为4+(4+a )2=20+8a +a 2.又复数z 所对应向量为(-2,4),其模为2 5.由复数ω对应向量的模不大于复数z 所对应向量的模得,20+8a +a 2≤20,a 2+8a ≤0,a (a +8)≤0,所以,实数a 的取值范围是-8≤a ≤0.。
复数的基本运算与性质

复数的基本运算与性质复数是数学中的一个重要概念,在实际问题中也有广泛的应用。
复数包括实部和虚部,通常用a + bi(a是实部,b是虚部)的形式表示。
本文将介绍复数的基本运算与性质。
1. 复数的加法和减法复数的加法和减法定义如下:(a + bi) + (c + di) = (a + c) + (b + d)i(a + bi) - (c + di) = (a - c) + (b - d)i其中,a、b、c、d都是实数。
2. 复数的乘法复数的乘法定义如下:(a + bi) * (c + di) = (ac - bd) + (ad + bc)i3. 复数的除法复数的除法可以通过乘法来实现,假设除数不为零,可将除法转化为乘法的倒数。
(a + bi) / (c + di) = [(a + bi) * (c - di)] / [(c + di) * (c - di)]4. 虚数单位在复数运算中,虚数单位i的平方等于-1,即i² = -1。
虚数单位i可以方便地用于表示复数的虚部。
5. 共轭复数对于复数a + bi,其共轭复数定义为a - bi。
共轭复数与原复数的实部相同,虚部相反。
6. 复数的模复数的模定义为:|a + bi| = √(a² + b²)复数的模表示了复数的长度,可以参考欧几里得距离的概念。
7. 复数的实部和虚部对于复数a + bi,实部为a,虚部为b。
8. 欧拉公式欧拉公式是数学中一个重要的公式,将复数、三角函数和指数函数联系起来。
欧拉公式表达式如下:e^(ix) = cos(x) + i*sin(x)其中,e是自然对数的底数,i是虚数单位,x是一个实数。
9. 复数的指数函数对于复数a + bi,指数函数的定义如下:e^(a + bi) = e^a * e^(bi) = e^a * [cos(b) + i*sin(b)]复数的指数函数主要依赖于欧拉公式。
10. 复数的幂运算对于复数a + bi和自然数n,复数的幂运算定义如下:(a + bi)^n = (a + bi) * (a + bi) * ... * (a + bi)11. 复数的根对于复数a + bi和自然数n,复数的根与复数的幂运算相对应,定义如下:(z)^n = a + bi其中,z的n次方等于a + bi。
复数的基本运算(C语言)

#include<stdio.h>#include<stdlib.h>typedef struct fushu//抽象数据类型定义{float real;//数据对象float image;}fushu;fushu ComplexNumberInput(float a,float b)//构造二元组{fushu c;c.real=a;//实部c.image=b;//虚部return(c);}fushu ComplexNumberAdd(fushu c1,fushu c2)//求和运算{fushu sum;sum.real=c1.real+c2.real;sum.image=c1.image+c2.image;return (sum);}fushu ComplexNumberSub(fushu c1,fushu c2)//求差运算{fushu sub;sub.real=c1.real-c2.real;sub.image=c1.image-c2.image;return (sub);}fushu ComplexNumberMul(fushu c1,fushu c2)//求积运算{fushu Mul;Mul.real=c1.real*c2.real-c1.image*c2.image;Mul.image=c1.real*c2.image+c1.image*c2.real;return (Mul);}fushu ComplexNumberDiv(fushu c1,fushu c2)//求商运算{fushu div;float d1,d2,d3,d4;d1=c1.real*c2.real+c1.image*c2.image;d2=c2.real*c2.real+c2.image*c2.image;d3=c1.image*c2.real-c1.real*c2.image;d4=c2.real*c2.real+c2.image*c2.image;if(d2!=0&&d4!=0){div.real=d1/d2;div.image=d3/d4;return(div);}else{div.real=0;div.image=0;return(div);}}void ComplexNumberOutput(fushu c)//输出运算结果{if(c.real==0.0&&c.image==0.0) printf("0\n");if(c.real==0.0&&c.image!=0.0) printf("%fi\n",c.image);if(c.real!=0.0&&c.image==0.0) printf("%f\n",c.real);if(c.real!=0.0&&c.image!=0.0) printf("%f+(%fi)\n",c.real,c.image); }void main()//主函数{int choice;int k;float a1,a2,b1,b2;struct fushu c1,c2,sum,sub,mult,div;printf("欢迎进行复数的基本代数运算\n");printf("1: 复数加法运算\n");printf("2: 复数减法运算\n");printf("3: 复数乘法运算\n");printf("4: 复数除法运算\n");printf("0: 推出系统\n");printf("请分别输入第一个复数的实部和虚部: ");scanf("%f%f",&a1,&b1);c1 = ComplexNumberInput(a1,b1);printf("第一个复数为: ");ComplexNumberOutput(c1);printf("请分别输入第二个复数的实部和虚部: ");scanf("%f%f",&a2,&b2);c2 = ComplexNumberInput(a2,b2);printf("第二个复数为: ");ComplexNumberOutput(c2);for(;;){printf("请输入你选择的功能: ");scanf("%d",&choice);switch(choice){case 0:exit(0);break;case 1:sum = ComplexNumberAdd(c1,c2);printf("求和后结果为: ");ComplexNumberOutput(sum);break;case 2:sub = ComplexNumberSub(c1,c2);printf("求差后结果为: ");ComplexNumberOutput(sub);break;case 3:mult = ComplexNumberMul(c1,c2);printf("求积后结果为: ");ComplexNumberOutput(mult );break;case 4:div=ComplexNumberDiv(c1,c2);if(div.real!=0&&div.image!=0){printf("求商后结果: ");ComplexNumberOutput(div);break;}else{printf("除零错误,请重新输入第二个复数;\n");k=0;exit(k);}}}}。
用c语言编程计算复数

用c语言编程计算复数一、复数的四则运算二、复数的头文件#include<complex.h>三、一些碎碎念(1)计算方法加法:(a+bi)+(c+di)=(a+c)+(c+d)i【实部与实部相加,虚部与虚步相加】减法:(a+bi)-(c+di)=(a-c)+(c-d)i【实部与实部相减,虚部与虚步相减】乘法:(a+bi)(c+di)=ac+adi+cdi+bdi*i=(ac-bd)+(bc+ad)i【普通的多项式相乘;i^2=-1】除法:(a+bi)/(c+di)=(a+bi)(c-di)/((c+di)(c+di))=((ac+bd)+(bc-ad)i)/(c^2+d^2)【分子分母同时乘以分母的共轭复数,然后上边是乘法,下边也是乘法】(2)例题:本题要求编写程序,计算2个复数的和、差、积、商。
输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。
题目保证C2不为0。
分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。
如果结果的实部或者虚部为0,则不输出。
如果结果为0,则输出0.0。
(1)C语言中有三个类型可以存储复数float_Complex:实部和虚部都为float类型double_Complex:实部和虚部都为double类型long double_Complex:实部和虚部都为long类型例如:double_Complex x;注:C99对复数的支持,用这种定义方法不需要任何头文件。
(2)加入头文件#include <complex.h>,就可以用complex代替_Complex,这个头文件把虚部定义为'I',所以定义定义这样一个复数可以这样float complex z=a+bI;(3)宏宏名称值complex _Complex_Complex_I 虚数单位,类型为const float_ComplexI _Complex_I这里的I代替Complex_I可以类比bool(#include <stdbool>中的)和Bool一样复数的赋值方法如:doubel complex dc=2.0+3.5*I;(4)几个函数1.double real_part=creal(z);//得到Z的实部2.double imag_part=cimag(z)//得到Z的虚部在处理float和long double类型时,用crealf()和creall(),cimagf()和cimagl()。
复数运算的基本法则

引言:复数运算是数学中的重要概念,在许多领域都有广泛应用。
本文将介绍复数运算的基本法则,包括复数的加减、乘法、除法规则,以及复数的共轭和模等概念。
概述:复数由实数部分和虚数部分组成,通常表示为a+bi的形式,其中a和b为实数,i为虚数单位。
复数的运算包括加减、乘法、除法等基本操作,这些操作有一定的规则,下文将逐一介绍。
正文:(大点1)复数的加法规则1.1实部的加法规则:两个复数的实部相加,虚部保持不变。
1.2虚部的加法规则:两个复数的虚部相加,实部保持不变。
1.3复数的加法运算可用坐标表示:复数加法的运算可以看作是向量相加,即将两个复数的实部和虚部分别相加。
(大点2)复数的减法规则2.1实部的减法规则:两个复数的实部相减,虚部保持不变。
2.2虚部的减法规则:两个复数的虚部相减,实部保持不变。
2.3复数的减法可用向量表示:复数的减法运算可以视为从第一个复数到第二个复数的向量差。
(大点3)复数的乘法规则3.1复数的乘积公式:(a+bi)(c+di)=(acbd)+(ad+bc)i。
3.2实数与复数的乘法规则:实数与复数相乘时只需将实数乘以复数的实部和虚部。
3.3复数的乘法可用极坐标表示:复数的乘法运算可以用极坐标表示,即将模相乘,幅角相加。
(大点4)复数的除法规则4.1复数的除法公式:(a+bi)/(c+di)=[(ac+bd)+(bcad)i]/(c^2+d^2)。
4.2除数的倒数:如果一个复数的模为1,那么它的倒数等于它的共轭。
4.3复数的除法可用极坐标表示:复数的除法运算可以用极坐标表示,即将模相除,幅角相减。
(大点5)复数的共轭和模5.1复数的共轭定义:一个复数的共轭将虚部的符号取反。
5.2复数共轭的性质:共轭的和等于和的共轭,共轭的差等于差的共轭,共轭的积等于积的共轭。
5.3复数的模定义:复数的模是实部和虚部构成的向量的长度。
5.4复数的模的性质:复数的模大于等于0,模为0的复数为零,模相等的复数相等。
c语言实现复数运算

在C语言中,我们可以使用结构体(`struct`)来创建复数数据类型。
下面是一个基本的复数运算的示例。
```c#include <stdio.h>// 定义复数结构体typedef struct {double real; // 实部double imag; // 虚部} Complex;// 加法Complex add(Complex a, Complex b) {Complex result;result.real = a.real + b.real;result.imag = a.imag + b.imag;return result;}// 减法Complex subtract(Complex a, Complex b) {Complex result;result.real = a.real - b.real;result.imag = a.imag - b.imag;return result;}// 乘法Complex multiply(Complex a, Complex b) {Complex result;result.real = a.real * b.real - a.imag * b.imag;result.imag = a.real * b.imag + a.imag * b.real;return result;}// 打印复数void printComplex(Complex c) {if (c.imag < 0) {printf("%.2f - %.2fi\n", c.real, fabs(c.imag)); } else {printf("%.2f + %.2fi\n", c.real, c.imag);}}int main() {Complex num1 = {3.0, 2.0}; // 定义复数num1,实部为3.0,虚部为2.0Complex num2 = {1.0, -1.0}; // 定义复数num2,实部为1.0,虚部为-1.0Complex sum = add(num1, num2); // 计算两个复数的和Complex diff = subtract(num1, num2); // 计算两个复数的差Complex prod = multiply(num1, num2); // 计算两个复数的乘积printComplex(sum); // 打印和printComplex(diff); // 打印差printComplex(prod); // 打印乘积return 0;}```这个程序定义了一个复数结构体,并实现了加、减、乘运算。
复数四则运算C语言

#include "stdio.h"
#include "stdlib.h"
typedef struct complex{
float e1;
float e2;
}complex;
complex initcomplex(float x,float y)
{
complex z1;
z1.e1=x;
z1.e2=y;
贺春林掌握c语言的简单编程掌握c语言函数的实现掌握c语言结构体的实现实验原理和内容使用一个结构体来编写代码实现复数的加减乘除结构体
学号:*************姓名:左力专业:通信工程班级:2015级5班
实验项目名称:复数加减乘除
课程名称:数据结构实验指导老师:贺春林
1.实验目的
1、掌握c语言的简单编程
}
void ericomplex(complex &z,complex z1,complex z2)
{float a,b,c,d,e,f,g,h,t;
a=z1.e1*z2.e1;
b=z1.e2*z2.e2;
c=z1.e1*z2.e2;
d=z1.e2*z2.e1;
e=a+b;
f=d-c;
g=z2.e1*z2.e1;
return z1;
}
void addcomplex(complex &z,complex z1,complex z2)
{
z.e1=z1.e1+z2.e1;
z.e2=z1.e2+z2.e2;
}
void minuscomplex(complex &z,complex z1,complex z2)
复数的四则运算

a + bi 记做(a + bi ) ÷ (c + di )或 . c + di
(a + bi) ÷ (c + di) = a + bi ac + bd bc − ad = 2 + 2 i 2 2 c + di c + d c +d
例ห้องสมุดไป่ตู้、计算
1− i (1) 1+ i
13 + 9i (2) 2 (2 + i)
是____________. ____________. 解析:设z=x+yi(x、y∈R),则x2+y2+2x=3表示圆. 答案:以点(-1,0)为圆心,2为半径的圆
【练习】 练习】 1、在复数范围内解方程 、 (1) x2+4=0 (2) z2=2i
2、在复数范围内分解因式 、 (1) x2 + 4 (2) x4 - y4
Cz2-z1 B
z1+z2
2 、 | z 1+ z 2| = | z 1- z 2| 平行四边形OABC OABC是 平行四边形OABC是 矩形
o
z1 A
3、 |z1|= |z2|,| z1+ z2|= | z1- z2| 平行四边形OABC是 平行四边形OABC是 正方形 OABC
三、复数的乘法
o
x
A,说明下列各式所表示的几何意义 例1:已知复数z对应点A,说明下列各式所表示的几何意义. 1:已知复数z对应点A,说明下列各式所表示的几何意义. 已知复数
(1)|z- (1)|z-(1+2i)| (2)|z+(1+2i)| (3)|z- (3)|z-1| (4)|z+2i|
一些复数运算的C语言实现

⼀些复数运算的C语⾔实现 很久不写博客了。
第⼀次写博客是在04年,最近的⼀次还是在⼤学时,在学校时,甚⾄还有过⾃⼰去买虚拟主机搭WordPress写博客的经历。
现在⼯作时间越长,越发现积累的重要性。
那么就从这⾥开始吧,重新开始写博客。
最近打算写⼩算法,⾥⾯需要⽤到⼀些复数运算。
贴⼀点复数运算的C语⾔实现代码。
都是些很简单的东西。
包括以下运算: 复数加法、复数减法、复数乘法、复数除法、复数取模、复指数运算、复数取相⾓、模与相⾓合成复位。
本⼈专业本职做硬件的,写程序没受过专业训练,勿吐槽。
1/*file ComplexCalculation.h2 *author Vincent Cui3 *e-mail whcui1987@4 *version 0.15 *data 20-Oct-20146 *brief ⽤于复数运算的⼀些函数头和定义7*/891011 #ifndef _COMPLEXCALCULATION_H_12#define _COMPLEXCALCULATION_H_1314#define ASSERT_ENABLE 11516#define IS_COMPLEX_DIVISOR_CORRENT(DIVISOR_REAL, DIVISOR_IMAG) ((DIVISOR_REAL != 0) || (DIVISOR_IMAG != 0))1718 typedef double mathDouble;19 typedef unsigned char mathUint_8;20 typedef unsigned short int mathUint_16;21 typedef unsigned int mathUint_32;222324 typedef struct _ReDefcomplex25 {26 mathDouble Real;27 mathDouble Imag;28 }complexType;293031 complexType complexAdd(complexType a, complexType b);32 complexType complexSubtract(complexType minuend, complexType subtrahend);33 complexType complexMultiply(complexType a, complexType b);34 complexType complexDivision(complexType dividend, complexType divisor);35 mathDouble complexAbs(complexType a);36 mathDouble complexAngle(complexType a);37 complexType complexByAbsAngle(mathDouble r, mathDouble theta);38 complexType complexExp(complexType a);3940#if ASSERT_ENABLE41#define assert_param(expr) ((expr) ? (void)0 : assert_failed((mathUint_8 *)__FILE__, __LINE__))42void assert_failed(mathUint_8* file, mathUint_32 line);43#else44#define assert_param(expr) ((void)0)45#endif46474849#endifComplexCalculation.h1/*file ComplexCalculation.c2 *author Vincent Cui3 *e-mail whcui1987@4 *version 0.15 *data 20-Oct-20146 *brief ⽤于复数运算的⼀些函数7*/8910 #include "ComplexCalculation.h"11 #include "math.h"12 #include "stdio.h"131415/*函数名:complexAdd16 *说明:复数加法17 *输⼊:a,b两个复数18 *输出:19 *返回:a + b20 *调⽤:21 *其它:22*/23 complexType complexAdd(complexType a, complexType b)24 {25 complexType result;2627 result.Real = a.Real + b.Real;28 result.Imag = a.Imag + b.Imag;2930return result;31 }3233/*函数名:complexSubtract34 *说明:复数减法35 *输⼊:minuend被减数,subtrahend减数36 *输出:37 *返回:a - b38 *调⽤:39 *其它:40*/41 complexType complexSubtract(complexType minuend, complexType subtrahend)42 {43 complexType result;4445 result.Real = minuend.Real - subtrahend.Real;46 result.Imag = minuend.Imag - subtrahend.Imag;4748return result;49 }5051/*函数名:complexMultiply52 *说明:复数乘法53 *输⼊:a,b两个复数54 *输出:55 *返回:a * b56 *调⽤:57 *其它:58*/59 complexType complexMultiply(complexType a, complexType b)60 {61 complexType result;6263 result.Real = a.Real * b.Real - a.Imag * b.Imag;64 result.Imag = a.Imag * b.Real + a.Real * b.Imag;6566return result;67 }686970/*函数名:complexDivision71 *说明:复数除法72 *输⼊:dividend被除数,divisor除数73 *输出:74 *返回:a / b75 *调⽤:76 *其它:divisor的实部和虚部不能同时为077*/78 complexType complexDivision(complexType dividend, complexType divisor)79 {80 complexType result;8182/*断⾔,被除数的实部和虚部不能同时为零*/83 assert_param(IS_COMPLEX_DIVISOR_CORRENT(divisor.Real, divisor.Imag));8485 result.Real = (mathDouble)(dividend.Real * divisor.Real + dividend.Imag * divisor.Imag) / \86 (divisor.Real * divisor.Real + divisor.Imag * divisor.Imag);87 result.Imag = (mathDouble)(dividend.Imag * divisor.Real - dividend.Real * divisor.Imag) / \88 (divisor.Real * divisor.Real + divisor.Imag * divisor.Imag);89return result;90 }9192/*函数名:complexAbs93 *说明:复数取模94 *输⼊:a复数95 *输出:96 *返回:复数的模97 *调⽤:98 *其它:99*/100 mathDouble complexAbs(complexType a)101 {102return (sqrt( pow(a.Real,2) + pow(a.Imag,2) ));103 }104105106/*函数名:complexAngle107 *说明:复数取相⾓108 *输⼊:a复数109 *输出:110 *返回:复数的相⾓111 *调⽤:112 *其它:113*/114 mathDouble complexAngle(complexType a)115 {116/*是atan2⽽⾮atan,(-PI,PI] */117return (atan2(a.Imag, a.Real));118 }119120/*函数名:complexByAbsAngle121 *说明:通过模和相⾓合成复数122 *输⼊:r 模, theta 相⾓123 *输出:124 *返回:复数125 *调⽤:126 *其它:127*/128 complexType complexByAbsAngle(mathDouble r, mathDouble theta) 129 {130 complexType tmp_1,tmp_2;131132 tmp_1.Real = 0;133 tmp_1.Imag = theta;134 tmp_2 = complexExp(tmp_1);135 tmp_2.Real *= r;136 tmp_2.Imag *= r;137138return tmp_2;139 }140141/*函数名:complexExp142 *说明:复指数运算143 *输⼊:a 复指数144 *输出:145 *返回:e的a次⽅146 *调⽤:147 *其它:使⽤欧拉公式 e^(jw) = cos(w) + j * sin(w)148*/149 complexType complexExp(complexType a)150 {151 complexType result;152153 result.Real = exp(a.Real) * cos(a.Imag);154 result.Imag = exp(a.Real) * sin(a.Imag);155156return result;157 }158159160#if ASSERT_ENABLE161/*函数名:assert_failed162 *说明:断⾔函数163 *输⼊:164 *输出:打印出错的位置165 *返回:166 *调⽤:167 *其它:168*/169void assert_failed(mathUint_8* file, mathUint_32 line)170 {171 printf("Assert Error in File: %s \r\nLine: %d \r\n",file,line);172 }173174#endifComplexCalculation.c1 #include "ComplexCalculation.h"2 #include "stdio.h"34int main(void)5 {6 complexType a,b,c;7 a.Imag = 0.5;8 a.Real = 2.5;9 b.Real = 1;10 b.Imag = -5;1112 c = complexAdd(a,b);13 printf("complexAdd: c.Real %f, c.Imag %f \r\n",c.Real,c.Imag);14 c = complexSubtract(a,b);15 printf("complexSubtract: c.Real %f, c.Imag %f \r\n",c.Real,c.Imag);16 c = complexMultiply(a,b);17 printf("complexMultiply: c.Real %f, c.Imag %f \r\n",c.Real,c.Imag);18 c = complexDivision(a,b);19 printf("complexDivision: c.Real %f, c.Imag %f \r\n",c.Real,c.Imag);20 printf("Abs(c): %f\r\n",complexAbs(a));21 printf("Angle(c): %f\r\n",complexAngle(a));22 c = complexByAbsAngle(complexAbs(a),complexAngle(a));23 printf("complexByAbsAngle: a.Real %f, a.Imag %f \r\n",c.Real,c.Imag); 2425while(1);26 }main.c下⾯是运⾏结果,在VS2012上运⾏的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<>
#include<>
typedef struct fushu//抽象数据类型定义
{
float real;//数据对象
float image;
}fushu;
fushu ComplexNumberInput(float a,float b)//构造二元组{
fushu c;
=a;//实部
=b;//虚部
return(c);
}
fushu ComplexNumberAdd(fushu c1,fushu c2)//求和运算{
fushu sum;
=+;
=+;
return (sum);
}
fushu ComplexNumberSub(fushu c1,fushu c2)//求差运算{
fushu sub;
= = return (sub);
}
fushu ComplexNumberMul(fushu c1,fushu c2)//求积运算{
fushu Mul;
=* =*+*;
return (Mul);
}
fushu ComplexNumberDiv(fushu c1,fushu c2)//求商运算{
fushu div;
float d1,d2,d3,d4;
d1=*+*;
d2=*+*;
d3=* d4=*+*;
if(d2!=0&&d4!=0)
{
=d1/d2;
=d3/d4;
return(div);
}
else
{
=0;
=0;
return(div);
}
}
void ComplexNumberOutput(fushu c)//输出运算结果{
if==&&== printf("0\n");
if==&&!= printf("%fi\n",;
if!=&&== printf("%f\n",;
if!=&&!= printf("%f+(%fi)\n",,;
}
void main()//主函数
{
int choice;
int k;
float a1,a2,b1,b2;
struct fushu c1,c2,sum,sub,mult,div;
printf("欢迎进行复数的基本代数运算\n");
printf("1: 复数加法运算\n");
printf("2: 复数减法运算\n");
printf("3: 复数乘法运算\n");
printf("4: 复数除法运算\n");
printf("0: 推出系统\n");
printf("请分别输入第一个复数的实部和虚部: ");
scanf("%f%f",&a1,&b1);
c1 = ComplexNumberInput(a1,b1);
printf("第一个复数为: ");
ComplexNumberOutput(c1);
printf("请分别输入第二个复数的实部和虚部: ");
scanf("%f%f",&a2,&b2);
c2 = ComplexNumberInput(a2,b2);
printf("第二个复数为: ");
ComplexNumberOutput(c2);
for(;;)
{
printf("请输入你选择的功能: ");
scanf("%d",&choice);
switch(choice)
{
case 0:exit(0);
break;
case 1:sum = ComplexNumberAdd(c1,c2);
printf("求和后结果为: ");
ComplexNumberOutput(sum);
break;
case 2:sub = ComplexNumberSub(c1,c2);
printf("求差后结果为: ");
ComplexNumberOutput(sub);
break;
case 3:mult = ComplexNumberMul(c1,c2);
printf("求积后结果为: ");
ComplexNumberOutput(mult );
break;
case 4:div=ComplexNumberDiv(c1,c2);
if!=0&&!=0)
{
printf("求商后结果: ");
ComplexNumberOutput(div);
break;
}
else
{
printf("除零错误,请重新输入第二个复数;\n");
k=0;
exit(k);
}
}
}
}。