Dear:
Reading the Core Language cited above I typed the following instructions:
odeplot[de_, y_, {x_, x0_, x1_}, opts : OptionsPattern[]] :=
Module[{sol},
sol = NDSolve[de, y, {x, x0, x1},
FilterRules[{opts}, Options[NDSolve]]];
if[Head[sol] === NDSolve,
$Failed,
Plot[Evaluate[y /. sol], {x, x0, x1},
Evaluate[FilterRules[{opts}, Options[Plot]]]]
]
]
odeplot[{y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], {x, 0, 10}]
Unfortunatelly it did not work but it worked when I delete the If, as you can see bellow (Plts Attachded):
odeplot[de_, y_, {x_, x0_, x1_}, opts : OptionsPattern[]] :=
Module[{sol},
sol = NDSolve[de, y, {x, x0, x1},
FilterRules[{opts}, Options[NDSolve]]];
Plot[Evaluate[y /. sol], {x, x0, x1},
Evaluate[FilterRules[{opts}, Options[Plot]]]]
]
Could you help me why does not work a simple program from Tutorial Collection ?
Thanks,
Ana
Attachments: