how to integrate the matrixs. i get an error

1 次查看(过去 30 天)
c=[45.2538 6.2982 6.3054 0 0 0; 13.5826 9.8541 6.4195 0 0 0; 13.6054 6.4180 9.8556 0 0 0; 0 0 0 10.6615 0 0; 0 0 0 0 11.2087 0; 0 0 0 0 0 26.9691];
m=@(a)cos(a); n=@(a)sin(a);
T=@(a)[1 0 0 0 0 0; 0 m^2 n^2 m.*n 0 0; 0 n^2 m^2 m*n 0 0; 0 -2*m.*n 2*m.*n m^2.-n^2 0 0; 0 0 0 0 m -n; 0 0 0 0 n m];
c_pn=@(a)((T')^-1)*(c*T^-1);
c_pmnc=integral(c_pn,0,2*pi);

采纳的回答

Walter Roberson
Walter Roberson 2018-8-4
c=[45.2538 6.2982 6.3054 0 0 0; 13.5826 9.8541 6.4195 0 0 0; 13.6054 6.4180 9.8556 0 0 0; 0 0 0 10.6615 0 0; 0 0 0 0 11.2087 0; 0 0 0 0 0 26.9691];
m=@(a)cos(a); n=@(a)sin(a);
T=@(a)[1 0 0 0 0 0; 0 m(a)^2 n(a)^2 m(a).*n(a) 0 0; 0 n(a)^2 m(a)^2 m(a)*n(a) 0 0; 0 -2*m(a).*n(a) 2*m(a).*n(a) m(a)^2-n(a)^2 0 0; 0 0 0 0 m(a) -n(a); 0 0 0 0 n(a) m(a)];
c_pn=@(a)((T(a)')^-1)*(c*T(a)^-1);
c_pmnc = integral(c_pn, 0, 2*pi, 'ArrayValued', true);
This will get you
Warning: Reached the limit on the maximum number of intervals in use. Approximate bound on error is 2.2e+23. The integral may not exist, or it may be difficult to approximate numerically to
the requested accuracy.
This will occur because most of your entries have integrals that are infinite or indeterminate. Most of the numeric values you get will be nonsense.
Please re-check your code. In the places you have an array ^-1 do you really mean you want the matrix inverse? If so then you should recode in terms of the \ operator for improved reliability.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by