Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations GregLocock on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Find maximum of a discontinuous function.

Status
Not open for further replies.
Replies continue below

Recommended for you

You assigned a function to a single-valued variable, which is what's causing the error. You need to make x an indexed variable, and make Taa and indexed variable.

TTFN
faq731-376
7ofakss
 
Sorry, I didn't got it.
I tried, but nothing.
I don't know how to do that.
 
The underlying problem with your error is that x is a range variable not a vector. In Mathcad, a range variable is an iterator (think of it as an implied for-loop) and you must (normally) have an instance of a range variable on the left hand side of an assignment as well as on the right. Were Mathcad to have executed your statement Taa:=Ta(x), you would probably just have ended up with the value of Ta for the last value of x.

Given IRStuff's amended worksheet, you can apply the modified Ta to x (which is now in vector form) by using the vectorization operator. If you don't use the vectorization operator, then Mathcad will try to apply Ta to the vector x rather than each element of x (which is what you want). Unfortunately, Mathcad is a bit inconsistent with the use of logical operators and vectors. It automatically vectorizes single comparisons but doesn't allow the upper and lower bounded form of comparison you use; nor does it allow the logical operators and, or, xor or not to directly apply to vectors (or any other type of array) - the vectorize operator must be used.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor