Maple Code for Steepest Descent
func:= (x,y) -> x^2 – y;
initx := 1;
inity := 1;
funcx := diff(func(x,y),x);
funcy := diff(func(x,y),y);
a1 := initx;
b1 := inity;
for I from 1 to 20 do
a := a1;
b:= b1;
currentval := evalf(func(a,b));
print(`current a ` = a, `current b` = b, `current val` = currentval);
fxpoint := evalf(subs({x = a, y = b}, funcx);
fypoint := evalf(subs({x = a, y = b},funcy);
print(`current gradient` = [fxpoint,fypoint]);
pathdiff := diff(func(a+fxpoint*t, b+ fypoint*t),t);
tmin := fsolve(pathdiff, t=0);
a1 := a + tmin*fxpoint;
b1 := b + tmin* fypoint;
func(a1,b1);
od:

Maple Code for Steepest Descent

  • 1.
    Maple Code forSteepest Descent func:= (x,y) -> x^2 – y; initx := 1; inity := 1; funcx := diff(func(x,y),x); funcy := diff(func(x,y),y); a1 := initx; b1 := inity; for I from 1 to 20 do a := a1; b:= b1; currentval := evalf(func(a,b)); print(`current a ` = a, `current b` = b, `current val` = currentval); fxpoint := evalf(subs({x = a, y = b}, funcx); fypoint := evalf(subs({x = a, y = b},funcy); print(`current gradient` = [fxpoint,fypoint]); pathdiff := diff(func(a+fxpoint*t, b+ fypoint*t),t); tmin := fsolve(pathdiff, t=0); a1 := a + tmin*fxpoint; b1 := b + tmin* fypoint; func(a1,b1); od: