error warning "Explicit solution could not be found"

1 次查看(过去 30 天)
hello am trying to solve 16 equations with 15 variables as shown below but am having an error "Explicit solution could not be found".
[a, b, c, d, e, f, g, h, i, j, k, m, n, p, q, s]... = solve('0.073*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/a=6', ...
'0.024*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/b=8', ...
'0.030*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/c=8', ...
'0.034*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/d=12', ...
'0.116*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/e=8', ...
'0.045*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/f=9', ...
'0.059*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/g=10', ...
'0.074*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/h=10', ...
'0.052*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/i=10', ...
'0.016*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/j=11', ...
'0.023*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/k=11', ...
'0.028*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/m=11', ...
'0.180*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/n=10', ...
'0.058*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/p=10', ...
'0.082*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/q=14', ...
'0.099*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*i+11*j+11*k+11*m+10*n+10*p+14*q+14*s)/s=14', 'IgnoreAnalyticConstraints',true);
The solution we get is shown below;
Warning: 16 equations in 15 variables. > In C:\Program Files\MATLAB\R2013a\toolbox\symbolic\symbolic\symengine.p>symengine at 56 In mupadengine.mupadengine>mupadengine.evalin at 97 In mupadengine.mupadengine>mupadengine.feval at 150 In solve at 172 In super16 at 1 Warning: Explicit solution could not be found. > In solve at 179 In super16 at 1

采纳的回答

Roger Stafford
Roger Stafford 2014-8-13
If you were to multiply each equation by the respective values 'a', 'b', etc. these would be a set of homogeneous linear equations whose only solution is likely a zero value for all sixteen unknowns. However, since the unknowns are used as divisors, there would be no solutions at all. That would account for the "Explicit solution could not be found" message.
As to the erroneous "15 variables" warning - there are actually 16 - I speculate that using the predefined 'i' to denote a variable caused confusion in mupad. The symbol 'i' ordinarily denotes the imaginary square root of minus one, not an unknown variable.
  4 个评论
benjamin
benjamin 2014-8-13
thanks so much for your prompt replies. i tried to change the (i) but i do get an empty solution all the time
[a, b, c, d, e, f, g, h, z, t, k, m, n, p, q, s]... = solve('0.073*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=6*a',... '0.024*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=8*b',... '0.030*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=8*c',... '0.034*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=12*d',... '0.116*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=8*e',... '0.045*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=9*f',... '0.059*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=10*g',... '0.074*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=10*h',... '0.052*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=10*z',... '0.016*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=11*t',... '0.023*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=11*k',... '0.028*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=11*m',... '0.180*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=10*n',... '0.058*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=10*p',... '0.082*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=14*q',... '0.099*(6*a+8*b+8*c+12*d+8*e+9*f+10*g+10*h+10*z+11*t+11*k+11*m+10*n+10*p+14*q+14*s)=14*s', 'IgnoreAnalyticConstraints',true);
Roger Stafford
Roger Stafford 2014-8-13
One method that comes to mind is to convert your equation into standard linear equation form and obtain the 16 x 16 matrix of its coefficients - call it A. If you have adjusted those initial coefficients I mentioned earlier so that their sum is exactly 1, then A should be a singular matrix - that is, its determinant should be zero. By applying matlab's 'null' function to A you should obtain a single vector as the result. The elements of this vector would be one solution, and any common multiple of them is also a solution - that is, any "point" along the direction the vector points to will also be a solution, (and of course there are infinitely many such "points".)

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by