cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X

functions within functions

ptc-4534259
1-Visitor

functions within functions

I am wondering how one uses a function within a function. For exampe:

t=0,1..10

f(t):=2*t

then t and f(t) are vectors of length 10. t contains the 11 numbers 0-10 and f(t) contains the 11 numbers 0 through 20

Now, I need to use the values of f(t) in another equation, like:

g(f(t)):=10*f(t)

I should be able to get a vector of 11 numbers ranging from 0 to 200, but I can not make this work.

In my actual problem I am using an ODE solver to get the values f(t) and so I can't just change the algebra. I need to use the values of f(t) in another equation? HOW DO I DO THIS

ACCEPTED SOLUTION

Accepted Solutions
Werner_E
25-Diamond I
(To:ptc-4534259)

define g(x):=10*x and then evaluate g(f/t))=

View solution in original post

4 REPLIES 4
Werner_E
25-Diamond I
(To:ptc-4534259)

define g(x):=10*x and then evaluate g(f/t))=

The description you gave does not match the math you wrote. The t = 0..10 created a range variable, not a vector. The function f(t) = 2*t doesn't care what t is, so when you use t in f(t) = you get a range result, not a vector.

Werner has the correct functions above, and they will work with either range or vector arguments, but I think what you want is a vector. That vector needs to be defined before using it as the argument in the evaluation.

Another tip: when defining a function, any variable listed in an argument list ignores any prior use of the variable. So the 2*t in the definition of f(t) doesn't really know anything about the t range variable at that point. Thus, t can be anything, a scalar, a range variable, or a vector when the function is evaluated, depending upon what is put in the argument list during the evaluation.

t:=0,1..10

f(t):=2*t

g(t):=10*f(t)

inside the parethesis adjecent to the g should contain all the variables that would be used within the equation.

example

A:=0,1..10

B:=0,2...6

C(A):=A/3

D(B):=2*B

E(A,B):=C(A) - D(B)

Werner_E
25-Diamond I
(To:ptc-5000285)

There is no need for the definition of those range variables - they do not affect the function definitions with their formal parameters which happen to be of the same name.

Announcements

Top Tags