1. Sissejuhatus
Juurte arvutamine C-keeles on oluline osa nii arvulises analüüsis kui ka geomeetrilistes arvutustes. Juurte arvutamine tähendab ruutjuure, kuupjuure või mõne muu juure leidmist arvule. Käesolevas artiklis selgitatakse põhjalikult, kuidas C-keeles juuri arvutada, hõlmates teemat alustest kuni rakenduseni. Pärast lugemist oskate kasutada sqrt
funktsiooni, rakendada Newtoni meetodit ning arvutada mistahes astmejuuri pow
funktsiooniga, kaasates ka praktilised koodinäited.
2. Juurte arvutamise põhialused C-keeles
math.h
teek
C-keeles kasutatakse matemaatiliste funktsioonide jaoks standardteeki math.h
. Selles teegis on olemas funktsioonid nagu sqrt
(ruutjuur) ja cbrt
(kuupjuur) ning palju muid matemaatilisi funktsioone. Nende funktsioonide kasutamiseks tuleb programmi alguses lisada #include <math.h>
.
3. Juurte arvutamine funktsioonidega sqrt
ja cbrt
Ruutjuur (sqrt
)
sqrt
funktsioon arvutab etteantud arvu ruutjuure. Argumendiks antakse mitte-negatiivne arv ning tulemus tagastatakse double
tüübina. Allolev koodinäide näitab, kuidas sqrt
abil ruutjuurt leida.
#include <stdio.h>
#include <math.h>
int main(void) {
double num = 16.0;
double result = sqrt(num);
printf("Arvu %.2f ruutjuur on %.2f\n", num, result);
return 0;
}
Selles programmis määratakse num
väärtuseks 16.0 ja leitakse selle ruutjuur. Tulemus kuvatakse kujul: “Arvu 16.00 ruutjuur on 4.00”.
Kuupjuur (cbrt
)
cbrt
funktsioon arvutab arvu kuupjuure. cbrt
töötab ka negatiivsete arvudega, seega on see mugav juhul, kui soovite arvutada negatiivse arvu kuupjuurt. Järgmine koodinäide arvutab nullist üheksani kuupjuured ja näitab, et tulemuse kuubistamisel saadakse algne väärtus tagasi.
#include <stdio.h>
#include <math.h>
int main(void) {
for (double x = 0.0; x < 10.0; x+=1.0) {
double ans = cbrt(x);
printf("%f : %f\n", x, ans * ans * ans);
}
return 0;
}

4. Juurte arvutamine Newtoni meetodiga
Newtoni meetodi ülevaade
Newtoni meetod on iteratiivne lähenemine funktsiooni nullpunkti leidmiseks ja seda saab kasutada ka ruut- või muude juurte arvutamiseks. See on kasulik juhul, kui ei kasutata sqrt
funktsiooni või kui on vaja kohandatud lahendust.
Näidisrakendus
Alljärgnev programm näitab, kuidas Newtoni meetodiga ruutjuurt arvutada.
#include <stdio.h>
int main(void) {
double x, y, n;
printf("Sisestage arv: \n");
scanf("%lf", &n);
x = 1;
while(1) {
x = x - (x * x - n) / (2 * x);
y = x * x - n;
if ((y <= 0.00000001) && (y >= -0.00000001)) {
break;
}
}
printf("sqrt(%lf) = %lf\n", n, x);
return 0;
}
See programm arvutab kasutaja sisestatud arvu ruutjuure Newtoni meetodi abil.
5. Suvalise astmejuure arvutamine pow
funktsiooniga
pow
funktsiooni kasutamine
pow
funktsioon võimaldab arvutada arvu astmeid (eksponente). Selle abil saab leida nii ruut-, kuup- kui ka muid juuri. Näiteks ruutjuure leidmiseks tuleb eksponendiks määrata 0.5.
#include <stdio.h>
#include <math.h>
int main(void) {
for(int i = 0; i < 5; i++) {
printf("%d juur on %lf\n", i + 1, pow(i + 1, 0.5));
}
return 0;
}
See programm arvutab arvude 1 kuni 5 ruutjuured pow
funktsiooniga ja väljastab need.
6. Juurte arvutamise rakendused C-keeles
Praktilised näited
Juurte arvutamist kasutatakse mitmesugustes olukordades, näiteks geomeetriliste probleemide lahendamisel või statistilisel analüüsil. Näiteks punktidevahelise kauguse leidmisel või dispersiooni põhjal standardhälbe arvutamisel kasutatakse sageli ruutjuurt.
Veakäsitlus
Juurte arvutamisel tuleb olla ettevaatlik negatiivsete arvudega. sqrt
funktsioon annab negatiivse argumendi korral veateate, kuid cbrt
töötab ka negatiivsete arvudega. Kui on vaja arvutada negatiivse arvu ruutjuurt, tuleks lisada veakontroll ja vajadusel asjakohane käsitlus.
7. Kokkuvõte
Käesolevas artiklis tutvustasime erinevaid viise, kuidas C-keeles juuri arvutada. Rääkisime nii sqrt
ja cbrt
funktsioonide põhilisest kasutusest kui ka kohandatud lahendusest Newtoni meetodiga, tuues näiteid koodidega. Lisaks selgitasime, kuidas pow
funktsiooniga leida suvalise astmejuuri. Juurte arvutamise oskus on vajalik paljude praktiliste probleemide lahendamiseks ja loodetavasti aitas see artikkel teil teemat paremini mõista.