Računalništvo 1 (PRA)

naloge / Koren kompleksnega števila

Koren kompleksnega števila

[oddaj domačo nalogo]
Na vajah smo sestavili razreda Kompleksno.java in Kompleksno2.java. V tej domači nalogi bomo dodali metode za računanju korenov.
Kompleksno.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Kompleksna stevila v kartezicni obliki

public class Kompleksno
{ 
    private double re; // realna komponenta
    private double im; // imaginarna komponenta
 
    public Kompleksno(double x, double y)
    {
	this.re = x;
	this.im = y;
    }
  
    public double abs()
    {
	return Math.sqrt(this.re*this.re + this.im*this.im); 
    }
  
    public double realna()
    {
	return this.re; 
    }
  
    public double imaginarna()
    {
	return this.im; 
    }
  
    //metoda fi vrne kot v polarnem zapisu kompleksnega stevila v radianih
    public double fi() 
    {
	return Math.atan2(this.im, this.re);
    }
  
    public Kompleksno vsota(Kompleksno w)
    {
	return new Kompleksno(this.re + w.re, this.im + w.im);
    }
  
    public Kompleksno zmnozek(Kompleksno w)
    {
	return new Kompleksno(this.re*w.re - this.im*w.im, 
			      this.re*w.im + this.im*w.re); 
    }
  
    //metoda za izpis
    public String toString()
    {
	return (this.re + " + " + this.im + " * i"); 
    }
}
Kompleksno2.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Kompleksna stevila v polarnem zapisu

public class Kompleksno2
{ 
    private double r; // absolutna vrednost
    private double fi; // kot
 
    public Kompleksno2(double r, double fi)
    {
	this.r = r;
	this.fi = fi;
    }
  
    public double abs()
    {
	return this.r; 
    }
  
    public double realna()
    {
	return this.r * Math.cos(this.fi); 
    }
  
    public double imaginarna()
    {
	return this.r * Math.sin(this.fi); 
    }
  
    public double fi() 
    {
	return this.fi;
    }
  
    public Kompleksno2 vsota(Kompleksno2 w)
    {
	double x = this.realna() + w.realna();
	double y = this.imaginarna() + w.imaginarna();
	double vsota_fi = Math.atan2(y, x);
	double vsota_r = Math.sqrt(x*x + y*y);
	return new Kompleksno2(vsota_r, vsota_fi);
    }
  
    public Kompleksno2 zmnozek(Kompleksno2 w)
    {
	return new Kompleksno2(this.r * w.r, this.fi + w.fi);
    }
  
    //metoda za izpis
    public String toString()
    {
	return (this.r + " * exp (i * " + this.fi + ")" ); 
    }
  
    public Kompleksno2[] kvadratniKoren()
    {
	Kompleksno2[] t = {new Kompleksno2(Math.sqrt(this.r),this.fi/2),
			   new Kompleksno2(Math.sqrt(this.r),this.fi/2 + Math.PI)};
	return t;
    }
}
Naloga 1: Kvadratni koren v kartezični obliki
Naloga 2: n-ti koren kompleksnega števila