3 Scilab |
Der Befehl
[Ergebnis, Abweichung, info] = fsolve(Startwert, Funktion);
kann zur Suche nach Nullstellen einer Funktion verwendet werden.
Dabei wird ausgehend vom Startwert nach einer Nullstelle der Funktion gesucht. Als Ergebnis werden die gefundene Nullstelle, der zugehörige Funktionswert und ein Informationscode geliefert. Nur wenn der Informationscode 1 ist, war die Nullstellensuche erfolgreich.
Im Beispiel wird die Gleichung ex+2x=7 gelöst, indem die Nullstelle von f(x)=ex+2x-7 ausgehend vom Startwert x=1 gesucht wird:
function [y] = f(x) y = exp(x) + 2 * x - 7; endfunction [x, v, info] = fsolve(1.0, f); if(1 == info) then mprintf("Nullstelle: x = %g\n", x); else mprintf("Keine Nullstelle gefunden!\n"); end
Für bessere Konvergenz der Nullstellensuche kann auch die erste Ableitung der Funktion mit angegeben werden:
function [y] = f(x) y = exp(x) + 2 * x - 7; endfunction function [y] = dfdx(x) y = exp(x) + 2; endfunction [x, v, info] = fsolve(1.0, f, dfdx); if(1 == info) then mprintf("Nullstelle: x = %g\n", x); else mprintf("Keine Nullstelle gefunden!\n"); end