Koren kompleksnega števila
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
Razredu Kompleksno.java
dodaj objektno metodo
kvadratniKoren
, ki deluje enako, kot metoda
kvadratniKoren
iz razreda Kompleksno2
.
Se pravi, da metoda vrne tabelo dveh kompleksnih števil, ki
sta kvadratna korena kompleksnega števila this
.
Naloga 2: n-ti koren kompleksnega števila
Razredu
Kompleksno2.java
dodaj metodo
1
| public Kompleksno2[] koren(int n) |
ki vrne tabelo
n
-tih korenov kompleksnega števila
this
. (Ker ima vsako kompleksno število
n
n
-tih korenov, ima vrnjena tabela seveda
n
elementov).