Help to solve non linear equation

Help to solve non linear equation - Сообщения

#1 Опубликовано: 08.03.2024 12:59:05
Lorenzo Scandolo

Lorenzo Scandolo

0 сообщений из 4 понравились пользователям.

Группа: 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 КиБ) скачан 37 раз(а).
#2 Опубликовано: 08.03.2024 23:19:33
StvMath

StvMath

35 сообщений из 56 понравились пользователям.

Группа: User

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

RC.png

RC_forum_nonlinear_b.sm (79 КиБ) скачан 30 раз(а).
#3 Опубликовано: 09.03.2024 13:48:11
Lorenzo Scandolo

Lorenzo Scandolo

0 сообщений из 4 понравились пользователям.

Группа: User

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

Lorenzo
#4 Опубликовано: 09.03.2024 17:28:55
StvMath

StvMath

35 сообщений из 56 понравились пользователям.

Группа: User

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

Bisection.png

#5 Опубликовано: 09.03.2024 23:40:43
Lorenzo Scandolo

Lorenzo Scandolo

0 сообщений из 4 понравились пользователям.

Группа: 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 Опубликовано: 10.03.2024 17:32:48
StvMath

StvMath

35 сообщений из 56 понравились пользователям.

Группа: 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 Опубликовано: 11.03.2024 04:32:55
Lorenzo Scandolo

Lorenzo Scandolo

0 сообщений из 4 понравились пользователям.

Группа: User

Thank you! With your improvement the speed is significantly increased
Wonderful
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений