2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Символьные вычисления в Matlab
Сообщение09.10.2018, 10:12 


09/10/18
2
Добрый день!

В результате некоторых вычислений в Matlab я получаю символьное уравнение:

a) $2 \cdot x1 - 21M + 3 \cdot x2 - 5 \cdot x3 + 4M \cdot x1 + 7M \cdot x2 - M \cdot y1 - M \cdot y2$ == 0

Где $x1, x2, x3, y1, y2$ - его переменные, а $M$ - некоторый очень большой положительный параметр.

Мне нужно:
1. Привести подобные слагаемые и выразить свободный член $-21M$, чтобы получилось:

b) $(-2-4M) \cdot x1 + (-3-7M) \cdot x2 +5 \cdot x3 + M \cdot y1 + M \cdot y2== - 21M$

2. Получить вектор из коэффициентов данного уравнения. Предполагаю, что это можно сделать при помощи функции equationsToMatrix, но для этого на вход нужно подать выражение $b$. А получить его средствами Matlab у меня пока не получается. Пытался выражать свободный член при помощи solve, а приводить подобные функцией collect, но результата не получил. Судя по всему, по той причине, что Matlab не различает переменные $x1, x2, x3, y1, y2$ и параметр $M$. Может быть можно как то "разграничить" их?

Обобщу:

Есть выражение $a$. Средствами Matlab нужно получить:
$C = [-2-4M, -3-7M, 5, M, M, 0, 0, 0, -21M]$

Как сделать это наиболее правильно?

 Профиль  
                  
 
 Re: Символьные вычисления в Matlab
Сообщение09.10.2018, 16:03 


07/10/15

2400
Приведение подобных:
Используется синтаксис Matlab M
>> ec=collect(eq,[x1,x2,x3,y1,y2])
 


коэффициенты можно вытащить с помощью функции coeffs
Используется синтаксис Matlab M
>> coeffs(ec,[x1,x2,x3,y1,y2])
 

но они почему то следуют справа налево. Обратите внимание, coeffs работает с выражением, а не с уравнением, т.е. "==0" в ec быть не должно (это не страшно, pascal -равенство можно дописать потом).

В общем разберётесь по ходу дела.

 Профиль  
                  
 
 Re: Символьные вычисления в Matlab
Сообщение09.10.2018, 23:58 


09/10/18
2
Andrey_Kireew, все получилось, большое спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group