Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Chcel by som naprogramovať fciu na počítanie n-tej odmocniny z čísla x.
Nevedel by niekto poradiť, neviem totižto spraviť tento algoritmus, lebo nepoznám v podstate ako sa odmocňuje alebo čo je to vlastne tá odmocnina. Tu som sa už na to pýtal, ale nevedeli poradiť.
Offline
↑ pizet:
Tady máš funkci (v Delphi), která umí vypočítat odmocninu pomocí Newtonovy metody.
Do funkce se zadá z čeho (st), jaká odmocnina (n) a přesnost výpočtu (tol)
Např. Jestliže chci vypočítat 3-tí odmocninu z -125 s přesností na 3 deseinná místa zadám
nejaka_promena_typu_string := Odmocnina('-125',3,0.001);
A zde je ta funkce
function Odmocnina(st:String;n:Integer;tol:Extended):String;
var i:Integer;
aa,x,nx,px,cislo:Extended;
begin
try
cislo := StrToFloat(st);
if cislo=0 then
Result := '0'
else
begin
if (st[1]='-')and(n mod 2=0) then
begin
MessageDlg('Sudá odmocnina ze záporného čísla neexistuje',mtError, [mbOK],0);
Exit;
end;
x := cislo;
px := 1;
nx := 0;
while abs(px-nx)>tol do
begin
px := x;
aa := x;
for i := 0 to n-3 do
aa := aa*x;
nx := ((n-1)*x+cislo/aa)/n; //obecně n-tá: nx := ((n-1)*x+cislo/Power(x,n-1))/n
x := nx; //Newtonova metoda
end;
Result := FloatToStr(nx);
end;
except
on EConvertError do MessageDlg(st+' není číslo',mtError, [mbOK],0);
end;
end;
Offline
V jakém jazyce to potřebuješ? Určitě Ti je mocnina bližší... To číslo, které chceš odmocnit hodit jako:
čislo na (1/základ odmocniny)
musel jsem napsat "na", jelikož mi nejde přepínat klávesnice a "stříšku" tu prostě nevymačkám. :-)
Offline

Nechť
,
. Pak
.
S využitím tohoto a funkcí z knihovny pro výpočet exponenciální funkce a přirozeného logaritmu už napíšeme velice krátký a srozumitelný algoritmus.
Offline
Stránky: 1