matlab裡的mupadmex是什麼?
- 2021-09-21
是2008b之後版本的符號運算引擎,你應該使用了符號運算吧?
請執行如下程式碼並理解a0矩陣的作用。需要注意的是,不是你把x和y賦值了以後a0矩陣就可以自動計算的。
clear;
clc
a1 = [0。0504 0。0184 0。0260 -0。3924 -0。2060 0。8944]‘;
a2 = [-0。0867 0。1057 -0。0867 0。4024 0。1232 -0。8926]’;
a3 = [0。0919 -0。0043 0。0362 -0。3915 -0。2875 0。8685]‘;
a1 = sign(a1(1))*a1;
a2 = sign(a2(1))*a2;
a3 = sign(a3(1))*a3;
syms x y
a0 = [x^2, x*y, y^2, x, y, 1]’;
z1 = a1‘* a0;
z2 = a2’* a0;
z3 = a3‘* a0;
%% 求橢圓1、2在橢圓3內的交點
[x12,y12] = solve(z1,z2);
m = (imag(x12) == 0 & imag(y12) == 0);%去除複數解,保留實數解
x12 = double(x12(m)); y12 = double(y12(m));
z12_3 = [];
x0 = [];
y0 = [];
for i = 1:length(x12)
x = x12(i); y = y12(i);
a0 = [x^2, x*y, y^2, x, y, 1]’;
z12_3(i) = a3‘ * a0;
if (z12_3(i)<0)
x0 = [x0 x12(i)];
y0 = [y0 y12(i)];
end
end