Перейти к публикации

Решение нелинейного уравнения методом бисекции


Рекомендованные сообщения

 
 Доброго времени суток всем участникам форума. За неимением опыта работы со скриптами на apdl в Ansys обращаюсь за помощью к знатокам. Задача в следующем: необходимо написать макрос решения нелинейного уравнения с помощью метода бисекции. Суть метода известна, для меня вопрос каким образом это записать в скрипте? Само уравнение: X^3-cos(x)+1=0 взято из примера решения в mathcad для сравнения результатов. Заданная точность  Е=10^-10,  интервал поиска [-0,6 ; -0,4].  Заранее благодарен за помощь!
Ссылка на сообщение
Поделиться на других сайтах


1 час назад, Pavel.V. сказал:

Суть метода известна, для меня вопрос каким образом это записать в скрипте?

APDL - это язык из последовательных команд примерно одинакового синтаксиса:

NAME,ARG1,ARG2,ARG3

где NAME  - имя команды, а дальше идут ее аргументы, которые могут быть условно произвольными, в зависимости от команды.

Вас, пожалуй, отдельно будут интересовать такие команды как

*IF

*ELSE

*DO

*ENDDO

*WHILE

звездочка (*) здесь - это часть имени команды.

Подробности по командам есть в полной мере в справке.

Изменено пользователем soklakov
Ссылка на сообщение
Поделиться на других сайтах

@soklakov

Успехи налицо.

 

Файл с функцией FNC.txt

!=================================

FNC=ARG**3-cos(ARG)+1

!=================================

 

Файл с солвером. Результат содержится в переменной SOL если не достигнуто ограничение по итерациям.

!=================================

*afun,rad

x1=-0.6
x2=-0.4

MaxIter=100

*do,i,1,MaxIter,1

     *if,abs(x1-x2),lt,1e-10,then
         SOL=(x1+x2)/2
         *exit
     *endif

     dx=(x2-x1)/2
     xi=x1+dx

     ARG=x1
     /INPUT,FNC.txt
     RES1=FNC

     ARG=xi
     /INPUT,FNC.txt
     RESi=FNC


     *if,RES1*RESi,lt,0,then
         x2=xi
     *else
         x1=xi
     *endif

*enddo

ARG=
DX=
FNC=
MAXITER=
RES1=
RESi=
Xi=

!=================================

 

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, soklakov сказал:

Успехи? В чем?

Твои в механикл "мать его" апдле. А ты про что подумал?

Ссылка на сообщение
Поделиться на других сайтах

- Как выучить основные команды на апдл?

- Попить пиваса с Борманом!

 

:biggrin:

 



- А что будет, если с Боманом дунуть? :g:

 

Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Борман сказал:

Твои в механикл "мать его" апдле. А ты про что подумал?

Про то и подумал. Только думаю... успехи мои в апдле за последние десять лет мало изменились, как и сам апдл. А циклы и условные переходы писать еще в школе учат.

Ссылка на сообщение
Поделиться на других сайтах

Только следует знать, что для расчётов apdl оооочень медленный, медленнее того же визуал бейсика на порядки (даже не в разы), так что решение примерно 100000 уравнений в нём занимает часы. Так что может придётся выносить код при больших вычислениях наружу, на c++ или каком другом быстром языке писать и организовывать обмен информацией

Ссылка на сообщение
Поделиться на других сайтах

Скриптовые языки не для того придумывают. Еще бы на змеюке скорость искали :) 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



  • Сообщения

    • ALEKS
      Презентация пройдёт в Герцлии 5 декабря и в Кейсарии 26 ноября сего года. Записывайтесь у секретаршы Симатрона.
    • Artas28
      Что означает запись, например @135:=@127+@802;//(X*COR*POS) @140:=@135-#10 @  - ?  := ?  
    • Artas28
      Добрый день! Есть у кого программа для Inspection Plus. Измерение отверстия или вала по трем точкам (O9823). Желательно для Syntec. А то в станок O9804 Векторная калибровка радиуса сферического наконечника щупа загрузили, а измерение отв. по 3-м точкам нет:((
    • Guest_by
      Попробуйте так:   CIMFIL/ON,GOHOME     XX=POSTF(2,1,1867,1)    FEDRAT / 123.000000,  MMPM        XX=POSTF(13)                 XX=POSTF(2,1,1867,0)            XHOME=POSTF(1,3,130)             YHOME=POSTF(1,3,131)   ZHOME=POSTF(1,3,132)   FHOME = 8000 POSTN/ALL           POSTN/OUT,7,1,26,ZHOME,F,FHOME POSTN/OUT,24,XHOME,25,YHOME CIMFIL/OFF
    • mamomot
      Понятно! Да я о Вас давно все понял... Вы, главное, не беспокойтесь...
    • gudstartup
      вы тоже не видите ответа в этом вопросе ... про барабаны не знаю но по головам своих учеников он стучать любил от этого гварнери выглядит таким забитым
    • maxx2000
      @mamomot странная манера у тебя трактовать слова и приписывать эту трактовку в заслуги автора. По моему мнению, все кто требует решения для каждого конкретного случая когда достаточно лишь изучить инструментарий, обезьяны, а не все. Почему? Потому что даже обезьян учат кнопки давить не задумываясь. Нажал на кнопку-получил результат. Коллеги твои плюются может потому что такие же обезьяны-кнопконажиматели. Пусть научатся моделить отливки, а не заниматься хнёй. Уровень в твоей конторе мне примерно понятен, по твоим статьям. НОРМАЛЬно, т.е. и так сойдёт. Пусть изучают Компас, учатся конструировать и у них не будет необходимости просить кого-то что-то делать в ТФ. И не понятно, чё ты так возбудился, уже должен был успокоиться. Вопрос риторический, ответа не требует.   Операция проецирвоания кривой и протягивания это базовый функционал для ВСЕХ CAD @Guhl а, я не говорил что он делал скрипки 
    • Guhl
      Да я вообще всегда считал, что Страдивари барабаны делает. Но только для конкретных пацанов
    • ID_Hacker
      Infeed - это выпрямитель-рекуператор. Обычно, на станках можно отключить электропитание силовых цепей (состояние когда гидравлика отключается), где то есть отдельные кнопки, где то кнопкой аварийного останова реализуют. Если так возможности нет, можно через параметры привода перевести устройства в состояние настройки, P10 вроде параметр. Лучше возьмите ПО симатик стартер для этого. Ну и выше уже описали процедуру изменения.
    • maxx2000
      @Guhl Амати учитель Страдивари, в свою очередь у Страдивари было как минимум два ученика. Или ты о каком страдивари? Что тебе не нравится?
×
×
  • Создать...