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
nn-tih korenov, ima vrnjena tabela seveda
n
elementov).