Metoda Newtona (zwana również metodą Newtona-Raphsona lub metodą stycznych) – iteracyjny algorytm wyznaczania przybliżonej wartości pierwiastka funkcji.
"Metoda Newtona-4 kroki" autorstwa Wojciech mula z projektu polski Wikipedia. Licencja CC BY-SA 2.5 na podstawie Wikimedia Commons.
Jeśli f ∈ C^2 [a, b] tworzę ciąg typu
Procedura trwa do momentu aż dla zadanej dokładności δ
Kod programu w C++:
#include<iostream>
#include<cmath>
using namespace std;
double fun(double x)
{
return exp(x)*log(x)-x*x;
}
double fun1(double x)
{
return exp(x)*log(x)+exp(x)*(1./x)-2.*x;
}
int main()
{
double a=1.0;
double b=2.0;
double ab=b-a;
double delta=0.001;
double x0=(a+b)/2.;
double x1;
while( fabs(ab) > delta)
{
x1=x0-fun(x0)/fun1(x0);
ab=x1-x0;
x0=x1;
cout<<x1<<endl;
}
return 0;
}
Otrzymujemy w kolejnych krokach miejsc zerowe:1.7398; 1.69657; 1.6946; 1.6946
piątek, 13 listopada 2015
Wariacja i odchylenie standardowe
Odchylenie standardowe – klasyczna miara zmienności, obok średniej arytmetycznej najczęściej stosowane pojęcie statystyczne. Intuicyjnie rzecz ujmując, odchylenie standardowe mówi, jak szeroko wartości jakiejś wielkości (takiej jak np. wiek, inflacja, kurs akcji itp.) są rozrzucone wokół jej średniej[1]. Im mniejsza wartość odchylenia tym obserwacje są bardziej skupione wokół średniej.
Program: obliczający wariację i odchylenie standardowe na podstawie danych wprowadzonych przez użytkownika.
Program wariacja;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
x:array[1..100] of real;
n,i:byte;
w,s:real;
begin
repeat
write('Wprowadz ilosc liczb(n): ');
read(n);
if (n<0) or (n>100) then writeln('Wprowadz liczbe wieksza od 0 i mniejsza lub r˘wna 100');
until (n>0) and (n<=100);
for i:=1 to n do
begin
write('Wprowadz liczbe x',i,': ');
read(x[i]);
end;
for i:=1 to n do s:=s+x[i];
s:=s/n;
for i:=1 to n do w:=w+sqr(x[i]-s);
w:=w/n;
writeln('Wariacja wynosi: ',w:0:2);
writeln('Odchylenie standardowe wynosi: ',sqrt(w):0:2);
readln;readln;
end.
Program: obliczający wariację i odchylenie standardowe na podstawie danych wprowadzonych przez użytkownika.
Program wariacja;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
x:array[1..100] of real;
n,i:byte;
w,s:real;
begin
repeat
write('Wprowadz ilosc liczb(n): ');
read(n);
if (n<0) or (n>100) then writeln('Wprowadz liczbe wieksza od 0 i mniejsza lub r˘wna 100');
until (n>0) and (n<=100);
for i:=1 to n do
begin
write('Wprowadz liczbe x',i,': ');
read(x[i]);
end;
for i:=1 to n do s:=s+x[i];
s:=s/n;
for i:=1 to n do w:=w+sqr(x[i]-s);
w:=w/n;
writeln('Wariacja wynosi: ',w:0:2);
writeln('Odchylenie standardowe wynosi: ',sqrt(w):0:2);
readln;readln;
end.
czwartek, 12 listopada 2015
Materiały
Dodatkowe materiały http://www2.fct.put.poznan.pl/NumMeth_Wyklad_1.pdf przesłane przez profesora
czwartek, 5 listopada 2015
Prezentacja i film o metodach numerycznych
Prezentacja i film o metodach numerycznych i możliwościach wykorzystania ich w arkuszu kalkulacyjnym.
Subskrybuj:
Posty (Atom)