"Nyuton üsulu" səhifəsinin versiyaları arasındakı fərqlər

2.342 bayt əlavə edildi ,  2 il öncə
<source lang="python">
 
''' funksiyanın test edilməsi
''' тестирование функции
 
def f(x):
 
def newtons_method(x0, f, f1, e):
#f1 - производнаяtörəmə
x0 = float(x0)
while True:
</source>
 
=== PHP ===
<source lang="php">
<?php
// PHP 5.4
function newtons_method(
$a = -1, $b = 1,
$f = function($x) {
return pow($x, 4) - 1;
},
$derivative_f = function($x) {
 
return 4 * pow($x, 3);
}, $eps = 1E-3) {
 
$xa = $a;
$xb = $b;
 
$iteration = 0;
 
while (abs($xb) > $eps) {
 
$p1 = $f($xa);
$q1 = $derivative_f($xa);
$xa -= $p1 / $q1;
$xb = $p1;
++$iteration;
 
}
 
return $xa;
 
}
</source>
 
=== Octave ===
<source lang="octave">
function res = nt()
eps = 1e-7;
x0_1 = [-0.5,0.5];
max_iter = 500;
xopt = new(@resh, eps, max_iter);
xopt
endfunction
function a = new(f, eps, max_iter)
x=-1;
p0=1;
i=0;
while (abs(p0)>=eps)
[p1,q1]=f(x);
x=x-p1/q1;
p0=p1;
i=i+1;
end
i
a=x;
endfunction
function[p,q]= resh(x) % p= -5*x.^5+4*x.^4-12*x.^3+11*x.^2-2*x+1;
p=-25*x.^4+16*x.^3-36*x.^2+22*x-2;
q=-100*x.^3+48*x.^2-72*x+22;
endfunction
</source>
 
=== С ===
<source lang="cpp">
#include <stdio.h>
#include <math.h>
 
#define eps 0.000001
double fx(double x) { return x*x-17;} // hesablanan funksiya
double dfx(double x) { return 2*x;} // törəmə funksiya
 
typedef double(*function)(double x); // tapşırıq tipi function
 
double solve(function fx, function dfx, double x0) {
double x1 = x0 - fx(x0)/dfx(x0); // birinci approksimasiya
while (fabs(x1-x0)>eps) { // 0.000001 dəqiqliyinə çatana kimi
x0 = x1;
x1 = x1 - fx(x1)/dfx(x1); // növbəti approksimasiya
}
return x1;
}
 
int main () {
printf("%f\n",solve(fx,dfx,4)); // ekrana verilməsi
return 0;
}
</source>
 
=== C++ ===
<source lang="cpp">
typedef double (*function)(double x);
 
double TangentsMethod(function f, function df, double xn, double eps) {
double x1 = xn - f(xn)/df(xn);
double x0 = xn;
while(abs(x0-x1) > eps) {
x0 = x1;
x1 = x1 - f(x1)/df(x1);
}
return x1;
}
 
//İlkin appoksimasiya seçimi
xn = MyFunction(A)*My2Derivative(A) > 0 ? B : A;
 
double MyFunction(double x) { return (pow(x, 5) - x - 0.2); } //Sizin funksiya
double MyDerivative(double x) { return (5*pow(x, 4) - 1); } //Birinci dərəcəli törəmə
double My2Derivative(double x) { return (20*pow(x, 3)); } //İkinci dərəcəli törəmə
 
//Funksiyanın çağrılması nümunəsi
double x = TangentsMethod(MyFunction, MyDerivative, xn, 0.1)
</source>
 
== İstinadlar ==