我对下面显示的等式有疑问。我想在t2
中输入一个向量,并从t2
中的不同值中找到方程的根。
t2=[10:10:100]
syms x
p = x^3 + 3*x - t2;
R = solve(p,x)
R1 = vpa(R)
答案 0 :(得分:1)
轻松!请勿使用syms
并使用the general formula:
t2 = [10:10:100];
%p = x^3 + 3*x - t2;
a = 1;
b = 0;
c = 3;
d = -t2;
D0 = b*b - 3*a*c;
D1 = 2*b^3 - 9*a*b*c + 27*a^2*d;
C = ((D1+sqrt(D1.^2 - 4*D0.^3))/2).^(1/3);
C1 = C*1;
C2 = C*(-1-sqrt(3)*1i)/2;
C3 = C*(-1+sqrt(3)*1i)/2;
f = -1/(3*a);
x1 = f*(b + C1 + D0./C1);
x2 = f*(b + C2 + D0./C2);
x3 = f*(b + C3 + D0./C3);
从b = 0
开始,您可以稍微简化一下:
% ... polynomial is the same
D0 = -3*a*c;
D1 = 27*a^2*d;
% ... the different C's are the same
f = -1/(3*a);
x1 = f*(C1 + D0./C1);
x2 = f*(C2 + D0./C2);
x3 = f*(C3 + D0./C3);
答案 1 :(得分:0)
试验>> syms x p
试验>> EQUS = p == x ^ 3 + 3 * x - t2
未知您想要求解方程式或系统。 假设您想要解决一个系统。
试验>> solx = solve(Eqns,x)
但是,我不认为你能找到根源。 你可以解决一个方程式。
试验>> solx = solve(Eqns(3),x)
据我所知,Maple可以做到这一点。
答案 2 :(得分:0)
一般来说,应该避免循环,但这是目前唯一能解决我脑力的解决方案。
t2=[10:10:100];
pp=repmat([1,0,3,0],[10,1]);
pp(:,4)=-t2;
for i=1:10
R(i,:) =roots(pp(i,:))';
end