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

Find() works but not solve

SOLVED
Highlighted
JXB
Alexandrite

Find() works but not solve

To all experts,

 

I am breaking down an investigation I am hoping to do to simple blocks. I am looking at creating “dummy” bi-modal PSDs to meet a specific rms value. See attached mcad15 sheet

If I specify the values fn, zeta1, A1, alpha and p is there a way of Mathcad finding the zeta2 value required to get a given rms value? A solve is returning “no solution found” but it works with a Find(). I believe one cannot use Find() in a program

 

Ultimately, I would like to create a number of f dummy PSDs with the same (or near) rms value by changing the parameters. For example, I would like to specify a series of alpha values and get a vector of rms value

 

Thanks

Regards

JXB

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Find() works but not solve

The symbolic "solve" tries to give you an exact result, so it first tries to integrate symbolically which it obviously is not capable of - thats the reason it finds no solution.

 

Fortunately you are looking just for numeric results and so you definitely should use Mathcads numeric methods like the solve block you had implemented or one of the two flavors of the "root" command:

B1.PNG

You sure can use a solve block or the "root" command in a program. You should turn them into a function of the variables you wish to change and in case of the solve block you may even add the guess value as argument of that function.

The attached worksheet shows how to do that and somehow I got the impression that the function zeta.1 based on the root command works faster than zeta.2 based on the solve block.

B2.PNG

7 REPLIES 7

Re: Find() works but not solve

The symbolic "solve" tries to give you an exact result, so it first tries to integrate symbolically which it obviously is not capable of - thats the reason it finds no solution.

 

Fortunately you are looking just for numeric results and so you definitely should use Mathcads numeric methods like the solve block you had implemented or one of the two flavors of the "root" command:

B1.PNG

You sure can use a solve block or the "root" command in a program. You should turn them into a function of the variables you wish to change and in case of the solve block you may even add the guess value as argument of that function.

The attached worksheet shows how to do that and somehow I got the impression that the function zeta.1 based on the root command works faster than zeta.2 based on the solve block.

B2.PNG

Re: Find() works but not solve

This cannot be solved symbolically. But... Are you sure your definition of H is correct?

In the denominators you are adding r1^4 to r1^2. That should throw an error if r1 has units (I suppose it hasn't, because r1 is the ratio of f and fn), but still...

Needless to say: if that first term under the root would be (1-r1)^2 or (1-r1^2) the integral would easily solve symbolically.

 

Success!
Luc

 

 

Re: Find() works but not solve

Thanks a lot for the solution. Another block sorted.

Re: Find() works but not solve

Appreciate I put this together quickly last night but it seems correct to me. The "famous" transmissibility for a 1-DoF model

Re: Find() works but not solve

Playing with some alpha & p parameters. Would there be a way of plotting a surface plot (x,y,z)=(alpha,p,zeta2)?

Re: Find() works but not solve


@JXB wrote:

Playing with some alpha & p parameters. Would there be a way of plotting a surface plot (x,y,z)=(alpha,p,zeta2)?


Sure! zeta.1 and zeta.2 already are functions of the two arguments, so you may 3D-pot them directly, but I'd rather suggest using CreateMesh for better control about the ranges of input variables.

Unfortunately the calculation is quite sensitive to the ranges of alpha and p. As soon as the calculation fails for just one combination of alpha and p, the whole plot fails.

zeta.1 may fail because of the interval I had chosen (10^-8 to 2). function values at the start and at the end of that interval must have opposite sign.

zeta.2 may fail because of the guess value not being optimal for the chosen arguments.

You have to experiment a bit.

B1.png

Re: Find() works but not solve

thanks. Yes I have noticed the sensitivity hence me playing with the data. I think I have have almost a range of realistic value as I added another block to my problem and it seems to work