7.2.1. Ньютон итерацияларини символли кўринишда амалга ошириш
Символли амалларни дастурлашни f(x)=0 кўринишидаги чизиқсиз тенгламаларни Ньютоннинг итерациялар усули билан ечиш мисолида кўрайлик. Маълумки Ньютон усули қуйидаги формулага асосан итерацион ҳисоблашларга асосланган:
xi+1=x1+f(x1)/f'(x1).
Уни символли кўринишда дастурлаймиз:
> NI := proc( f,x )
description "Chiziqsiz tenglamalarni yechish";
local i;
> i:=x-f/diff(f,x);
> unapply(i,x) end;
> print( NI );
Бу ерда итерацион формулани аналитик кўринишда олиш учун unapply функцияси ишлатилган. Энди ечилиши зарур бўлган ифода берилса ечимнинг аналитик ифодасини олиш мумкин:
> f:=sin(x)^2-0.5;
> T:=NI(f,x);
Сўнгра х учун бошланғич яқинлашишни х=х0 кўринишида бериб қатор итерациялар учун ҳисоблаш натижаларини олиш мумкин:
> x0:=0.2;
> to 8 do x0:=T(x0);od;
Бу мисолдан бошланғич сакрашлардан кейин тезлик билан аниқ ечимга яқинлашилганлигини кўриш мумкин. Ушбу усул ёрдамида тенгламанинг фақат битта илдизини топиш мумкин. Бошқа илдизлар бошланғич шартни ўзгартириш йўли билан аниқланади, масалан:
> x0:=5.0;
> to 8 do x0:=T(x0);od;
Юқорида олинган дастур ёрдамида бошқа функцияларни (тенгламаларни) ҳам ечиш мумкин. Масалан ln(x^2)-0.5=0 чизиқсиз тенгламани ечишни кўрайлик:
> f:=ln(x^2)-0.5;
> T:=NI(f,x);
> x0:=0.2;
> to 8 do x0:=T(x0);od;
Бу ерда итарацион формула бошқача кўринишга эга бўлди (бундай бўлиши табиий), лекин бунга қарамасдан бир неча итерациялардан кейин аниқ илдизга яқинлашилди.
Do'stlaringiz bilan baham: |