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

Community Tip - Did you get an answer that solved your problem? Please mark it as an Accepted Solution so others with the same problem can find the answer easily. X

I am getting error as this value must be a scalar in polyroots function

vveeran
4-Participant

I am getting error as this value must be a scalar in polyroots function

Hi all,

I am getting error as 'This value must be a scalar

in polyroots function'.

Please can anyone help me.

I attached my mathcad code below.

1 ACCEPTED SOLUTION

Accepted Solutions

Which version and maintenance release of Mathcad are you using?

Maybe the problem is due to a bug in an older version which already is fixed?

Do you get the error already in the last line of your sheet when you just define the function r or when you try to evaluate it via r(10)=

I also experience no problem in evaluating your function r (Mathcad 15, M045).

When calculating your various coefficients a(i), b(i), etc. every call evaluates the solve blocks again and again. This could be speeded up significantly by creating a function which calls the solve blocks just once and then calculates and returns ALL of the necessary coefficients in a vector.

Doing so would be quite some work in rewriting the sheet but probably worth the time spent.

Her a small example - the function I1(i): Your version of this function calls the solve block for f three times while the version below calls it only once (and we don't need the function x1(i) and x2(i) you defined above anymore):

using this new function I1 and a similar one for I2 already cuts the time to calculate r to one third and the whole sheet could be speeded up much, much more, I guess.

Nevertheless you experience that strange error. So lets try some changes (I am just poking around in the dark):

What do you get when you evaluate B(10)=? Do you get

If yes, try to reformulate your function r

Do you get the result or do you still experience that error?

View solution in original post

11 REPLIES 11
-MFra-
21-Topaz II
(To:vveeran)

Hi vetri,

It seems to me that there are no problems. It only takes a long time to compute ..

test eg vetri veeran.jpg

Greetings

Franc

vveeran
4-Participant
(To:-MFra-)

Dear Franc,

Thank you for your reply.

But, for me I am getting the same error as 'This  value must be a scalar'

Could you please attach your code.

Thanks.

-MFra-
21-Topaz II
(To:vveeran)

The polynomial is of the third degree, so we have three roots (all real or one real and two c.c.) for each i value. I have erroneously traced the root vector module. To trace the module of each root, varying i, it takes a long time.

test eg vetri veeran 1.jpg

test eg vetri veeran 2.jpg

Werner_E
24-Ruby V
(To:-MFra-)

F.M. wrote:

 

The polynomial is of the third degree, so we have three roots (all real or one real and two c.c.) for each i value. I have erroneously traced the root vector module. To trace the module of each root, varying i, it takes a long time.

Try the version here

Solved: Re: I am getting error as this value must be a sca... - PTC Community

for a speed boost 😉

vlehner
13-Aquamarine
(To:vveeran)

Hi Vetri,

I'm getting no errors as well.

And yes, as Frank said: It takes a lot of time for computing.

Can you simplify or reduce your equations?

Greetings, Volker

Volker

Which version and maintenance release of Mathcad are you using?

Maybe the problem is due to a bug in an older version which already is fixed?

Do you get the error already in the last line of your sheet when you just define the function r or when you try to evaluate it via r(10)=

I also experience no problem in evaluating your function r (Mathcad 15, M045).

When calculating your various coefficients a(i), b(i), etc. every call evaluates the solve blocks again and again. This could be speeded up significantly by creating a function which calls the solve blocks just once and then calculates and returns ALL of the necessary coefficients in a vector.

Doing so would be quite some work in rewriting the sheet but probably worth the time spent.

Her a small example - the function I1(i): Your version of this function calls the solve block for f three times while the version below calls it only once (and we don't need the function x1(i) and x2(i) you defined above anymore):

using this new function I1 and a similar one for I2 already cuts the time to calculate r to one third and the whole sheet could be speeded up much, much more, I guess.

Nevertheless you experience that strange error. So lets try some changes (I am just poking around in the dark):

What do you get when you evaluate B(10)=? Do you get

If yes, try to reformulate your function r

Do you get the result or do you still experience that error?

Here is a sheet where i have speeded up the second solve block which called the first one over an over again and was one main reason for the slow claculation.

The evaluation of r is now accelerated by a factor between 100 and 200 and there is still great potential for further improvements, once your problem with the polyroot function is solved.

vveeran
4-Participant
(To:Werner_E)

Dear all,

Thank you very much for your valuable comments.

Werner Exinger‌, As you mentioned in your reply,

I tried for B(10) and I got the same result as you got,

But, when I try to reformulate 'r' as you mentioned in the second line,

I experience the same type of error.

I am using mathcad 15.

Thanks.

PS.

Could you please attach the code for this,

https://www.ptcusercommunity.com/servlet/JiveServlet/showImage/2-492393-117216/pastedImage_3.png

> Could you please attach the code for this,

Why? There is nothing special about it and easily typed in.

If I understand your answer right you already tried it without success.

Furthermore that code is included in my second answer (I used co instead of coeff out of laziness.

vveeran
4-Participant
(To:Werner_E)

Dear Werner Exinger‌,

I opened several mathcad programs.

So, due to that I got that type of error.

I closed all the mathcad program and I restarted Mathcad

again, then I found that there is no such type of error.

Thanks again and all for your valuable comments.

Glad you found such an easy solution to your problem!

Top Tags