Rozwiązywanie zadań opisanych równaniami nieliniowymi 79
gdzie options - opcje poszukiwania rozwiązania ustalane poprzez wywołanie funkcji foptions lub w nowszych wersjach Matlaba przez optimset.
gdzie [] - pusta macierz zamiast wektora options powoduje przyjęcie standardowych wartości opcji.
lub
x = fsolve(fun,x0,[],pl,p2,.„)
gdzie pl,p2,... - parametry funkcji fun, od których zależy rozwiązanie.
gdzie fval - wartość funkcji celu, czyli sumy kwadratów błędów rozwiązań.
gdzie:
exitflag > 0 - rozwiązanie zbieżne,
exitflag = 0 - osiągnięto maksymalną liczbę iteracji,
exitflag < 0 - brak zbieżności procesu iteracyjnego.
gdzie:
output.iterations - liczba iteracji, output.funcCount - liczba szacowania funkcji celu, output.algorithm - wykorzystany algorithm, output.cgiterations - liczba iteracji CG, output.firstorderopt - optymalizacja rzędu pierwszego.
8. [x,fval,exitflag,outputjacob] = fsolve(fun,xO,options,pl,p2,.„) gdzie jacob - macierz Jacobiego funkcji/(a-) w punkcie ,v.
W Matlabie 4.2 funkcję fsolve wywołuje się z podaniem gradientu, stosując następującą postać polecenia:
options=foptions;
x=fsolve(fun,xO, options, grad, pl,p2,..); gdzie grad - /n-plik zawierający gradient funkcji y=f(x).
Należy zwrócić uwagę na fakt, że macierze w Matlabie zapamiętywane są kolejnymi kolumnami, a nie wierszami, jak by się wydawało. Z tego powodu gradient jest równy transponowanej macierzy Jacobiego danego układu równań nieliniowych.
Wykorzystanie funkcji fsolve do rozwiązywania układu równań nieliniowych zilustrowano na przykładzie równań węzłowych napięciowo-mocowych.