精华内容
下载资源
问答
  • java中实现复数求模

    2021-03-14 11:22:11
    2017-06-03 回答不知道是不是 ~//复数类。public class complex{private double real,im; //实部,虚部public complex(double real, double im) //构造方法{this.real = real;this.im = im;}public complex(double ...

    2017-06-03 回答

    不知道是不是 ~

    //复数类。

    public class complex

    {

    private double real,im; //实部,虚部

    public complex(double real, double im) //构造方法

    {

    this.real = real;

    this.im = im;

    }

    public complex(double real) //构造方法重载

    {

    this(real,0);

    }

    public complex()

    {

    this(0,0);

    }

    public complex(complex c) //拷贝构造方法

    {

    this(c.real,c.im);

    }

    public boolean equals(complex c) //比较两个对象是否相等

    {

    return this.real==c.real && this.im==c.im;

    }

    public string tostring()

    {

    return "("+this.real+"+"+this.im+"i)";

    }

    public void add(complex c) //两个对象相加

    { //改变当前对象,没有返回新对象

    this.real += c.real;

    this.im += c.im;

    }

    public complex plus(complex c) //两个对象相加,与add()方法参数一样不能重载

    { //返回新创建对象,没有改变当前对象

    return new complex(this.real+c.real, this.im+c.im);

    }

    public void subtract(complex c) //两个对象相减

    { //改变当前对象,没有返回新对象

    this.real -= c.real;

    this.im -= c.im;

    }

    public complex minus(complex c) //两个对象相减,与subtract()方法参数一样不能重载

    { //返回新创建的对象,没有改变当前对象

    return new complex(this.real-c.real, this.im-c.im);

    }

    }

    class complex__ex

    {

    public static void main(string args[])

    {

    complex a = new complex(1,2);

    complex b = new complex(3,5);

    complex c = a.plus(b); //返回新创建对象

    system.out.println(a+" + "+b+" = "+c);

    }

    }

    /*

    程序运行结果如下:

    (1.0+2.0i) + (3.0+5.0i) = (40.0+7.0i)

    */

    展开全文
  • Java课程设计建立复数对象,公共方法有加减乘除求模 Java课程设计 1.建立复数对象,公共方法有加、减、乘、除、求模,重载toString()输出;考虑静态方法和动态方法。如有可能考虑操作符重载。 2.建立复数有序链表结构...

    41528d3028836879cd698677c3999917.gifJava课程设计建立复数对象,公共方法有加减乘除求模

    Java课程设计 1.建立复数对象,公共方法有加、减、乘、除、求模,重载toString()输出;考虑静态方法和动态方法。如有可能考虑操作符重载。 2.建立复数有序链表结构的集合(复数不能重复,按照模的大小排序),链表的操作有添加,删除,查找。 3.对上面的复数链表集合,做一个方法从文本文件读取复数添加到有序链表,另一个方法把链表导出到文本文件。注:文本文件的复数可以用逗号分隔。读取的文本文件的复数是无序的。 3.考虑多线程的处理,对链表操作的添加和删除加锁,设置最大集合数量,如果链表为空,不能删除,如果复数数量达到最大,不能添加。 源代码如下: import java.util.Scanner; public class fushu { public float a,b; //定义成员变量 fushu() //构造函数1 { } fushu(float x,float y) //构造函数2 { a=x;b=y; } public static void main(String[] args) //主函数 { System.out.println(“选择你要进行操作的序号:1.两个复数加;2.减;3.乘;4.除;5.求模;\n输出你的选择,按回车。“); Scanner in=new Scanner(System.in); //从键盘获得选择 int i=in.nextInt(); System.out.println(i); switch(i) { case 1: //加 { System.out.println(“第一个实部:“) float a1=in.nextFloat(); System.out.println(“第一个虚部:“); float b1=in.nextFloat(); fushu c1=new fushu(a1,b1); System.out.println(“第2个实部:“); float a2=in.nextFloat(); System.out.println(“第2个虚部:“); float b2=in.nextFloat(); fushu c2=new fushu(a2,b2); fushu m=jia(c1,c2); System.out.println(“结果为:“); print(m); break; } case 2: //减 { System.out.println(“第一个实部:“); float a1=in.nextFloat(); System.out.println(“第一个虚部:“); float b1=in.nextFloat(); fushu c1=new fushu(a1,b1); System.out.println(“第2个实部:“); float a2=in.nextFloat(); System.out.println(“第2个虚部:“); float b2=in.nextFloat(); fushu c2=new fushu(a2,b2); fushu m=jian(c1,c2); System.out.println(“结果为:“); print(m); } case 3: //乘 { System.out.println(“第一个实部:“); float a1=in.nextFloat(); System.out.println(“第一个虚部:“); float b1=in.nextFloat(); fushu c1=new fushu(a1,b1); System.out.println(“第2个实部:“); float a2=in.nextFloat(); System.out.println(“第2个虚部:“); float b2=in.nextFloat(); fushu c2=new fushu(a2,b2); fushu m=cheng(c1,c2); System.out.println(“结果为:“); print(m); } case 4: //除 { System.out.println(“第一个实部:“); float a1=in.nextFloat(); System.out.println(“第一个虚部:“); float b1=in.nextFloat(); fushu c1=new fushu(a1,b1); System.out.println(“第2个实部:“); float a2=in.nextFloat(); System.out.println(“第2个虚部:“); float b2=in.nextFloat(); fushu c2=new fushu(a2,b2); if(b2==0 break; } else { fushu m=chu(c1,c2); System.out.println(“结果为:“); print(m); break; } } case 5: //暂时为实现模运算方法 } } public static fushu jia(fushu c1,fushu c2) { //实现加运算方法 fushu c=new fushu(); c.a=c1.a+c2.a; c.b=c1.b+c2.b; return c; } public static void print(fushu c) //实现输出一个复数形式的方法 { if(c.a!=0) { if(c.b>0) System.out.println(c.a+“+“+c.b+“i“); // “a+bi” else if(c.b==0) System.out.println(c.a); //”a” else { System.out.println(c.a+“-“+(-c.b)+“i“); //”a-bi” } } else { if(c.b>0) System.out.println(c.b+“i“); //”bi” else if(c.b==0) System.out.println(c.a); //”0” else System.out.println(c.b+“i“); //”-bi” } } public static fushu jian(fushu c1,fushu c2) //减运算方法 { fushu c=new fushu(); c.a=c1.a-c2.a; c.b=c1.b-c2.b; return c; } public static fushu cheng(fushu c1,fushu c2) //乘运算方法 { fushu c=new fushu(); c.a=(c1.a*c2.a)-(c1.b*c2.b); c.b=c2.a*c1.b+c1.a*c2.b; return c; } public static fushu chu(fushu c1,fushu c2) //除运算方法 { fushu c=new fushu(); c.a=(c1.a*c2.a+c1.b*c2.b)/(c2.a*c2.a+c2.b*c2.b); c.b=(c2.a*c1.b-c1.a*c2.b)/(c2.a*c2.a+c2.b*c2.b); return c; } /*public static float mo(fushu c) //模运算,暂时不知如何根号运算 { float n= */ } 调式运行中遇到的错误及解决方法: 1.“ ushu.java:50: 需要 ) System.out.println(c.a+“-“(-c.b)+“i“);” 少了连接的“+”,添上。 2.“D:\java>javac fushu.java fushu.java:22: 已在 main(java.lang.String[]) 中定义 in Scanner in=new Scanner(System.in);” 不可多次重复定义,只定义一次即可。 3. fushu.java:33: 无法从静态上下文中引用非静态 方法 jia(fushu,fushu) fushu m=jia(c1,c2); fushu.java:35: 无法从静态上下文中引用非静态 方法 print(fushu) print(m); 在”jia”和”print”方法前加static. 程序存在的的一些问题及改进: 1.为实现模运算,查书得Math.sqrt()方法。 Switch部分获取输入的复数部分存在许多的代码重复,可以将获取复数写成一个单独的成员方法加以改进,在改变过程中,只需改变switch部分以及添加成员方法chushi(),其余成员方法无需改变,代码2如下: import java.util.Scanner; public class fushu2 { public float a,b; fushu2() { } fushu2(float x,float y) { a=x;b=y; } static fushu2 chushi() //添加的用于从键盘获得复数的方法 { float x,y; Scanner in=new Scanner(System.in); System.out.println(“实部a:“); x=in.nextFloat(); System.out.println(“虚部b:“); y=in.nextFloat(); fushu2 w=new fushu2(x,y); return w; } public static void main(String[] args) { System.out.println(“选择你要进行操作的序号:1.两个复数加;2.减;3.乘;4.除;5.求模;\n输出你的选择,按回车。“); Scanner in=new Scanner(System.in); int i=in.nextInt(); System.out.println(i); switch(i) { case 1: { System.out.println(“第1个虚数:“); fushu2 c1=chushi();//调用类方法,也可fushu2.chushi() System.out.println(“第2个虚数:“); fushu2 c2=chushi(); fushu2 m=jia(c1,c2); System.out.println(“结果为:“); print(m); break; } case 2: { System.out.println(“第1个虚数:“); fushu2 c1=chushi(); System.out.println(“第2个虚数:“); fushu2 c2=chushi(); fushu2 m=jian(c1,c2); System.out.println(“结果为:“); print(m); break; } case 3: { System.out.println(“第1个虚数:“); fushu2 c1=chushi(); System.out.println(“第2个虚数:“); fushu2 c2=chushi(); fushu2 m=cheng(c1,c2); System.out.println(“结果为:“); print(m); break; } case 4: { System.out.println(“第1个虚数:“); fushu2 c1=chushi(); System.out.println(“第2个虚数:“); fushu2 c2=chushi(); if(c2.b==0 break; } else { fushu2 m=chu(c1,c2); System.out.println(“结果为:“); print(m); break; } } case 5: { fushu2 c=chushi(); double t=mo(c); System.out.println(“该复数模为:“+t); break; } } } public static fushu2 jia(fushu2 c1,fushu2 c2) { fushu2 c=new fushu2(); c.a=c1.a+c2.a; c.b=c1.b+c2.b; return c; } public static void print(fushu2 c)//?? { if(c.a!=0) { if(c.b>0) System.out.println(c.a+“+“+c.b+“i“); else if(c.b==0) System.out.println(c.a); else { /*c.b=-c.b;*/ System.out.println(c.a+“-“+(-c.b)+“i“); } } else { if(c.b>0) System.out.println(c.b+“i“); else if(c.b==0) System.out.println(c.a); else System.out.println(c.b+“i“); } } public static fushu2 jian(fushu2 c1,fushu2 c2) { fushu2 c=new fushu2(); c.a=c1.a-c2.a; c.b=c1.b-c2.b; return c; } public static fushu2 cheng(fushu2 c1,fushu2 c2) { fushu2 c=new fushu2(); c.a=(c1.a*c2.a)-(c1.b*c2.b); c.b=c2.a*c1.b+c1.a*c2.b; return c; } public static fushu2 chu(fushu2 c1,fushu2 c2) { fushu2 c=new fushu2(); c.a=(c1.a*c2.a+c1.b*c2.b)/(c2.a*c2.a+c2.b*c2.b); c.b=(c2.a*c1.b-c1.a*c2.b)/(c2.a*c2.a+c2.b*c2.b); return c; } public static double mo(fushu2 c) //实现模运算的方法 { double n=Math.sqrt(c.a*c.a+c.b*c.b); return n; } }

    展开全文
  • matlab求复数

    千次阅读 2019-10-15 14:26:29
    假设有一个举证 a=[1+2i;2+3i;2+4i;1+4i] a = 1.0000 + 2.0000i 2.0000 + 3.0000i ...用下列方式求模,结果如下: sqrt(a.^2) ans = 1.0000 + 2.0000i 2.0000 + 3.0000i 2.0000 + 4.0000i 1.0000 + 4.000...

    假设有一个举证
    a=[1+2i;2+3i;2+4i;1+4i]
    a =
    1.0000 + 2.0000i
    2.0000 + 3.0000i
    2.0000 + 4.0000i
    1.0000 + 4.0000i
    用下列方式求模,结果如下:
    sqrt(a.^2)
    ans =
    1.0000 + 2.0000i
    2.0000 + 3.0000i
    2.0000 + 4.0000i
    1.0000 + 4.0000i
    可以看到这并未求出模值

    改用下上述方法,得到正确结果
    sqrt(abs(a).^2)
    ans =
    2.2361
    3.6056
    4.4721
    4.1231

    展开全文
  • 复数求模运算的快速近似实现方法

    千次阅读 2017-01-11 15:30:10
    数字信号处理中,经常需要对复数进行求模运算。找了一些资料,发现对精度要求不高的情况下是有比较好的简化运算方法的。我这里整理出了如下简化步骤: 1. 对复数的实部和虚部取绝对值 2. 把绝对值大的定为Max,小...

    数字信号处理中,经常需要对复数进行求模运算。找了一些资料,发现对精度要求不高的情况下是有比较好的简化运算方法的。我这里整理出了如下简化步骤:
    1. 对复数的实部和虚部取绝对值
    2. 把绝对值大的定为Max,小的定位Min
    3. 模值等于Max+Min*0.25
    得到的值不是精确值,但是能够满足我自己的需求。

    直接上代码:

    struct Complex
    {
        int Re;
        int Im;
    }
    
    int ModComplex(struct Complex In)
    {
        int UgRe, UgIm, Max, Min;
        UgRe = In.Re > 0 ? In.Re : (-1 * In.Re);
        UgIm = In.Im > 0 ? In.Im : (-1 * In.Im);
        if(UgRe > UgIm)
        {
            Max = UgRe;
            Min = UgIm;
        }
        else
        {
            Max = UgIm;
            Min = UgRe;
        }
        return Max + (Min >> 2);
    }

    详细资料参考如下链接:
    http://blog.csdn.net/deepdsp/article/details/7621033

    展开全文
  • 用C语言写一个程序,求复数 1.1+2.2i 的?(你是如何想的?) 我们都用手机写了出来,很简单的C程序。之后,老师不断地对我们的代码提出各种要求,代码也变成和之前的大为不同。 是的!就这样,我的面向对象...
  • 这是一款功能强大的数学计算器,支持表达式计算和复数计算。只要输入表达式就可以计算出结果的计算器,操作非常简单,容易上手。对于工科学子们真的是一个莫大的福利!...复数有多种表示,诸如向量表示...
  • 为快速高精度的完成信号处理过程中近似复数求模运算,本文提出了一种高精度复数求模近似算法的设计和FPGA实现方法,其结合了三种具有不同误差特性的近似求模算法,并采用了简单的加法和移位操作,实现了0.878%的相对误差...
  • 一种复数求模的实用方法

    千次阅读 2012-05-31 19:05:39
    一种复数求模的实用方法  在DSP中,经常遇到复数求模的问题。对于复数X  X = R+j*I (1) 其幅度magX为:  magX = sqrt(R^2+I^2) (2) 由上式可知,复数求模的问题可看做是一个实数根的问题。对这个...
  • https://en.wikipedia.org/wiki/Alpha_max_plus_beta_min_algorithm ... I + jQ 的 sqrt(I^2 + Q^2) 可以用公式: Mag ~=Alpha * max(|I|, |Q|) + Beta * mi
  • 一个二维任意封闭图形的轮廓在物理意义上可被看成是二维正交等周期非线性振动轨迹,并因此构造了复数域指数自回归模型。模型系数具备平移、旋转和比例不变性并与轮廓跟踪的起始点选择无关,另外图形轮廓的局部信息也...
  • 反正切的过程与复数求模基本一致,因为都是 V 3 V_3 V 3 ​ 到 V 0 V_0 V 0 ​ 的旋转,在这个迭代过程中, z z z 一直在积累角度,迭代完成后** z z z 的值就是旋转的角度 θ \theta θ **。即有 θ = t a n ...
  • 复数模板

    2014-04-19 07:28:48
    本题中两个复数的和,自然要产生一个新的复数对象 c.real=real+c2.real; c.imag=imag+c2.imag; return c; } //复数相减:(a+bi)-(c+di)=(a-c)+(b-d)i. template Complex<T> Complex<T>::complex_minus...
  • 数学物理方法·复数/模/辐角引导题目 QQ:3020889729 小蔡复数基本概念引导题目第一题第二题第三题第四题复数模/辐角基本概念引导题目复数0的模与辐角值复数∞的模与辐角值 ...
  • Vivado cordic IP求模求角教程

    千次阅读 2019-09-12 07:13:33
    当需要对复数求模的时候,用FPGA怎么呢?怎么开根号? 方法1:先幅值平方和,再使用cordic IP开根号。(蠢办法) 方法2:直接用cordic取模值。 此处只介绍方法2,资源占用更少,更方便。 求模原理如下图...
  • 复数模型与运算(C语言)

    千次阅读 2013-11-03 21:11:52
    //定义一个复数的结构体 struct complex_struct {  double real_part;  double imaginary_part; }; //数据抽象 //获得一个复数的实部 double getReal_part(struct complex_stru
  • //编写一个复数类,包含实部和虚部属性,还有复数相加、相减以及复数求模、输出复数字符串”a+bi”。 private double a; private double b; private double c; private double d; public void set() ...
  • 用着这么麻烦吗?杀鸡你非得用拖拉机给它压死,至于吗class Complex{public :Complex(){real=0;imag=0;}//定义结构函数Complex(double r,double i){real=r;...//声明复数的加减函数void diplay();//声明输出函...
  • 对Brodatz图像库的仿真表明,新方法较双树复数小波算法的查准率提高6.96%,较基于Gabor纹理特征检索的查准率提高了18.8%。同时复数小波系数统计模型具有旋转不变性。新方法对今后的纹理图像检索具有重要的理论与实际...
  • matlab复数取模运算

    千次阅读 2021-04-18 04:18:37
    IFFT, 打乱相位可以采用函数F=F(randperm(numel(F))), 在打乱相位后进行反傅里叶变换时,新产生的序列会有虚数存在,这 里采取了取模值的方法进行下一步运算。...实验目的 1. 学会用 MATLAB 表示常用连续信号的方法; 2...
  • 如何用计算器求复数?

    千次阅读 2021-06-19 07:09:10
    一、使用方法1.利用计算器进行复数计算必须要用计算器的度,按DRG键,使计算器显示窗中要有“DEG”标致(表示计算器进行所有带角度的运算均以“度”为单位).2.让计算器进入复数运算状态,分别按2ndF 和 CPLX,显示窗中有...
  • <p><strong>Complex类实现Comparable<T>接口,提供按比较复数大小的方法。</strong></p> 咋写不会求解!感谢大家</p>
  • 为了提高彩色图像重构质量,利用具有近似平移不变性特性的双树复数小波作为自然图像的稀疏表示,提出了基于双树复数小波局部高斯模型的彩色图像压缩感知重构算法,该算法在重构时充分利用了彩色图像通道间的互相关性...
  • 复数的幅值和相位

    千次阅读 2021-04-21 12:49:00
    [i]); x[i]=x[i]*180/PI-90; printf("第%d次谐波的相位为为%f \\n", i , x[i]) ; } printf("第%d次谐波的幅值为%f \\n\\n", i , w[i])......0,则波的传播方向是-z 时谐波的复数表示时谐波 V ( z, t ) ? V0 cos(?t ? ...
  • 视为它们的积:ii -> -1 分析方法 我们可以将一个数分为四个部分: ——正负号部分:[++--+-++-] ——数字部分:[215.2145] ——变量与虚数单位部分:[ansansABAiiianscjg(...)arg(...)],这里都是相乘的。...
  • 复数的生成复数生成语句(其中theta为复数辐角的弧度值,r为复数)z=a+b*i,z=a+bi。z=r*exp(i*theta),z=r*exp(thetai)。2.创建复矩阵创建复矩阵的方法有两种。(1)如同一般的矩阵一样以前面介绍的几种方式输入矩阵...
  • 复数类实现 - kb

    2021-03-11 16:19:43
    Feedback#re: 复数类实现 - kb2005-07-29 00:08Flair@ZJU:p, so many hidden bugs... anyway, it's nice to have a try.Here is a good reference: org.apache.commons.math.complex.Complex回复更多评论#re: 复数类...
  • 设计的复数类,含以下方法: 1、含两个复数的加、减、乘、除运算 2、与实数的加、减、乘、除运算 3、使用静态函数将两个复数的加、减、乘、除 4、使用友元函数进行复数与实数的加、减、乘、除运算
  • 最近才学习复数复数由实数和虚数构成,a+bi. 实数以前就知道, 虚数现在才知道,个人理解为,假设1*(-1)=-1,可以写为1√(-1)√(-1)=-1,那么设根号负一等于i,根号负一平方根=-1,根号负一0次方等于1. 其实这些...
  • python中复数的共轭复数知识点总结

    千次阅读 2020-12-08 10:30:03
    python中复数的共轭复数知识点总结,复数,共轭,函数,知识点,都是python中复数的共轭复数知识点总结易采站长站,站长之家为您整理了python中复数的共轭复数知识点总结的相关内容。理科学生应该都了解过共轭吧,经常在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,434
精华内容 11,773
关键字:

复数模的求法

友情链接: Stack.rar