Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X
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.
Solved! Go to Solution.
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?
Hi vetri,
It seems to me that there are no problems. It only takes a long time to compute ..
Greetings
Franc
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.
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.
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 😉
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
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.
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.
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!