0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 6
|
|
1 | |
MathCAD 14 Создание матрицы из переменных11.12.2018, 15:17. Показов 5154. Ответов 11
Заранее извиняюсь если таковая тема уже была, но среди такого большого количества, похожий вопрос я найти не смог.
Дело вот в чём: Недавно начал рассчитывать изгиб жёстких пластин методом конечных разностей, и захотелось сделать хорошую програмку в маткаде. При расчёте определённого количества точек приходится каждый раз заполнять большую(относительно) матрицу. Если для 4-х точек матрица ещё 7 на 7, то для 8 точек она уже 11 на 11, а для 16-ти 17х17. Вопрос-Можно ли каким-нибудь образом составить программу или уравнение для задания похожей матрицы из переменных?: ЗАРАНЕЕ СПАСИБО!
0
|
11.12.2018, 15:17 | |
Ответы с готовыми решениями:
11
Создание переменных новых переменных в процессе работы программы Создание переменных Создание переменных =) Создание переменных |
0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 6
|
|
12.12.2018, 01:26 [ТС] | 3 |
Саму задачу по изгибу пластины я решил. Проблема состоит в том, что для большого количества точек самостоятельно заполнять матрицу перемещений скучно и занимает слишком много времени. Всё что я нашёл на данный момент в интернете это задание матрицы с помощью матричной функции matrix, но мне нужна матрица с переменными, а не с числами.
Если интересно то вот скудненькая программа для 4х точек. Вложение 992158
0
|
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
|
|
12.12.2018, 01:43 | 4 |
перезагрузите вложение
зависимость размера матрицы от числа точек не вижу, а пока символьное отображение по фактическому размеру матрицы по второму варианту (с нулями) нужно правило формирования
0
|
0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 6
|
|
13.12.2018, 01:00 [ТС] | 5 |
Правило формирования таково:
Так как пластина квадратная и загружена равномерно распределённой нагрузкой то появляется симметрия относительно координатных осей. W1,W2,...,Wn - узлы сетки которую мы накладываем на пластину (в них мы и рассчитываем прогибы). Чем больше узлов, тем точнее решение. Шаг между узлами (dx и dy) мы уменьшаем в 2 раза, тем самым увеличиваем количество узлов. При шаге равном h получается 4 уравнения при 4х неизвестных (W1,W2,W3,W4), при h/2 - 9, при h/4 - 25, при h/8 - 81. Далее: Нули - это точки в которых пластина закреплена, её прогибы тем самым в этих точках равны нулю. Крайние строки и столбцы в матрице - это законтурные точки. Они необходимы для записи дифференциального уравнения равновесия элемента пластинки (уравнение Софи Жермен) в центральных разностях. Если край пластины шарнирно опёрт, то прогиб в законтурных точках равен отрицательному значению крайних внутриконтурных точках. В случае жёсткого защемления прогибы равны. Вот как пример матрица при шаге равном h/3: Вот вроде всё. Буду очень признателен если поможете составить уравнение для задания таких матриц. Забыл сказать, что три нуля по углам в общем-то не нужны, и на их месте может быть что угодно. Также вот ещё раз маткадовский файл: Рассчёт пластин.rar Вот чего мне удалось достичь за последнее время: Рассчёт пластин.rar Я попробовал просто задать в given некое подобие симметрии, граничных условий и законтурных точек, но к сожалению что-то я делаю не так, поправьте пожалуйста!
0
|
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
|
|
13.12.2018, 07:48 | 6 |
честно говоря, ничего не поняла в вашей задаче...
пока чисто символьное отображение матрицы... картинка и файл в спойлере Кликните здесь для просмотра всего текста
если сможете привязать матрицу к своей задаче, не забудьте показать конечный результат
0
|
0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 6
|
|
14.12.2018, 23:28 [ТС] | 7 |
Спасибо вам огромное!!!
Я ещё не достиг такого уровня и плохо понимаю как это работает, но это выглядит круто! Появилась только одна проблема, рассказываю: Как я уже говорил мы определяем перемещение в узлах. МКР делает это с помощью решения СЛАУ. Число уравнений в СЛАУ равно числу узловых точек. Когда я задавал матрицу вручную то писал литерные индексы, потом я задавал матрицу из нужных уравнений(K(f,i,j)), так, что он мне сам её заполнял, приравнивал к ней вектор столбец правых частей и затем применял блок решений given find. Теперь же в основной ("начальной") матрице стоят матричные индексы, и соответственно блок решений не хочет мне ничего считать. Получить ответ удаётся лишь в случае когда самостоятельно прописываешь уравнения в блоке. вот также маткадовские файлы: Распл.rar Буду очень признателен если опять поможете, остался последний рывок)
0
|
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
|
|
14.12.2018, 23:55 | 8 |
Сообщение было отмечено MadDogMan как решение
Решение
MadDogMan, дело в том, что у вас в блоке given-find как такого W нет, маткад и не понимает, что от него хотят...
вариант решения
1
|
0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 6
|
|
15.12.2018, 00:24 [ТС] | 9 |
Отлично всё получилось!!!
Только вот при a больше 2х Find(W) не пишет ответ, не знаете с чем это может быть связано? Расчёт квадратной пластины загруженной равномерно распределённой нагрузкой - финал.rar
0
|
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
|
|
15.12.2018, 00:30 | 10 |
0
|
0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 6
|
|
15.12.2018, 00:37 [ТС] | 11 |
Может у меня в настройках нужно что-то поменять? Он мне ничего не выдаёт при а > 2 ((
0
|
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
|
|
15.12.2018, 00:47 | 12 |
Я ничего в настройках не меняла. Версия маткад 15 м045.
0
|
15.12.2018, 00:47 | |
15.12.2018, 00:47 | |
Помогаю со студенческими работами здесь
12
Создание переменных Создание глобальных переменных Создание переменных на лету Создание переменных в цикле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |