MATLAB实例之对线性,非线性,超越方程的求解时间:2021-06-03 06:44:19原作者:郑丰华 %对solve指令的使用 %对线性,非线性,超越方程的求解 %-------------------------------------------------------------------------- %当方程组不存在符号解时,若又无其他*参数, %则solve将给出数值解. %solve(S) 对一个方程默认变量求解 %solve(S,v) 对一个方程指定变量v求解 %solve(S1,S2,...,Sn) 对N个方程默认变量的求解 %solve(S1,S2,...,Sn,v1,v2,...,vn) 对N个方程的v1,v2,...,vn变量求解 %[x1,x2,...,xn]=solve(S1,S2,...,Sn) 对默认变量的求解并赋值 %[x1,x2,...,xn]=solve(S1,S2,...,Sn,v1,v2,...,vn) 对指定变量的求解并赋值 %------------------------------------------------------------------------- %例1 %求解a*x^2+b*x+c=0,并求a=1,b=2,c=3时的数值解 x=solve('a*x^2+b*x+c') %求符号解 x=subs(x,'[a,b,c]',[1,2,3]) %代值,求数值解 %例2 %分别求方程sinx+btana=0当自变量为x和a时的解 syms a b x f=sin(x)+b*tan(a); x=solve(f) %默认自变量为x a=solve(f,a) %指定自变量为a %例3 %对方程组求解 % x^2+x*y+y=a % x^2+b*x+c=0 % 并求a=3,b=-4,c=3数值解 s=solve('x^2+x*y+y=a','x^2+b*x+c=0') %输出构架数组 x_sym=s.x %符号解 y_sym=s.y %符号解 x=subs(x_sym,'[a,b,c]',[3,-4,3]) %代入系数求数值解 y=subs(y_sym,'[a,b,c]',[3,-4,3]) %求值 %例4 %求解方程组 % y^2-z^2=x^2 % y+z=a % x^2-b*x=c % 并求a=1,b=2,c=3时的x,y,z % [x,y,z]=solve('y^2-z^2-x^2','y+z-a','x^2-b*x-c') %求符号解 a=1;b=2;c=3; xyz_value=eval([x,y,z]) %求数值解,注意,这里为两组解 % %例5 %求解方程组,指定自变量为a,b,c % y^2-z^2=x^2 % y+z=a % x^2-b*x=c % 并求x=1,y=2,z=3时的a,b,c % syms a b c x y z; [a,b,c]=solve('y^2-z^2-x^2','y+z-a','x^2-b*x-c',a,b,c) %求符号解 %解出来a b c为空的状态 x=1;y=2;z=3; %已经没有意义了 abc_value=eval([a,b,c]) %求数值解,注意,这里为两组解 % %例6 %重新构造方程组 %求解方程组,指定自变量为a,b,c % a*x-b*y=c*z % y+z=a % x^2-b*x=c % 并求x=1,y=2,z=3时的a,b,c % syms a b c x y z; [a,b,c]=solve('a*x-b*y=c*z','y+z=a','x^2-b*x=c',a,b,c) %求符号解 % x=1;y=2;z=3; % abc_value=eval([a,b,c]) %求数值解,注意,这里为两组解 % % %