-------- Original-Nachricht --------
Betreff:        Re: [R] Adding and Multiplying two Unevaluated Expressions
Datum:  Tue, 01 Dec 2009 23:49:39 +0100
Von:    Benjamin Müller <ben_mueller...@web.de>
An:     Rolf Turner <r.tur...@auckland.ac.nz>
Referenzen: <20091201144125.316...@gmx.net> <8e40e49f-e8fc-4fbd-8cc5-93789ffb0...@auckland.ac.nz>



This works fine for your example, but doesn't work as simple if there's more than these expressions.

In my example this would be in line 11:

newexp=as.expression(substitute(a+con1/con2*b^con3,list(a=newexp[[1]],b=expression(dx)[[1]],con1=eval(exp0,ls),con2=factorial(i),con3=1*i)))

this works just fine and you can still evaluate this. thank you very much!

If there's an easier way, let me know.
Greets,
Ben Müller


Rolf Turner schrieb:

On 2/12/2009, at 3:41 AM, Benjamin Müller wrote:

HI,

As I'm trying to compute Taylor series, I'm having problems in adding and multiplying unevaluated expressions. I searched for a solution but found none.

my Taylor function works fine for evaluating functions as you can see here:


rTaylorVal=function(exp,x0,dx,n) {

ls=list(x=x0)

newexp=eval(exp,ls)

exp0=exp

for (i in 1:n){
exp0=D(exp0,"x")
newexp=newexp+eval(exp0,ls)/factorial(i)*dx^i
}

return(newexp)

}

Where exp is an expression like exp=expression(x^2*sin(x)), x0 is the startvalue, dx the difference between startvalue and searched value and n is the length of the series.

So I tried to remove dx as a value, to get a Taylor series expression, but it doesn't work as simple multiplication (*) and accumulation (+) is not good for expressions.

That's my point so far, now my question:

Is it actually possible to add and/or multiply expressions, and how?

This may well be a case of the blind leading the partially sighted,
but for what it's worth my answer is ``Yes, but it's a kludge.''
One needs to use substitute, it seems to me.

E.g.:

e1 <- expression((x+y)^2)
e2 <- expression(1/(x^2 + y^2))
e3 <- as.expression(substitute(a+b,list(a=e1[[1]],b=e2[[1]])))
e3
D(e3,"x")
D(e3,"y")

Older and wiser heads may provide you with better counsel.

    cheers,

        Rolf Turner




######################################################################
Attention:This e-mail message is privileged and confidential. If you are not theintended recipient please delete the message and notify the sender.Any views or opinions presented are solely those of the author.

This e-mail has been scanned and cleared by MailMarshalwww.marshalsoftware.com
######################################################################


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to