|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Nov 2019
Messaggi: 1
|
Matlab: fsolve da risultati sballati
Salve, sono appena arrivato in questo forum, quindi un saluto a tutti f28 !
Il mio problema è il seguente: ho un sistema di 12 equazioni e 13 incognite, e devo imporre 1 incognita variabile nel tempo. Il programma funziona ma non da i risultati attesi, ovvero sia nel plot i risultati delle 12 variabile sballano con picchi. Spero che qualcuno possa darmi una mano perchè non so veramente come fare. Vi allego il codice: [Matlab] [ CODE ]T21=zeros(1,28); j=0; for t=0:0.1:2.755 j=j+1; T21(j)=0.333*cos(t)-0.24; end sol = zeros(12,numel(T21)); for k = 1:numel(T21) % i risultati per x vengono salvati in righe 1...12 % ogni valore di T21 corrisponde a una colonna if T21<=0 sol(:,k) = fsolve(@(x)funzmia(x,T21(k)), 1:12); else sol(:,k) = fsolve(@(x)funzmia2(x,T21(k)), 1:12); end end figure; plot(1:1:28, sol); title('sol in funzione di t'); xlabe1=('t'); ylabe1=('sol'); grid on; function F=funzmia(x,T21) T11=x(1); T12=x(2); T13=x(3); T14=x(4); T15=x(5); T22=x(6); T23=x(7); r23=x(8); T31=x(9); T32=x(10); T33=x(11); r32=x(12); %T21=0 F(1)=(5^(0.5))*cos(T11)+cos(T12)+4*cos(T13)+cos(T14)+(5^(0.5))*cos(T15)-8; F(2)=(5^(0.5))*sin(T11)+sin(T12)+4*sin(T13)+sin(T14)+(5^(0.5))*sin(T15); F(3)=cos(T21)+3*cos(T22)+r23*cos(T23); F(4)=sin(T21)+3*sin(T22)+r23*sin(T23); F(5)=cos(T31)+r32*cos(T32)+3*cos(T33); F(6)=sin(T31)+r32*sin(T32)+3*sin(T33); F(7)=T12-T21; F(8)=T31-T14; F(9)=T13+T22-pi/2; F(10)=T33-T22-pi; F(11)=r23-(1+9+6*sin(T12-T13))^(0.5); F(12)=r32-(1+9+6*cos(T14-T33))^(0.5); end function F=funzmia2(x,T21) T11=x(1); T12=x(2); T13=x(3); T14=x(4); T15=x(5); T22=x(6); T23=x(7); r23=x(8); T31=x(9); T32=x(10); T33=x(11); r32=x(12); %T21=0 F(1)=(5^(0.5))*cos(T11)+cos(T12)+4*cos(T13)+cos(T14)+(5^(0.5))*cos(T15)-8; F(2)=(5^(0.5))*sin(T11)+sin(T12)+4*sin(T13)+sin(T14)+(5^(0.5))*sin(T15); F(3)=cos(T21)+3*cos(T22)+r23*cos(T23); F(4)=sin(T21)+3*sin(T22)+r23*sin(T23); F(5)=cos(T31)+r32*cos(T32)+3*cos(T33); F(6)=sin(T31)+r32*sin(T32)+3*sin(T33); F(7)=T12-T21; F(8)=T31-T14; F(9)=T13+T22-3*pi/2; F(10)=T33-T22-pi; F(11)=r23-(1+9+6*sin(T12-T13))^(0.5); F(12)=r32-(1+9+6*cos(T14-T33))^(0.5); end [ /CODE ] Grazie a tutti in anticipo. Ultima modifica di MegaMan-X : 14-11-2019 alle 12:42. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:03.



















