Help to solve non linear equation

Help to solve non linear equation - Messages

#1 Posted: 3/8/2024 12:59:05 PM
Lorenzo Scandolo

Lorenzo Scandolo

0 likes in 4 posts.

Group: User

Hi everyone,

I need your valuable support to solve a non linear problem.
I tried the functions solve, roots, Findroot, al_nleqsolve, bisection but I obtained only errors.
I red a lot of topic and tried different approach but without result.

I extracted a part of the entire file. The procedure goal is to evaluate the moment Vs curvature diagram in a reinforced concrete section. The section is discretized in fibers (10x10 in the examples).
In the attached file you will find one iteration (a fixed value of curvature) where the non linear solver have to find the position of neutral axis (x) that lead to the equilibrium of the section (between compression and tension forces).

I also tried (in another file) to avoid units but the result was always the same.

Thank in advance to anyone who can dedicate some time to my problem

Lorenzo




RC_forum_nonlinear.sm (82 KiB) downloaded 60 time(s).
#2 Posted: 3/8/2024 11:19:33 PM
StvMath

StvMath

35 likes in 56 posts.

Group: User

Here's a transparent, home grown bisection routine that does the job:

RC.png

RC_forum_nonlinear_b.sm (79 KiB) downloaded 61 time(s).
#3 Posted: 3/9/2024 1:48:11 PM
Lorenzo Scandolo

Lorenzo Scandolo

0 likes in 4 posts.

Group: User

Many thanks for the quick solution.
I'll include the code in the inner loop of the procedure.

Lorenzo
#4 Posted: 3/9/2024 5:28:55 PM
StvMath

StvMath

35 likes in 56 posts.

Group: User

Just noticed that, strictly, my bisection routine should be as follows:

Bisection.png

#5 Posted: 3/9/2024 11:40:43 PM
Lorenzo Scandolo

Lorenzo Scandolo

0 likes in 4 posts.

Group: User

Thanks. Yes I've already correct the code.
My initial question was about the possibility to use built-in function, as it normally takes less time.
If there isn't this possibility, no problem. I can write alternative solution method.
I've implemented the quasi-Newton method (Broyden method - starting from Davide Carpi) to evaluate the best strategy regarding time and number of iterations.

Advice is always welcome.

Regards,

Lorenzo
#6 Posted: 3/10/2024 5:32:48 PM
StvMath

StvMath

35 likes in 56 posts.

Group: User

Wrote

Thanks. Yes I've already correct the code.
My initial question was about the possibility to use built-in function, as it normally takes less time.

Regards,

Lorenzo




It isn't the bisection routine that's slowing the calculation; it's your melprod routine. Try the following instead:

melprod.png
#7 Posted: 3/11/2024 4:32:55 AM
Lorenzo Scandolo

Lorenzo Scandolo

0 likes in 4 posts.

Group: User

Thank you! With your improvement the speed is significantly increased
Wonderful
  • New Posts New Posts
  • No New Posts No New Posts