matlab解方程 如下所示

背景:已知 b c 求解a的值

%解方程开始%

clc

clear all

syms a b c X;

eq1=tan(a)*tan(a)-tan(a+b)*tan(a+b)-c==0;

X=solve(eq1,a,'ReturnConditions',true)

%解方程结束%

X =

包含以下字段的 struct:

         a: [1×1 sym]

parameters: [1×2 sym]

conditions: [1×1 sym]

请问如何把X的值显示出来,现在我这边无法使用


clc

clear all

syms a b c X;

eq1=tan(a)*tan(a)-tan(a+b)*tan(a+b)-c==0;

[solx, params, conds] = solve(eq1, a, 'ReturnConditions', true)

输出:

 
solx =
 
atan(z1) + pi*k
 
 
params =
 
[ k, z1]
 
 
conds =
 
tan(b) ~= 0 & c + 2*z1^3*tan(b) + tan(b)^2 + 2*z1*tan(b) + c*z1^2*tan(b)^2 ~= z1^4*tan(b)^2 + 2*c*z1*tan(b) & ~in((atan(z1) - atan(1/tan(b)) + pi*k)/pi, 'integer') & in(k, 'integer') & (z1 == root(z^4*tan(b)^2 - 2*z^3*tan(b) - c*z^2*tan(b)^2 + 2*c*z*tan(b) - 2*z*tan(b) - c - tan(b)^2, z, 1) | z1 == root(z^4*tan(b)^2 - 2*z^3*tan(b) - c*z^2*tan(b)^2 + 2*c*z*tan(b) - 2*z*tan(b) - c - tan(b)^2, z, 2) | z1 == root(z^4*tan(b)^2 - 2*z^3*tan(b) - c*z^2*tan(b)^2 + 2*c*z*tan(b) - 2*z*tan(b) - c - tan(b)^2, z, 3) | z1 == root(z^4*tan(b)^2 - 2*z^3*tan(b) - c*z^2*tan(b)^2 + 2*c*z*tan(b) - 2*z*tan(b) - c - tan(b)^2, z, 4))
 
>>

img

看了你写的代码,X是一个矩阵的值,要单独显示出来就需要编号,X.a试试,主要我没带电脑回家今天,不然我可以帮你完整改好


%解方程开始%
clc
clear
syms a b c X;
b=9;c=5;
eq1=tan(a)*tan(a)-tan(a+b)*tan(a+b)-c==0;
X=solve(eq1,a,'ReturnConditions',true);
disp(X.a)

直接采用X.就可以查看自己需要的参数具体值,这里想要查看a,所以就disp(X.a)即可,结果如下:

atan(z1) + pi*k

sprintf(X)

X.a就可以了