问题描述
对于一个如下形式的方程组
{
y
1
=
f
1
(
x
1
,
x
2
,
.
.
.
,
x
n
)
y
2
=
f
2
(
x
1
,
x
2
,
.
.
.
,
x
n
)
.
.
.
y
m
=
f
m
(
x
1
,
x
2
,
.
.
.
,
x
n
)
\begin{cases} y_1 = f_1(x_1, x_2, ..., x_n)\\ y_2 = f_2(x_1, x_2, ..., x_n) \\ ...\\ y_m = f_m(x_1, x_2, ..., x_n) \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧y1=f1(x1,x2,...,xn)y2=f2(x1,x2,...,xn)...ym=fm(x1,x2,...,xn)
需要求解其反函数,即
{
x
1
=
g
1
(
y
1
,
y
2
,
.
.
.
,
y
m
)
x
2
=
g
2
(
y
1
,
y
2
,
.
.
.
,
y
m
)
.
.
.
x
n
=
g
m
(
y
1
,
y
2
,
.
.
.
,
y
m
)
\begin{cases} x_1 = g_1(y_1, y_2, ..., y_m)\\ x_2 = g_2(y_1, y_2, ..., y_m) \\ ...\\ x_n = g_m(y_1, y_2, ..., y_m) \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧x1=g1(y1,y2,...,ym)x2=g2(y1,y2,...,ym)...xn=gm(y1,y2,...,ym)
matlab求解
可以通过matlab的slove函数可以实现上述功能
syms x1 x2 .... xn, y1 y2 ... ym
eq1 = y1 == f_1(x_1, x_2, ..., x_n)
eq2 = y2 == f_2(x_1, x_2, ..., x_n)
...
eqm = ym == f_m(x_1, x_2, ..., x_n)
[x1_, x2_, ..., xn_] = solve(eq1, eq2, eq3, ..., eqm, x_1, x_2, ..., x_n)
具体实例
syms kappa d phi varepsilon_0 varepsilon_a varepsilon_b varepsilon_c
equ1 = varepsilon_a == kappa*d*cos(-phi) + varepsilon_0;
equ2 = varepsilon_b == kappa*d*cos(-phi+2/3*pi) + varepsilon_0;
equ3 = varepsilon_c == kappa*d*cos(-phi+4/3*pi) + varepsilon_0;
result = solve(equ1,equ2,equ3, kappa, phi, varepsilon_0)