Robert Bradshaw wrote:
> On Oct 27, 2008, at 1:02 PM, Martin Rubey wrote:
>
>> "David Joyner" <[EMAIL PROTECTED]> writes:
>>
>>> On Mon, Oct 27, 2008 at 1:59 PM, Martin Rubey
>>> <[EMAIL PROTECTED]> wrote:
>>>> Dear William,
>>>>
>>>> thanks for your quick answer, even though it doesn't make me too
>>>> happy. I'm
>>>> having a hard time here, I must admit.
>
> One thing to keep in mind is that Sage is not just a CAS. In fact,
> this is one of the areas that needs the most work, so thanks for your
> feedback in making things better.
>
>>>> So far I thought that sage would do
>>>> most things out of the box, and it's only inconsistent (eg.,
>>>> arguments to plot,
>>>> plot3d and integrate vary wildly. There are several functions
>>>> plot, plot3d,
>>>> contour_plot, parametric_plot, etc. and not only one that decides
>>>> on the type
>>>
>>> I don't see the problem in having more than one function name for
>>> plotting.
>> Well, the problem is namespace pollution. Already now, if I hit
>> tab after x, I
>> get roughly 100 possible completions. In a strongly typed
>> environment, this is
>> unnecessary. I do not see any benefit in having more than one name
>> to do one
>> thing. Of course, if the argument types are the same you will
>> probably need to
>> have several functions.
>>
>>> Actually I think I agree with you about one (easily fixed)
>>> problem, since the
>>> various plot functions might be hard to find. It would be nice for
>>> all
>>> plotting functions to start with plot (eg, plot_parametric could
>>> be an alias
>>> for parametric_plot), so the variations can be found by tab
>>> completion.
>> Oh no, more namespace pollution :-)
>
> I think that namespace pollution is an issue, but having the plot_xxx
> options actually helps. It's a question of how easily one can use the
> tab key to get the command one wants.
>
>>>> Is there a way to obtain a power series solution to a
>>>> differential equation?
>>> David Harvey implemented something for 1st order linear DEs of the
>>> form
>>> y'=ay+b:
>>>
>>> sage: R.<t> = PowerSeriesRing(QQ, default_prec=10)
>>> sage: a = 2 - 3*t + 4*t^2 + O(t^10)
>>> sage: b = 3 - 4*t^2 + O(t^7)
>>> sage: a.solve_linear_de(prec=5, b=b, f0=3/5)
>>> 3/5 + 21/5*t + 33/10*t^2 - 38/15*t^3 + 11/24*t^4 + O(t^5)
>>>> Is there a way to solve an ODE?
>>>>
>>>> (ideally, without resorting to maxima or fricas syntax...)
>>> Yes, in the 1st or 2nd order linear cases, but the methods call
>>> Maxima:
>>>
>>> sage: x = var('x')
>>> sage: y = function('y', x)
>>> sage: desolve(diff(y,x) + y - 1, y)
>>> e^(-x)*(e^x + c)
>>> sage: f = desolve(diff(y,x) + y - 1, y, ics=[10,2]); f
>>> e^(-x)*(e^x + e^10)
>>> sage: plot(f)
>>>
>>> See calculus/desolvers for more details/examples. Hats off to
>>> Robert Bradshaw for this.
>> Ah, great. That's exactly what I was looking for (except, why is
>> it called
>> desolve and not solve, so I can find it...?) And why is it a
>> function?
>
> Solve means something different. It would be odd to change the
> behavior of solve to be "solve this diff eq" rather than "solve for
> this variable" whenever a derivative is present.
>
> We should probably make this a method as well. The desolve would
> check to see if such method exists on its first argument. Sometimes,
> especially for calculus-like applications, functional notation is
> more natural.
I think it's quite natural to do:
var("t")
y=function('y',t)
solve(diff(y,t,2)-2*diff(y,t)+diff(y,t)==3, y(t))
to "solve" for y(t).
Doesn't Axiom work this way?
Jason
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---