Clear Filters
Clear Filters

Need to solve equations which take vector inputs. The solv & solu are not supposed to be zero; as the variable R is changing they should change as well and should be vectors. Could anyone help??

1 view (last 30 days)
syms tau_new b
rc=1;
x=linspace(1,100,1000);
R=exp(1).*x.*rc;
b0=.3614/sqrt(2);
eqns=[(b./(8*pi)).*(1./R).*(log(R./rc)+1)+(b./(2*b0))-tau_new==0, (b./(2*pi)).*(1./R).*(log(R./rc))+(b./(b0))-tau_new==0];
vars=[tau_new b];
[solv, solu] = solve(eqns, vars)

Accepted Answer

Walter Roberson
Walter Roberson on 2 Aug 2018
The first thing you need to remember is that when you ask to solve() a vector of equations, then solve() has to find a solution that satisfies all of the entries simultaneously. Because your x is length 1000 and there are two entries for each x, you are asking to solve 2000 simultaneously equations.
Secondly, if you use a symbolic x, and go through doing stepwise elimination of the variables, you will find that indeed 0 are the only values that will reliably make that pair of equations 0 on both sides. That does not mean there are no other zeros, but the other zeros are in x, not in b or tau_new . The additional zero is at x = exp(-LambertW(20000*sqrt(2)*Pi*exp(1/3)*(1/5421))-2/3) which is about 0.05157587627 which is before the start of your x search range.
  3 Comments
Walter Roberson
Walter Roberson on 3 Aug 2018
Subtract the two equations to eliminate tau_new . The resulting equation will have b multiplied by every term, and the result will equal 0. Factor that and you get b * (expression without b) = 0. The only solution to that is that b = 0 or else the expression independent of b = 0. If you let b = 0 then substituting into the first equation you see that tau_new must equal to 0. If you let the expression independent of b be equal to 0, then the value of b becomes irrelevant and you cannot solve for b.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!