?? example4_12.java
字號:
import java.applet.*;
import java.awt.*;
class Complex
{ double real,image;
public static void init(double a,double b,Complex c)
{c.real=a;c.image=b;}
public static double abs(Complex a)
{double x,y,r;
x=Math.abs(a.real);y=Math.abs(a.image);
if(x>y)r=x*Math.sqrt(1+(y/x)*(y/x));
else r=y*Math.sqrt(1+(x/y)*(x/y));
return r;}
public static void jia(Complex a,Complex b,Complex c)
{ c.real=a.real+b.real;
c.image=a.image+b.image;}
public static void jian(Complex a,Complex b,Complex c)
{ c.real=a.real-b.real;
c.image=a.image-b.image;
}
public static void cheng(Complex a,Complex b,Complex c)
{ double p,q,s;
c.real=a.real*b.real-a.image*b.image;
c.image=a.real*b.image+a.image*b.real;
}
public static void chu(Complex a,Complex b,Complex c)
{ double w;
if(Math.abs(b.real)>Math.abs(b.image))
{w=b.real+b.image*(b.image/b.real);
c.real=(a.real+a.image*(b.image/b.real))/w;
c.image=(a.image-a.real*(b.image/b.real))/w;
}
else
{w=b.real*(b.real/b.image)+b.image;
c.real=(a.real*(b.real/b.image)+a.image)/w;
c.image=(a.image*(b.real/b.image)-a.real)/w;
}
}
public static void equal(Complex a,Complex b)
{a.real=b.real;a.image=b.image;}
}
public class Example4_12 extends Applet
{ public Complex f(Complex x)
{Complex c1,c2,a,b;
c1=new Complex();c2=new Complex();a=new Complex();b=new Complex();
Complex.init(1,2,a);Complex.init(-2,2,b);
Complex.jia(x,a,c1);
Complex.cheng(c1,x,c2);
Complex.jia(c2,b,c2);
return c2;}
public Complex Cmtcl(Complex x,double b,double eps)
{double rr=0,ri=0,y=0,y1=0;int m=0,n=0;
Complex x1;
x1=new Complex();
y=Complex.abs(f(x));
while(y>eps&&n++<10000)
{while(m++<100)
{rr=Math.random()*2*b-b;ri=Math.random()*2*b-b;
x1.real=x.real+rr;x1.image=x.image+ri;
y1=Complex.abs(f(x1));
if(y1<y)break;
}
if(m>100)b/=2;
else {Complex.equal(x,x1);y=y1;}
m=0;
}
return x;
}
public void paint(Graphics g)
{Complex x,y;
double b=1,eps=1e-7;
x=new Complex();Complex.init(0.5,0.5,x);x=Cmtcl(x,b,eps);
if(x.image<0)g.drawString("X="+x.real+""+x.image+"i",10,20);
else g.drawString("X="+x.real+"+"+x.image+"i",10,20);
y=new Complex();y=f(x);
if(y.image<0)g.drawString("f(x)="+y.real+""+y.image+"i",10,40);
else g.drawString("f(x)="+y.real+"+"+y.image+"i",10,40);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -