Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 37

Решение системы линейных уравнений в символьном виде

24.12.2016, 05:12. Показов 6682. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решаю систему линейных уравнений в символьном виде, использую оператор solve. Весь текст программы писать не буду, так как уравнения очень большие:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
syms a1 a2 a3 a4 a5 a6 a7 a8 ia ib ic id ua ub uc ud za zb zc zd zab zba zbc zcb zca zac...
zda zad zdb zbd zdc zcd ya yb yc yd yab yba ybc ycb yca yac yda yad ydb ybd ydc ycd v1 v2 v3 v4;
zab=zba, zbc=zcb, zca=zac, zda=zad, zdb=zbd, zdc=zcd, yab=yba, ybc=ycb, yca=yac, yda=yad, ydb=ybd, ydc=ycd;
[a1 a2 a3 a4 a5 a6 a7 a8]=solve('ua=(a1+a2+a3+a4+a5+a6+a7+a8)',...
'v1*(a1-a2)+v2*(a3-a4)+v3*(a5-a6)+v4*(a7-a8)=-4*(ia*za+ib*zab+ic*zca+id*zda)',...
'v1^2*(a1-a2)+v2^2*(a3-a4)+v3^2*(a5-a6)+v4^2*(a7-a8)=4*(za*ya+za*yab+za*yca+za*yda-zab*yab-zca*yca......',
'v1^3*(a1-a2)+v2^3*(a3-a4)+v3^3*(a5-a6)+v4^3*(a7-a8)=-4*(za*ya+za*yab+za*yca+za*yad-zab*yab-......',
'v1^4*(a1-a2)+v2^4*(a3-a4)+v3^4*(a5-a6)+v4^4*(a7-a8)=4*(za*ya+za*yab+za*yca+za*yad-zab*yab-zca*yca.......',
'v1^5*(a1-a2)+v2^5*(a3-a4)+v3^5*(a5-a6)+v4^5*(a7-a8)=-4*(za*ya+za*yab+za*yca+za*yad-zab*yab-.......',
'v1^6*(a1-a2)+v2^6*(a3-a4)+v3^6*(a5-a6)+v4^6*(a7-a8)=4*(za*ya+za*yab+za*yca+za*yad-zab*yab-zca*yca.......',
'v1^7*(a1-a2)+v2^7*(a3-a4)+v3^7*(a5-a6)+v4^7*(a7-a8)=-4*(za*ya+za*yab+za*yca+za*yad-zab*yab-.......')
Matlab пишет по окончанию решения:
Matlab M
1
2
3
4
5
6
7
8
Warning: Explicit solution could not be found. 
> In solve at 83
 
a1 =
 
[ empty sym ]
 
a2 =
[] и т.д. до а8.
Не могу понять в чем проблемам, подскажите пожалуйста, какие мои ошибки в программе.
Для наглядности привел написанную мной программу в М-файле: https://1drv.ms/u/s!AjPnv62tpA05lUE5О0EHsw50LYyR
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2016, 05:12
Ответы с готовыми решениями:

Решение уравнений в символьном виде
Здравствуйте! Помогите, пожалуйста, с решением уравнений в символьном виде (вид уравнений во вложении) Перво решить получилось....

Решение обыкновенных дифференциальных уравнений второго порядка в символьном виде (dsolve)
Здравствуйте Форумчани) Помогите чем можете,Я Пыталась и не Фига не получается И вот решила обратиться За помщью(((1 Решите обыкновенное...

Решение системы линейных уравнений
Здравствуйте! Надо решить систему с помощью средств встроенных в Matlab (численно и символьно).Численно я решил,а вот символьно не...

6
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
24.12.2016, 07:25
mixar, почитайте внимательнее, как пользоваться функцией solve. Узнаете, что нужно указывать переменные, относительно которых решается система, что нужно в уравнениях использовать двойной знак равенства, что система и набор переменных заключаются в квадратные скобки...
1
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 37
24.12.2016, 10:57  [ТС]
Centurio, посоветуйте пожалуйста статью либо учебник. Где подробно описывается работа с функцией solve. Та как как в литературе по которой я изучал matlab не было тех моментов о которых вы говорите. А большинство статей которые я читал написаны для программистов которые "на ты с программой", и эти нюансы не прописываются.
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
24.12.2016, 11:13
mixar, прочитайте хотя бы help. Мне думается, его достаточно будет для понимания, как пользоваться функцией solve.
1
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 37
25.12.2016, 14:35  [ТС]
Изучение материала по команде help solve, прояснило для меня некоторые моменты вашего первого сообщения, Centurio. Но не окончательно. Про двойной знак равенства и заключение системы уравнений в квадратные скобки упоминания не нашел.
Я работаю в MATLAB версии R2011a, может в более новых программы MATLAB более полные версии документа help. В чем я не уверен.
В итоге логика написания программы у меня такая:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
syms a1 a2 a3 a4 a5 a6 a7 a8 ia ib ic id ua ub uc ud za zb zc zd zab zba zbc zcb;[B]%Обьявляю переменные [/B]
zab=zba, zbc=zcb, zca=zac, zda=zad, zdb=zbd, zdc=zcd, yab=yba, ybc=ycb, yca=yac, yda=yad, ydb=ybd, ydc=ycd;[B]%Во избежание ошибок при вводе уравнений указываю что согласно схемы замещения, одни сопротивления равны другим ( по условиям задачи).[/B]
[solutions_a1, solutions_a2, solutions_a3, solutions_a4, solutions_a5, solutions_a6, solutions_a7, solutions_a8]=...[B]%Указываю переменные относительно которых решается система, в квадратных скобках.[/B]
solve('ua=(a1+a2+a3+a4+a5+a6+a7+a8)',...
'v1*(a1-a2)+v2*(a3-a4)+v3*(a5-a6)+v4*(a7-a8)=-4*(ia*za+ib*zab+ic*zca+id*zda)',...
'v1^2*(a1-a2)+v2^2*(a3-a4)+v3^2*(a5-a6)+v4^2*(a7-a8)=4*(za*ya+za*yab+za*yca+za*yda-zab*yab-zca*yca......',
'v1^3*(a1-a2)+v2^3*(a3-a4)+v3^3*(a5-a6)+v4^3*(a7-a8)=-4*(za*ya+za*yab+za*yca+za*yad-zab*yab-......',
'v1^4*(a1-a2)+v2^4*(a3-a4)+v3^4*(a5-a6)+v4^4*(a7-a8)=4*(za*ya+za*yab+za*yca+za*yad-zab*yab-zca*yca.......',
'v1^5*(a1-a2)+v2^5*(a3-a4)+v3^5*(a5-a6)+v4^5*(a7-a8)=-4*(za*ya+za*yab+za*yca+za*yad-zab*yab-.......',
'v1^6*(a1-a2)+v2^6*(a3-a4)+v3^6*(a5-a6)+v4^6*(a7-a8)=4*(za*ya+za*yab+za*yca+za*yad-zab*yab-zca*yca.......',
'v1^7*(a1-a2)+v2^7*(a3-a4)+v3^7*(a5-a6)+v4^7*(a7-a8)=-4*(za*ya+za*yab+za*yca+za*yad-zab*yab-.......')[B]%Прописываю систему уравнений. При заключении системы уравнений в квадратные скобки, матлаб выдаёт ошибку «Ругается на квадратную скобку».[/B]
В итоге решение системы уравнения аналогичное, «solutions_a1 =[ empty sym ]».

В итоге у меня остаются вопросы:
1) Где правильно поставить квадратные скобки.
2) Где ставить двойной знак равенства.
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
25.12.2016, 21:05
Цитата Сообщение от mixar Посмотреть сообщение
[solutions_a1, solutions_a2, solutions_a3, solutions_a4, solutions_a5, solutions_a6, solutions_a7, solutions_a8]=...%Указываю переменные относительно которых решается система, в квадратных скобках.
Это не переменные, относительно которых решается система, а переменные, которым будет присвоено решение.
За 2011а не скажу, уже довольно старая версия, а в 2016b в скобках после solve указываются сначала в квадратных скобках через запятую уравнения, причём без апострофов и с двойным знаком равенства, а потом тоже в других квадратных скобках переменные, относительно которых решаются уравнения.
Хотя я бы всё-таки посоветовал для решения воспользоваться не Матлабом, а какой-нибудь системой символьной математики.
1
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 37
26.12.2016, 14:58  [ТС]
Цитата Сообщение от Centurio Посмотреть сообщение
Хотя я бы всё-таки посоветовал для решения воспользоваться не Матлабом, а какой-нибудь системой символьной математики.
Попробую решить данную систему уравнений с помощью Mathematica или Maple. Отпишусь о результате данного эксперимента.

Пробовал решить данную систему с помощью Wolfram Mathematica 11, результат аналогичный: "[ ]". Попробую обратиться к математикам, может есть возможность упростить либо преобразовать данную систему, что бы появилась возможность решить её с помощью Matlab.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.12.2016, 14:58
Помогаю со студенческими работами здесь

Решение системы линейных уравнений методом Крамера
Для системы линейных уравнений заданной матрицей надо получить решение методом Крамером x= y= i=1:1:10 b=x c=1:1:10 b(i,c)=y(c)...

Решение системы линейных уравнений разложением Холецкого
Помогите пожалуйста решить систему линейных уравнений разложением холецкого в MatLab. A=; b=

GUI: Решение системы линейных уравнений методом Гаусса с выбором главного элемента.
clc,clear n = input('Количество строк'); A= for p=1:1:n B=zeros(n,1); for i=p:1:n if A(i,p)>B; B=A(i,p); ...

Решение НЕДООПРЕДЕЛЕННОЙ системы линейных уравнений в символьном виде
Подскажите пожалуйста, как в символьном виде выразить один из параметров системы уравнений через определенные другие? Например: есть 4...

Решение системы уравнений в символьном виде
Здравствуйте! Помогите решить систему из 6 уравнений. Нужно найти q1-q6. Пробовал через given и solve, но ничего не выходит.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru