帮忙做个JAVA程序
发布网友
发布时间:2024-05-01 22:11
我来回答
共4个回答
热心网友
时间:2024-10-19 23:42
/*
* 文件名:Complex.java
* 作者 :wangdan
* 主页 :http://blog.csdn.net/wd22420103
*/
public class Complex
{
double real,img; //实部和虚部
public Complex() //默认构造方法
{
this.real=0;
this.img =0;
}
public Complex(double real,double img) //带参数的构造方法
{
this.real=real;
this.img =img;
}
public double getReal(){//得到实部
return this.real;
}
public double getImage(){//得到虚部
return this.img;
}
public double getReal(Complex c){//得到复数c的实部,这两个函数看起来好像有点多余,但在特殊的情况下会有用
return c.real;
}
public double getImage(Complex c){ //得到复数c的虚部
return c.img;
}
public void setReal(double real){//设置实部
this.real=real;
}
public void setImage(double img){//设置虚部
this.img =img;
}
public Complex addComplex(Complex a,Complex b) //两个复数相加,结果返回
{
Complex temp =new Complex();
temp.real=a.real+b.real;
temp.img =a.img +b.img;
return temp;
}
public Complex decComplex(Complex a,Complex b) //两个复数相减,结果返回
{
Complex temp = new Complex();
temp.real = a.real - b.real;
temp.img = a.img - b.img;
return temp;
}
public Complex mulComplex(Complex a,Complex b) //两个复数相乘,结果返回
{
Complex temp = new Complex();
temp.real = a.real*b.real-a.img*b.img;
temp.img = a.real*b.img+a.img*b.real;
return temp;
}
public Complex divComplex(Complex a,Complex b) //两个复数相除,结果返回
{
Complex temp = new Complex();
temp.real=(a.real*b.real+a.img*b.img)/(b.real*b.real+b.img*b.img);
temp.img =(a.img*b.real-a.real*b.img)/(b.real*b.real+b.img*b.img);
return temp;
}
public void addComplex(Complex cplx) //加上一个复数
{
this.real=this.real+cplx.real;
this.img =this.img +cplx.img;
}
public void decComplex(Complex cplx) //减去一个复数
{
this.real=this.real-cplx.real;
this.img =this.img -cplx.img;
}
public void mulComplex(Complex cplx) //乘与一个复数
{
double temp=this.real; //下一行代码会改变this.real的值,先用一个临时变量存起来
this.real=this.real*cplx.real-this.img*cplx.img;
this.img =temp*cplx.img+this.img*cplx.real;
}
public void divComplex(Complex cplx) //除去一个复数
{
double temp=this.real; //下一行代码会改变this.real的值,先用一个临时变量存起来
this.real=(this.real*cplx.real+this.img*cplx.img)/(cplx.real*cplx.real+cplx.img*cplx.img);
this.img =(this.img*cplx.real-temp*cplx.img)/(cplx.real*cplx.real+cplx.img*cplx.img);
}
/** *//****以上是这个复数类的所有函数,下面是一些测试的代码****/
public void printComplex() //在console端输出这个复数,测试用
{
System.out.println(""+this.real+"+"+this.img+"i");//这里可以填加一点代码以判断虚部的正负,这个工作我没有做
}
public static void main(String[] args) //测试代码
{
Complex cc=new Complex(4,8);
cc.printComplex();
Complex dd=new Complex(2,2);
dd.printComplex();
System.out.println("-----------------");
Complex ff=new Complex();
ff=ff.addComplex(cc,dd);
ff.printComplex();
ff=ff.decComplex(cc,dd);
ff.printComplex();
ff=ff.mulComplex(cc,dd);
ff.printComplex();
ff=ff.divComplex(cc,dd);
ff.printComplex();
System.out.println("-----------------");
cc.addComplex(dd);
cc.printComplex();
cc=new Complex(4,8);
cc.decComplex(dd);
cc.printComplex();
cc=new Complex(4,8);
cc.mulComplex(dd);
cc.printComplex();
cc=new Complex(4,8);
cc.divComplex(dd);
cc.printComplex();
System.out.println("-----------------");
cc.setReal(123);
cc.setImage(456);
cc.printComplex();
System.out.println(""+cc.getReal()+"+"+cc.getImage()+"i");
System.out.println("-----------------");
}
}
直接可以用
热心网友
时间:2024-10-19 23:42
/**
Complex implements a complex number and defines complex
arithmetic and mathematical functions
Last Updated February 27, 2001
Copyright 1997-2001
@version 1.0
@author Andrew G. Bennett
*/
public class Complex extends Object {
private double x,y;
/**
Constructs the complex number z = u + i*v
@param u Real part
@param v Imaginary part
*/
public Complex(double u,double v) {
x=u;
y=v;
}
/**
Real part of this Complex number
(the x-coordinate in rectangular coordinates).
@return Re[z] where z is this Complex number.
*/
public double real() {
return x;
}
/**
Imaginary part of this Complex number
(the y-coordinate in rectangular coordinates).
@return Im[z] where z is this Complex number.
*/
public double imag() {
return y;
}
/**
Molus of this Complex number
(the distance from the origin in polar coordinates).
@return |z| where z is this Complex number.
*/
public double mod() {
if (x!=0 || y!=0) {
return Math.sqrt(x*x+y*y);
} else {
return 0d;
}
}
/**
Argument of this Complex number
(the angle in radians with the x-axis in polar coordinates).
@return arg(z) where z is this Complex number.
*/
public double arg() {
return Math.atan2(y,x);
}
/**
Complex conjugate of this Complex number
(the conjugate of x+i*y is x-i*y).
@return z-bar where z is this Complex number.
*/
public Complex conj() {
return new Complex(x,-y);
}
/**
Addition of Complex numbers (doesn't change this Complex number).
<br>(x+i*y) + (s+i*t) = (x+s)+i*(y+t).
@param w is the number to add.
@return z+w where z is this Complex number.
*/
public Complex plus(Complex w) {
return new Complex(x+w.real(),y+w.imag());
}
/**
Subtraction of Complex numbers (doesn't change this Complex number).
<br>(x+i*y) - (s+i*t) = (x-s)+i*(y-t).
@param w is the number to subtract.
@return z-w where z is this Complex number.
*/
public Complex minus(Complex w) {
return new Complex(x-w.real(),y-w.imag());
}
/**
Complex multiplication (doesn't change this Complex number).
@param w is the number to multiply by.
@return z*w where z is this Complex number.
*/
public Complex times(Complex w) {
return new Complex(x*w.real()-y*w.imag(),x*w.imag()+y*w.real());
}
/**
Division of Complex numbers (doesn't change this Complex number).
<br>(x+i*y)/(s+i*t) = ((x*s+y*t) + i*(y*s-y*t)) / (s^2+t^2)
@param w is the number to divide by
@return new Complex number z/w where z is this Complex number
*/
public Complex div(Complex w) {
double den=Math.pow(w.mod(),2);
return new Complex((x*w.real()+y*w.imag())/den,(y*w.real()-x*w.imag())/den);
}
/**
Complex exponential (doesn't change this Complex number).
@return exp(z) where z is this Complex number.
*/
public Complex exp() {
return new Complex(Math.exp(x)*Math.cos(y),Math.exp(x)*Math.sin(y));
}
/**
Principal branch of the Complex logarithm of this Complex number.
(doesn't change this Complex number).
The principal branch is the branch with -pi < arg <= pi.
@return log(z) where z is this Complex number.
*/
public Complex log() {
return new Complex(Math.log(this.mod()),this.arg());
}
/**
Complex square root (doesn't change this complex number).
Computes the principal branch of the square root, which
is the value with 0 <= arg < pi.
@return sqrt(z) where z is this Complex number.
*/
public Complex sqrt() {
double r=Math.sqrt(this.mod());
double theta=this.arg()/2;
return new Complex(r*Math.cos(theta),r*Math.sin(theta));
}
// Real cosh function (used to compute complex trig functions)
private double cosh(double theta) {
return (Math.exp(theta)+Math.exp(-theta))/2;
}
// Real sinh function (used to compute complex trig functions)
private double sinh(double theta) {
return (Math.exp(theta)-Math.exp(-theta))/2;
}
/**
Sine of this Complex number (doesn't change this Complex number).
<br>sin(z) = (exp(i*z)-exp(-i*z))/(2*i).
@return sin(z) where z is this Complex number.
*/
public Complex sin() {
return new Complex(cosh(y)*Math.sin(x),sinh(y)*Math.cos(x));
}
/**
Cosine of this Complex number (doesn't change this Complex number).
<br>cos(z) = (exp(i*z)+exp(-i*z))/ 2.
@return cos(z) where z is this Complex number.
*/
public Complex cos() {
return new Complex(cosh(y)*Math.cos(x),-sinh(y)*Math.sin(x));
}
/**
Hyperbolic sine of this Complex number
(doesn't change this Complex number).
<br>sinh(z) = (exp(z)-exp(-z))/2.
@return sinh(z) where z is this Complex number.
*/
public Complex sinh() {
return new Complex(sinh(x)*Math.cos(y),cosh(x)*Math.sin(y));
}
/**
Hyperbolic cosine of this Complex number
(doesn't change this Complex number).
<br>cosh(z) = (exp(z) + exp(-z)) / 2.
@return cosh(z) where z is this Complex number.
*/
public Complex cosh() {
return new Complex(cosh(x)*Math.cos(y),sinh(x)*Math.sin(y));
}
/**
Tangent of this Complex number (doesn't change this Complex number).
<br>tan(z) = sin(z)/cos(z).
@return tan(z) where z is this Complex number.
*/
public Complex tan() {
return (this.sin()).div(this.cos());
}
/**
Negative of this complex number (chs stands for change sign).
This proces a new Complex number and doesn't change
this Complex number.
<br>-(x+i*y) = -x-i*y.
@return -z where z is this Complex number.
*/
public Complex chs() {
return new Complex(-x,-y);
}
/**
String representation of this Complex number.
@return x+i*y, x-i*y, x, or i*y as appropriate.
*/
public String toString() {
if (x!=0 && y>0) {
return x+" + "+y+"i";
}
if (x!=0 && y<0) {
return x+" - "+(-y)+"i";
}
if (y==0) {
return String.valueOf(x);
}
if (x==0) {
return y+"i";
}
// shouldn't get here (unless Inf or NaN)
return x+" + i*"+y;
}
}
参考资料:http://www.math.ksu.e/~bennett/jomacg/c.html
热心网友
时间:2024-10-19 23:43
可以免费睇片啊种程序啊,帮忙做个绐我吧!
热心网友
时间:2024-10-19 23:43
要什么功能的 程序?