-
2021-03-09 08:58:16
(1) 复数类Complex 的属性有:
RealPart : int型,代表复数的实数部分
ImaginPart : int型,代表复数的虚数部分
package applet;
import java.applet.*;
import java.awt.*;
public class j_1 extends Applet{
Complex a,b,c,d,e,f;
public void init()
{
a=new Complex(2,2);
b=new Complex(3,4);
c=new Complex();
d=new Complex();
e=new Complex();
f=new Complex();
}
public void paint(Graphics g)
{
c=a.add(b);
d=a.sub(b);
e=a.mul(b);
f=a.div(b);
g.drawString("第一个复数:"+a.ToString(), 10, 50);
g.drawString("第二个复数:"+b.ToString(), 10, 70);
g.drawString("两复数之和:"+c.ToString(), 10, 90);
g.drawString("两复数之差:"+d.ToString(), 10, 110);
g.drawString("两复数相乘:"+e.ToString(), 10, 130);
g.drawString("两复数相除:"+f.ToString(), 10, 150);
}
}
class Complex{
public int realPart;
public int imaginPart;
Complex(int r,int i)
{realPart=r;imaginPart=i;}
Complex(){realPart=0;imaginPart=0;}
Complex add(Complex a)
{
Complex temp=new Complex();
temp.realPart=realPart+a.realPart;
temp.imaginPart=imaginPart+a.imaginPart;
return temp;
}
Complex sub(Complex a)
{
Complex temp=new Complex();
temp.realPart=realPart-a.realPart;
temp.imaginPart=imaginPart-a.imaginPart;
return temp;
}
Complex mul(Complex a)
{
int r,i,ra,ia;
r=this.realPart;
i=this.imaginPart;
ra=a.realPart;
ia=a.imaginPart;
Complex temp=new Complex();
temp.realPart=r*ra-i*ia;
temp.imaginPart=i*ra+r*ia;
return temp;
}
Complex div(Complex a)
{
double r,i,ra,ia;
r=this.realPart;
i=this.imaginPart;
ra=a.realPart;
ia=a.imaginPart;
Complex temp=new Complex();
temp.realPart=(r*ra+i*ia)/(ra*ra+ia*ia);//这个地方应该如何修改,还是说只能改成把类成员变量改成double型数据才可以
temp.imaginPart=(i*ra-r*ia)/(ra*ra+ia*ia);
return temp;
}
public String ToString()
{
if(imaginPart<0)
{
return (realPart+(imaginPart+"i"));
}
else return(realPart+"+"+imaginPart+"i");
}
}
更多相关内容 -
复数常用知识与运算
2021-11-01 18:28:35复数的表示 代数形式 z=a+bj(a,b∈R)z=a+bj(a,b∈R)z=a+bj(a,b∈R),工程上i经常用j来表示 三角形式 z=r(sinθ+jcosθ)z=r(\sin\theta+j\cos\theta)z=r(sinθ+jcosθ), r>0,θ∈Rr>0, \theta\in Rr>...复数的表示
- 代数形式 z = a + b j ( a , b ∈ R ) z=a+bj(a,b∈R) z=a+bj(a,b∈R),工程上i经常用j来表示
- 三角形式 z = r ( sin θ + j cos θ ) z=r(\sin\theta+j\cos\theta) z=r(sinθ+jcosθ), r > 0 , θ ∈ R r>0, \theta\in R r>0,θ∈R
- 复指数形式 z = r e j θ z=re^{j\theta} z=rejθ
- 极坐标表示 z = r ∠ θ z=r∠\theta z=r∠θ ⇔ z = r e j θ z=re^{j\theta} z=rejθ
r是模,θ是辐角
运算
复数相乘
复数相乘等于模相乘,辐角相加
z 1 ⋅ z 2 = ∣ z 1 ∣ ⋅ ∣ z 2 ∣ e j ( θ 1 + θ 2 ) = ∣ z 1 ∣ ⋅ ∣ z 2 ∣ ∠ ( θ 1 + θ 2 ) z_1\cdot z_2=|z_1|\cdot|z_2|e^{j(\theta_1+\theta_2)}=|z_1|\cdot|z_2|∠(\theta_1+\theta_2) z1⋅z2=∣z1∣⋅∣z2∣ej(θ1+θ2)=∣z1∣⋅∣z2∣∠(θ1+θ2)复数相除
复数相乘等于模相除,辐角相减
z 1 z 2 = ∣ z 1 ∣ ∣ z 2 ∣ e j ( θ 1 − θ 2 ) = ∣ z 1 ∣ ∣ z 2 ∣ ∠ ( θ 1 + θ 2 ) \frac{z_1}{z_2}=\frac{|z_1|}{|z_2|}e^{j(\theta_1-\theta_2)}=\frac{|z_1|}{|z_2|}∠(\theta_1+\theta_2) z2z1=∣z2∣∣z1∣ej(θ1−θ2)=∣z2∣∣z1∣∠(θ1+θ2)模的运算
模
∣ z ∣ = z z ˉ |z|=\sqrt{z\bar{z}} ∣z∣=zzˉ
乘积的模
乘积的模等于模的乘积
∣ z 1 z 2 ∣ = ∣ z 1 ∣ ∣ z 2 ∣ |z_1z_2|=|z_1||z_2| ∣z1z2∣=∣z1∣∣z2∣分数的模
分数求模等于分子分母分别求模
∣ z 1 z 2 ∣ = ∣ z 1 ∣ ∣ z 2 ∣ |\frac{z_1}{z_2}|=\frac{|z_1|}{|z_2|} ∣z2z1∣=∣z2∣∣z1∣幂的模
幂的模等于模的幂
∣ z n ∣ = ∣ z ∣ n |z^n|=|z|^n ∣zn∣=∣z∣n参考资料:
I复数的四种表示形式
正弦量的相量表示法-J PPT -
复数的加、减、乘、除、求模求共轭复数的运算
2019-09-19 21:25:50复数的运算法则: 加法运算: 复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的和是(a+bi)+(c+di)=(a+c)+(b+d)i; 例如:a = 1+2i,b = 3+4i 即可得 a+b = 4+6i 减法法则: 复数的减法...复数的运算法则:
加法运算:
复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的和是(a+bi)+(c+di)=(a+c)+(b+d)i;
例如:a = 1+2i,b = 3+4i 即可得 a+b = 4+6i
减法法则:
复数的减法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的差是 (a+bi)-(c+di)=(a-c)+(b-d)i;两个复数的差依然是复数,它的实部是原来两个复数实部的差,它的虚部是原来两个虚部的差。
例如:a = 1+2i,b = 3+4i 即可得 a-b = -2i+2i;
乘法法则:
规定复数的乘法按照以下的法则进行:设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i;
例如:a = 1+2i,b = 3+4i 即可得 a*b = -5+10i
共轭复数:
两个实部相等,虚部互为相反数的复数互为共轭复数。当虚部不为零时,共轭复数就是实部相等,虚部相反,如果虚部为零,其共轭复数就是自身。
例如 a = 1+2i,a 的共轭复数为:1-2i;
模:
将复数的实部与虚部的平方和的正的平方根的值称为该复数的模,记作∣z∣,
对于复数 z = a + bi ,它的模 |z| = sqrt(aa+bb);
//Complex.h #pragma once class Complex { public: Complex(); ~Complex(); int real; int img; double mod; void setReal(double real); void setImg(double img); void disp(); void conjnum(Complex &b); double getReal(); double getImg(); void set(double r, double i); Complex(double r, double i); Complex operator+( Complex &b); Complex operator-( Complex &b); Complex operator*(Complex &b); Complex operator/( Complex &b); };
//Complex.cpp #include "stdafx.h" #include "Complex.h" Complex::Complex() : real(0) , img(0) { } Complex::~Complex() { } void Complex::setReal(double real) { this->real = real; } void Complex::setImg(double img) { this->img = img; } void Complex::disp() { if (img>=0) { cout << real << "+" << img << "i" << endl; } else { cout << real << "-" << img << "i" << endl; } } double Complex::getReal() { return 0; } double Complex::getImg() { return 0; } void Complex::set(double r, double i) { this->real = r; this->img = i; } void Complex::conjnum(Complex &b) { real = b.real; img = -(b.img); } Complex Complex::operator+(Complex &b) //定义复数相加函数 { Complex c; c.real = real + b.real; c.img = img + b.img; return c; } Complex Complex::operator-(Complex &b) //定义复数相减函数 { Complex c; c.real = real - b.real; c.img = img - b.img; return c; } Complex Complex::operator*(Complex &b) //定义复数相乘函数 { Complex c; c.real = real*b.real - img*b.img; c.img = img*b.real + real*b.img; return c; } Complex Complex::operator/(Complex &b) //定义复数相除函数 { Complex c; c.real = (real*b.real + img*b.img) / (b.real*b.real + b.img*b.img); c.img = (img*b.real - b.real*b.img) / (b.real*b.real + b.img*b.img); return c; }
#include "stdafx.h" #include "Complex.h" double ModuleNum(Complex &b); int _tmain(int argc, _TCHAR* argv[]) { Complex num1; Complex num2; num1.set(1.0, 2.0); num2.set(3.0, 4.0); cout << "num1="; num1.disp(); cout << "\nnum2="; num2.disp(); cout << endl; Complex res; cout << "num1+num2:\t"; res = num1 + num2; res.disp(); cout << "\nnum1-num2:\t"; res = num1 - num2; res.disp(); cout << "\nnum1*num2:\t"; res = num1 * num2; res.disp(); cout << "\nnum1/num2:\t"; res = num1 / num2; res.disp(); cout << endl; cout << "num1的共轭复数为:\t"; res.conjnum(num1); res.disp(); cout << endl; double mod; cout << "num2的模: |num2|="; mod = ModuleNum(num2); cout << mod << endl; return 0; } double ModuleNum(Complex &b) { return sqrt(b.real*b.real + b.img*b.img); }
-
c语言 复数的运算
2021-05-19 19:49:56复数的运算请用程序实现用函数编写复数的加法、减法、乘法和除法的运算。函数定义// 复数加法COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y);// 复数减法COMPLEX ComplexSub(const COMPLEX *x, const ...复数的运算
请用程序实现
用函数编写复数的加法、减法、乘法和除法的运算。
函数定义
// 复数加法
COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y);
// 复数减法
COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y);
// 复数乘法
COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y);
// 复数除法
COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX *y);
函数说明
ComplexAdd 将 x 所指复数加上 y 所指复数,函数值为两者相加的和。
ComplexSub 将 x 所指复数减去 y 所指复数,函数值为两者相减的差。
ComplexMul 将 x 所指复数乘以 y 所指复数,函数值为两者相乘的积。
ComplexDiv 将 x 所指复数除以 y 所指复数,函数值为两者相除的商。
要求:当除数为零时,ComplexDiv 函数报告错误,函数值为零。
示例 1
输入
4.2+1.5i
2.5-0.3i
输出
6.7+1.2i
1.7+1.8i
10.95+2.49i
1.58517+0.790221i
示例 2
输入
1.6-3.5i
0+0i
输出
1.6-3.5i
1.6-3.5i
0+0i
Divided by zero!
0+0i
代码如下;
#include
typedef struct
{
double rp;
double ip;
char op;
}COMPLEX;
// 复数加法
COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y)
{
COMPLEX complex;
complex.rp=x->rp+y->rp;
complex.ip=x->ip+y->ip;
if(complex.ip>=0)
complex.op='+';
return complex;
}
// 复数减法
COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y)
{
COMPLEX complex;
complex.rp=x->rp-y->rp;
complex.ip=x->ip-y->ip;
if(complex.ip>=0)
complex.op='+';
return complex;
}
// 复数乘法
COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y)
{
COMPLEX complex;
complex.rp=x->rp*y->rp+(x->ip*y->ip)*(-1);
complex.ip=x->rp*y->ip+x->ip*y->rp;
if(complex.ip>=0)
complex.op='+';
return complex;
}
// 复数除法
COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX *y)
{
COMPLEX complex;
if(y->rp==0||y->ip==0)
printf("Divided by zero!");
else
{
complex.rp=(x->rp*y->rp+x->ip*y->ip)/((y->rp)*(y->rp)+(y->ip)*(y->ip));
complex.ip=((x->ip*y->rp)-(x->rp*y->ip))/((y->rp)*(y->rp)+(y->ip)*(y->ip));
if(complex.ip>=0)
complex.op='+';
return complex;
}
}
int main()
{
COMPLEX a, b, p, q, r, s;
ComplexInput(&a);
ComplexInput(&b);
p = ComplexAdd(&a, &b);
ComplexOutput(&p);
putchar('\n');
q = ComplexSub(&a, &b);
ComplexOutput(&q);
putchar('\n');
r = ComplexMul(&a, &b);
ComplexOutput(&r);
putchar('\n');
s = ComplexDiv(&a, &b);
ComplexOutput(&s);
putchar('\n');
return 0;
}
void ComplexInput(COMPLEX *complex)
{
double i,j;
char op;
scanf("%lf%c%lfi",&i,&op,&j);
complex->rp=i;
if(op=='+')
complex->ip=j;
else
complex->ip=-j;
}
void ComplexOutput(const COMPLEX *complex)
{
if(complex->ip>=0)
printf("%g%c%gi",complex->rp,complex->op,complex->ip);
else
printf("%g%gi",complex->rp,complex->ip);
}
如果代码有误,欢迎大家指正。
-
用C++实现复数的四则运算
2021-11-02 01:15:29这个代码包括一个复数类和四个运算函数,一个用户界面函数和一个功能函数 细节:当复数不足两个时无法进行运算,等等…忘了 结果展示 使用页面 建立复数 复数相加 其他功能诸如此类,不作展示 代码区 由于个人... -
复数除法算法
2022-02-16 20:59:29已知两个复数a和b a = a.rmz + ja.imz b = b.rmz + jb.imz 求这两个复数的商c c = c.rmz + jc.imz = a / b 函数名:c_comp_divide.c 建模思想 (1)计算除数的模的平方 (2)调用复数乘法的算法计算 (3)... -
实现复数类
2021-01-09 17:17:19实现复数类 【问题描述】 实现复数类,下图是复数类的UML图。... div 复数相除 QQ图片20200403091931.jpg 【输入形式】 【输出形式】 【样例输入】 1 2 3 4 【样例输出】 c1: 1 + 2i c2: 3 + 4i c3: 0 + 0i c1 -
复数的基本运算(C语言)
2021-05-19 19:51:05《复数的基本运算(C语言)》由会员分享,可在线阅读,更多相关《复数的基本运算(C语言)(3页珍藏版)》请在人人文库网上搜索。1、include#includetypedef struct fushu/抽象数据类型定义float real;/数据对象float ... -
复数四则运算源代码
2020-12-08 10:30:30#include<stdio.h>#include<stdlib.h>typedef struct Complex{float real;...Complex InitComplex(float a,float b) /*给复数的实部和虚部复制,并返回复数。*/{Complex c;c.real=a;c.image... -
复数的除法运算
2021-02-27 18:52:44[java]代码库/*** 复数的除法运算。* c = a / b 的运算法则是:* c.实部 = (a.实部 * b.实部 + a.虚部 * b.虚部) / (b.实部 *b.实部 + b.虚部 * b.虚部);* c.虚部 = (a.虚部 * b.实部 - a.实部 * b.虚部) / (b.实部 ... -
复数除法
2019-03-01 12:48:00共轭的两个复数相乘是个实常数 所以先在分子分母上同时乘以除数的共,这样分母变为常数,做起来就易如反掌了 转载于:https://www.cnblogs.com/mgfsos/p/10455758.html... -
MATLAB面向复数运算的设计.doc
2021-04-23 13:29:40MATLAB面向复数运算的设计MATLAB面向复数运算的设计MATLAB的所有运算都是定义在复数域上的。这样设计的好处是:在进行运算时,不必像其他程序语言那样把实部和虚部分开来处理。为描述复数,虚数单位用预定义变量i或j... -
python数字类型相关操作及复数表示
2022-01-22 23:07:30python数字类型相关操作 常见的操作即+,-,*,/,这里就不多说了,但要注意python中的/不是整除,下面我们说一些其他的对数字类型的操作 ...即求两个数相除的余数,如9%5=4,即9模5得4 >>> 9%5 -
复数的除法
2019-01-29 11:06:29分子分母同时乘以分母的共轭复数。 eg: -
C++ 定义复数的加减乘除基本运算
2020-11-27 18:22:21在C++中定义复数operations #include <iostream> using namespace std; class complex{ public: complex(){ real = 0.0; imag = 0.0; } complex(double r_, double i_){ real = r_; imag = i_; } ... -
对复数进行运算符重载
2021-01-11 11:06:59一、对复数进行运算符重载 1、加法运算符重载 1、因为我们要输入复数的值,所以我们应当运用构造函数,我们不仅要定义默认构造函数,来构造m3,还要定义一个构造函数使输入的数相加。 下面展示一些 代码。 #include ... -
使用opencv实现复数矩阵相除,点除
2019-05-28 11:57:51因为有matlab代码需要在opencv上实现,遇到了./的问题,在网上参考了许多代码,但是与matlab的结果不符,于是自己着手实现了一下,与matlab验证证明是正确的。 Mat cmplxDivision(Mat m1, Mat m2) { ... -
31.重载运算符“*”,“/”,完成两个复数的乘除运算。
2020-05-27 16:52:41#include<iostream> using namespace std; class Complex { public: Complex() { Real=0;Image=0;} Complex(double r,double i) { Real=r;Image=i;} void Show() { cout <...")"<.. -
C++利用重载函数实现复数的加减乘除运算
2021-12-13 15:17:11加法:(a+bi)+(c+di)=(a+c)+(b+d)i 减法:(a+bi)-(c+di)=(a-c)+(b-d)i 乘法:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i 除法:(a+bi)/(c+di)=((a+bi)*(c-di))/(c^2+d^2) #include <iostream> using namespace std;... -
用java实现复数的加减乘除运算
2018-05-22 09:55:14用java实现复数的加减乘除运算1. 背景 老师在课上布置了几道java编程题,此为其中之一2. 题目内容设计一个类Complex,用于封装对复数的下列操作:(1)一个带参数的构造函数,用于初始化复数成员(2)一个不带参数的构造... -
简单实现C++复数计算器
2020-12-31 12:42:22本文实例为大家分享了简单实现C++复数计算器的具体代码,供大家参考,具体内容如下 1.有关计算器的功能 A,实现多个复数(包括实数)的加减乘除,大小比较, B.实现十进制实数的进制转换,...辗转相除,记录每次 -
【C++】复数类的四则运算符重载及输入输出重载
2020-03-05 19:08:05实现一个复数类,要求重载加减乘除及输入输出,输出保留两位小数。分别输入两个复数的实部和虚部,依次输出加减乘除后的结果。 例: 输入: 3 4 7 8 输出: 10.00+12.00i -4.00-4.00i -11.00+52.00i 0.47+0.04i ... -
C++ 操作符重载(2) 复数加减乘除
2018-06-27 22:44:35复数由实部和虚部组成 复数间的运算通过实部和虚部,我们构建一个复数类来模拟复数间的操作类定义如下://复数的运算class Complex {private: int real; //复数的实部 int image; //复数的虚部public: void myPrint()... -
求复数的对数
2015-11-26 14:58:53其实除了0以外,复数是都可以求解对数的。用欧拉公式可以简单的得到结果。 -
第7周-项目1-实现复数类中的运算符重载-类的成员函数
2015-04-25 08:15:03问题及代码: /* ...*All rights reserved. *文件名称:number.cpp *作 者:单昕昕 ...*问题描述:请用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除 *程序输入:无。 -
Leetcode刷题记录:计算复数乘法
2018-01-15 09:06:00计算两个复数的乘积。 参考题解 这道题感觉很简单,主要是对复数的表达式进行解析,然后套用公式,输出结果就可以了。 class Solution: def complexNumberMultiply(self, a, b): """ :type a: str... -
8-1-2友元函数实现复数运算符的重载
2013-04-24 18:44:40/* * Copyright (c) 2013, 烟台大学... * All rights reserved.... * 文件名称:text.cpp * 作者:胡颖 ...* 完成日期:2013年4月24日 ...* 问题描述:利用友员函数实现复数的加减乘除运算 ...* 程序输出:输出复数的运算结