Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ToolBox Symbolic Math / Matlab, Найти элементы матрицы 
:(
    Опции темы
tasja1406
Дата 12.5.2014, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.5.2014

Репутация: нет
Всего: нет



Добрый день! Прошу помощи в следующей задаче. Есть элементы якобиана J = [a11 a12 a13;a21 a22 a23;a31 a32 a33]. Необходимо найти элементы матрицы А. Элементы первого столбца матрицы А (А11, А21, А31) находятся таким образом: берется интеграл от соответствующего элемента якобиана (а11, а21, а31) (пределы интегрирования от 0 до 1), интегрирование осуществляется по х1*tetta (x2 и х3 обнуляются). Элементы второго столбца матрицы А (А12, А22, А32): берется интеграл от элемента якобиана (а12, а22, а32) (пределы интегрирования от 0 до 1), интегрирование осуществляется по х2*tetta (х3 обнуляется). Элементы третьего столбца матрицы А (А13, А23, А33): берется интеграл от элемента якобиана (а13, а23, а33) (пределы интегрирования от 0 до 1), интегрирование осуществляется по х3*tetta. С помощью символьных вычислений необходимо найти элементы. У меня получилось так. Подскажите, можно ли сделать проще и как, если можно?
Код

syms x1 x2 x3 psi1 psi2 psi3 psi4 psi5 psi6 psi7 u ksi tetta
X1=psi1*x2*sin(x1)+psi2*x2
X2=psi3*x1*x2+psi4*x3*atan(x1)+psi5*x3
X3=psi6*x2*x3+psi7*x3^2*cos(x1)+(1+(sin(x2))^2)*(u+ksi)
%нахождение элементов якобиана
a11=diff(X1,x1);
a12=diff(X1,x2);
a13=diff(X1,x3);
a21=diff(X2,x1);
a22=diff(X2,x2);
a23=diff(X2,x3);
a31=diff(X3,x1);
a32=diff(X3,x2);
a33=diff(X3,x3);
%якобиан
J=[a11 a12 a13;a21 a22 a23;a31 a32 a33]
%нахождение элементов матрицы А
%элементы 1-го столбца
x1=x1*tetta;
x2=0;
x3=0;
a11=psi1*x2*cos(x1);
a21=psi3*x2 + (psi4*x3)/(x1^2 + 1);
a31=-psi7*x3^2*sin(x1);
A11=int(a11,tetta,0,1)
A21=int(a21,tetta,0,1)
A31=int(a31,tetta,0,1)
clear x1
clear x2
syms x1 x2 
x2=x2*tetta;
a12=psi2 + psi1*sin(x1);
a22=psi3*x1;
a32=psi6*x3 + 2*cos(x2)*sin(x2)*(ksi + u);
A12=int(a12,tetta,0,1)
A22=int(a22,tetta,0,1)
A32=int(a32,tetta,0,1)
clear x2
syms x2 x3
x3=x3*tetta;
a13=0;
a23=psi5 + psi4*atan(x1);
a33=psi6*x2+2*psi7*x3*cos(x1);
A13=int(a13,tetta,0,1)
A23=int(a23,tetta,0,1)
A33=int(a33,tetta,0,1)
%матрица А
A=[A11 A12 A13;A21 A22 A23;A31 A32 A33]

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.