MATLAB解含參數方程、矩陣方程、二階微分方程組


1、如下公式: 其中x、y、m、n為參數,a、b為未知數,利用MATLAB求解方程;

 

syms x y m n a b;

[a,b]=solve('x=m*cos(a)+n*cos(a+b)','y=m*sin(a)+n*sin(a+b)','a','b');

會得到四組解;對a(3)、b(3)、a(4)、b(4)進行化簡,

simplify(a(3));

simplify(b(3));

simplify(a(4));

simplify(a(4));

得到:

a(3)= 2*atan((2*m*y - (- m^4 + 2*m^2*n^2 + 2*m^2*x^2 + 2*m^2*y^2 - n^4 + 2*n^2*x^2 + 2*n^2*y^2 - x^4 - 2*x^2*y^2 - y^4)^(1/2))/(m^2 + 2*m*x - n^2 + x^2 + y^2));

b(3)= 2*atan(((- m^2 + 2*m*n - n^2 + x^2 + y^2)*(m^2 + 2*m*n + n^2 - x^2 - y^2))^(1/2)/(- m^2 + 2*m*n - n^2 + x^2 + y^2));

a(4)= 2*atan((2*m*y + (- m^4 + 2*m^2*n^2 + 2*m^2*x^2 + 2*m^2*y^2 - n^4 + 2*n^2*x^2 + 2*n^2*y^2 - x^4 - 2*x^2*y^2 - y^4)^(1/2))/(m^2 + 2*m*x - n^2 + x^2 + y^2));

b(4)= -2*atan(((- m^2 + 2*m*n - n^2 + x^2 + y^2)*(m^2 + 2*m*n + n^2 - x^2 - y^2))^(1/2)/(- m^2 + 2*m*n - n^2 + x^2 + y^2));

 

以a(3)為例,假設x=20,其它參數未知,則:

a(3)=subs(a(3),x,20) ; 即可將x取值替換為20;

 

假設 x=20 , y=30 ,其它參數未知,則:

a(3)=subs(a(3),{x,y},{20,30});

 

2、求解矩陣方程:

a=[1 0;0 2];
b=[1;3];
syms x1 x2;
y=a*[x1;x2]+b;
s=solve(y(1),y(2),'x1','x2');
s.x1 %w2值
s.x2 %w2值


3、

Matlab求解二階微分方程組: 

m=1;
g=9.8;
k=100;
l0=1.1;
x0=[0.1 0 0 0];  %初始值; 
 
% 定義 x(1)=l, x(2)=l', x(3)=a, x(4)=a';
dx=@(t,x)[x(2); (m*x(1)*x(4)^2-m*g*cos(x(3))-k*(x(1)-l0))/m;    x(4); (-2*m*x(1)*x(2)*x(4) + m*g*x(1)*sin(x(3)))/(m*x(1)^2)];
[t,x]=ode15s(dx,[0 10],x0);

lstr = { '\itl', '{\itl}''', '\alpha', '\alpha''' };
for i=1:length(lstr)
    subplot(2,2,i)
    plot(t, x(:,i));
    xlabel('Time')
    ylabel( lstr{i} )
end

  

 

                           


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM