一.方程法(求任意参数)
因为使用sin,cos函数会有一些问题,所以直接使用sind,cosd函数(可以自己去试试)
sin函数(弧度制单位),sind函数(以度数为单位)
function [ ] = shiyan( ) clear clc syms m1 m2 b a1 a2 N1 N2 ; m1=input('m1='); m2=input('m2='); b=input('xita='); g=9.8; A=[m1*cosd(b) -m1 -sind(b) 0;m1*sind(b) 0 cosd(b) 0;0 m2 -sind(b) 0;0 0 -cosd(b) 1]; B=[a1;a2;N1;N2]; C=[0;m1*g;0;m2*g]; f=A*B; q=f(1)-C(1); w=f(2)-C(2); e=f(3)-C(3); r=f(4)-C(4); [a1 a2 N1 N2]=solve(q,w,e,r,'a1,a2, N1,N2'); [a1] [a2] [N1] [N2] end
二. 矩阵乘除法(求一个矩阵参数)
function [ ] = shiyan( )
clear
clc
% a解微分方程{■(y^″=cos?5x-y@y^' (0)=0,y(0)=1)┤
syms a1 a2 N1 N2 ;
m1=input('m1=');
m2=input('m2=');
x = input('x=');
g=9.8;
A=[m1*cosd(x) ,-m1, -sind(x), 0];
B=[m1*sind(x), 0 ,cosd(x), 0];
C=[ 0 ,m2 ,-sind(x), 0];
D=[ 0 ,0 ,-cosd(x) ,1];
H=[A ;B ;C ;D];I=[0;m1*g;0;m2*g];
J= H\I % H*J=I J=inv(H)*I 或者J= H\I
% J=inv(H)*I;
a1=J(1);
a2=J(2);
N1=J(3);
N2=J(4);
[a1]
[a2]
[N1]
[N2]end
对于标量运算
a/b a乘以b的倒数
b\a b的倒数乘以a
对于矩阵运算
A/B >> inv(A)*B
B\A >> inv(B)*A