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

Community Tip - Your Friends List is a way to easily have access to the community members that you interact with the most! X

24-Ruby IV

## Range variable - atavism

What is a Range variable?
This is a variable, without which it was impossible to do someone in old-old versions of Mathcad (Mathcad 4 I think but not Prime). There was no programming and technology for QuickPlot in this versions. Now, we have programming and technology of QuickPlon. But we continue to use the range variable according to habit, for convenience. But this sometimes creates some problems (one example here). The range variable is similar to the vector and some Mathcad users try to apply to the range variable tools intended purely for the vector.
My question is this!
Can you show me one Mathcad sheet where we can not do anything without a range variable?

One little example:

25 REPLIES 25
24-Ruby V
(To:ValeryOchkov)

Your vector variant still depends on a range (the for-loop!)

Basically a range can and should be used just for three different tasks:

1) index the elements of a matrix or vector

2) define a range for plotting

3) in a program in the definition of a loop

24-Ruby IV
(To:Werner_E)

>Your vector variant still depends on a range (the for-loop!)

Sorry, it was not a Range Variable but the programming construction For. See please

>Basically a range can and should be used just for three different tasks...

Sorry, can but not should...

Show please one Mathcad sheet where we must use a Range variable!

24-Ruby V
(To:ValeryOchkov)

> Sorry, can but not should...

Always use the tool and the method which is most clear, most easy, etc.

And if the best method is a range, you should use it.

Your method to create a vector sure is a way to do the task without ranges, but using a range on worksheet level or using a program with a for loop is simply the better and more clear way to achieve the task.

>

Show please one Mathcad sheet where we must use a Range variable!

Why?? Why should we try to avoid a range?

23-Emerald III
(To:ValeryOchkov)

It's no problem to do a For loop without using a range, because For works with vectors too:

However a range shows much more clearly what is going on.

So I guess the conclusion is: A range is not necessary, but while it's there it's better to use it (properly).

Success!

Luc

23-Emerald I
(To:ValeryOchkov)

How about the old (still working in Prime Express) matrix sequential calculator:

24-Ruby IV
(To:Fred_Kohlhepp)

Yes, Fred, we should use range variable in Mathcad versions without programming tools - old Mathcads and Mathcad Express. But now it is not good to have in Mathcad sheet both: range vars and vectors. A range variable is an atavism.

A propos!

Can you use not i:=1..10 but i:=stack(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)?

23-Emerald III
(To:ValeryOchkov)

There's a much simpler method to get that vector:

i:=matrix(9,1,max)+1

Success!

Luc

23-Emerald I
(To:ValeryOchkov)

I believe that the matrix equation that uses the index and index -1 to develop the next value in the matrix would not work without a range variable index.  If i is a vector, how do you address the next location in the solution matrix?

I would be happy to be proven wrong.

23-Emerald III
(To:Fred_Kohlhepp)

Smells like challenge!

You mean something like this?

Luc

23-Emerald I
(To:LucMeekes)

VERY NICE!

I stand proven wrong!  (I am a bit surprised that Express will allow recursion.)

23-Emerald III
(To:Fred_Kohlhepp)

That should be no surprise. Recursion is (at least, should be) a feature of a function. And definition of a function is (fortunately) still possible in Express, where programming isn't. So you can define a function, but you cannot use programming in the definition of a function; but the if() function is available in Express (again: in contrast to the 'if' programming construct).

Luc

24-Ruby IV
(To:LucMeekes)

There was a function until in old version Mathcad and we was able to create loops without for and while operators!

23-Emerald I
(To:ValeryOchkov)

@ValeryOchkov wrote:

There was a function until in old version Mathcad and we was able to create loops without for and while operators!

while loops do not (necessarily) require a range variable.  Both while and until test conditions and so can be constructed without a counting index.

23-Emerald III
(To:ValeryOchkov)
Valery,
Can you show a working example with the until() function?
(Proper usage of that function where it operates as specified...)

Luc
24-Ruby IV
(To:LucMeekes)

One picture from my old book - a bisection method of the root finding:

24-Ruby IV
(To:ValeryOchkov)

in Prime (the converting from Mathcad 15)

23-Emerald I
(To:LucMeekes)

As it was explained to me until is the same as a while loop.  The until loop tests at the end of the loop and the while loop tests at the start; so the until loop will execute at least once

24-Ruby IV
(To:Fred_Kohlhepp)

I think until works in Prime Express! While - not!

23-Emerald III
(To:ValeryOchkov)

Thanks Valery!

I was able to recreate your example sheet in Mathcad 11 (needs to be set to 'backwards compatibility', otherwise I get an 'Obsolete function' message).

The function until should work in Prime Express because it's a function AND it is not considered 'Premium'.

In contrast, 'while' is a programming construct, not a function, and programming is considered a Premium feature, so not available in Express.

However, I cannot show Prime (4) Express functionality using until, because I get the error message that 'until' is an unknown variable....

Luc

24-Ruby IV
(To:LucMeekes)

@LucMeekes wrote:

However, I cannot show Prime (4) Express functionality using until, because I get the error message that 'until' is an unknown variable....

Luc

Can you open in Prime (4) Express the file in attach?

23-Emerald III
(To:ValeryOchkov)

Valery,

I can open the file in Prime Express 4, no problem. After opening it shows the (saved) results. But when I recalculate:

So it's NOT because it's a 'Premium' function, but it's simply unknown.

Luc

Fred, do you get the same?

23-Emerald I
(To:LucMeekes)

@LucMeekes wrote:

Valery,

I can open the file in Prime Express 4, no problem. After opening it shows the (saved) results. But when I recalculate:

So it's NOT because it's a 'Premium' function, but it's simply unknown.

Luc

Fred, do you get the same?

Yes.  I'm fairly sure that "until" had disappeared from Mathcad some time before version 15.

23-Emerald III
(To:Fred_Kohlhepp)

The function 'until()' was declared obsolete in Mathcad 11. However if you set 'backwards compatibilty' it is still usable.

I understand from Valery's contribution that it (again) works as intended in Mathcad 15 and in Prime (but not Express).

Luc

24-Ruby IV
(To:Fred_Kohlhepp)

@Fred_Kohlhepp wrote:

As it was explained to me until is the same as a while loop.  The until loop tests at the end of the loop and the while loop tests at the start; so the until loop will execute at least once

We use the until loop only in one case, when the boolean variable that controls the loop takes value only after the first execution of the loop body. This cycle is not present in Mathcad and we must artificially set the value of this variable before entering the while loop.

But the universal loop in Mathcad is

24-Ruby IV
(To:ValeryOchkov)

See please one real problem when we use a Range Variable - not a Vector (one problem with Excel component in Mathcad Prime)