필터 지우기
필터 지우기

How to solve extra long equations with multiple unknowns?

조회 수: 1 (최근 30일)
Chandan Roy
Chandan Roy 2019년 5월 16일
댓글: Chandan Roy 2019년 5월 16일
Hi, I have two equations with 2 unknowns. In my case, the equations are too long with a number of transcendental functions. I tried Simplify command with other stricting strategy to solve but neither of them worked. How can I solve such Equations? Any hints/tips will be appreciated.
Here are my equations with unknown 'W' and 's':
A = (131072*29284206217013915^(1/2))/(625*(((6987459706243381*W - (6987459706243381*W - ((188416*(9223372036854775808*W - 5856841243402783)^2)/12869035935211193115234375 + (1184898369045330659387084111872*2^(1/2))/(87890625*((2305843009213693952*W + 17570523730208349)/W)^(1/2)) + 1343418817046756753408/87890625)/log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W))/((5856841243402783*tanh((73786976294838206464*s)/5856841243402783)*exp(-exp(233/100 - (583378281331064569856*W)/146421031085069575)/10))/(9223372036854775808*s) + 1) + ((188416*(9223372036854775808*W - 5856841243402783)^2)/12869035935211193115234375 + (1184898369045330659387084111872*2^(1/2))/(87890625*((2305843009213693952*W + 17570523730208349)/W)^(1/2)) + 1343418817046756753408/87890625)/log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W))*(191916973863822393344*tanh((73786976294838206464*s)/5856841243402783) + 604462909807314587353088*s*exp(exp(233/100 - (583378281331064569856*W)/146421031085069575)/10) + 48167231430905666015625*W*log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W)*tanh((73786976294838206464*s)/5856841243402783)))/(log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W)*(5856841243402783*tanh((73786976294838206464*s)/5856841243402783) + 9223372036854775808*s*exp(exp(233/100 - (583378281331064569856*W)/146421031085069575)/10))))^(1/2)) == sym('82.9367')
B = 4848604884312330996192171599799452960064720961461794373632/(390625*((30197372856938873356783865240544523007076102631740932096*W + 1196803464977447626879572441392246924444885789442048*log(2*(2*W + s)^(1/2) + 2*2^(1/2)*W^(1/4)*(W + s)^(1/4)) + 1196803464977447626879572441392246924444885789442048*log(1/((2*W + s)^(1/2) - 2^(1/2)*W^(1/4)*(W + s)^(1/4))) + 12207395342769963168946347226992069644318890998628352*log(coth((50000*s*pi)/127)) - ((31721688620111212543053501011329024*(9223372036854775808*W - 5856841243402783)^2)/501342689882353 + (80464336588145820923004586700794002638127030245202533672503105028096*W^(1/2))/(1953125*(576460752303423488*W + 4392630932552087)^(1/2)) + 66056980683050248153209450614638153187005796318183424)/(log(W) - log((2305843009213693952*W^2)/5856841243402783 + 127/25000)) - ((715913401141667049096758589128704*W + ((133952*(9223372036854775808*W - 5856841243402783)^2)/89296875 + (28614490977577140881519611179794734764726943744*W^(1/2))/(29296875*(576460752303423488*W + 4392630932552087)^(1/2)) + 1566065959909660640395860639744)/(log(W) - log((2305843009213693952*W^2)/5856841243402783 + 127/25000)))*(27153607276500459978752*s + 1112053888018253184))/s)*(227645271101905578581467981701973076307609129058304*W + 92026410225101700192114242347788464628541947904*log(2*(2*W + s)^(1/2) + 2*2^(1/2)*W^(1/4)*(W + s)^(1/4)) + 92026410225101700192114242347788464628541947904*log(1/((2*W + s)^(1/2) - 2^(1/2)*W^(1/4)*(W + s)^(1/4))) + 92026410225101679909704638696118040681290661888*log(coth((50000*s*pi)/127)) - 43872128685689108753488251272750948277693341237248/(5859375*s*(log(W) - log((2305843009213693952*W^2)/5856841243402783 + 127/25000))) - 15943838407882170125382859023155862270216286202583056384/(17578125*log(W) - 17578125*log((2305843009213693952*W^2)/5856841243402783 + 127/25000)) - (9396058564731152614103031140650616447679070208*W)/(5*s)))^(1/2)) == sym('37.6092')
This equations sometimes results in following:
struct with fields:
W: [0×1 sym]
s: [0×1 sym]
But these fields don't have any results.

채택된 답변

John D'Errico
John D'Errico 2019년 5월 16일
편집: John D'Errico 2019년 5월 16일
You have two fairly complicated equations, in two unknowns. Why do you expect an analytical solution to exist at all? I'd have been utterly surprised if one did. It is better if you just subtract the constant right hand side, because now you can plot the surfaces.
A = (131072*29284206217013915^(1/2))/(625*(((6987459706243381*W - (6987459706243381*W - ((188416*(9223372036854775808*W - 5856841243402783)^2)/12869035935211193115234375 + (1184898369045330659387084111872*2^(1/2))/(87890625*((2305843009213693952*W + 17570523730208349)/W)^(1/2)) + 1343418817046756753408/87890625)/log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W))/((5856841243402783*tanh((73786976294838206464*s)/5856841243402783)*exp(-exp(233/100 - (583378281331064569856*W)/146421031085069575)/10))/(9223372036854775808*s) + 1) + ((188416*(9223372036854775808*W - 5856841243402783)^2)/12869035935211193115234375 + (1184898369045330659387084111872*2^(1/2))/(87890625*((2305843009213693952*W + 17570523730208349)/W)^(1/2)) + 1343418817046756753408/87890625)/log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W))*(191916973863822393344*tanh((73786976294838206464*s)/5856841243402783) + 604462909807314587353088*s*exp(exp(233/100 - (583378281331064569856*W)/146421031085069575)/10) + 48167231430905666015625*W*log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W)*tanh((73786976294838206464*s)/5856841243402783)))/(log(((2305843009213693952*W^2)/5856841243402783 + 127/25000)/W)*(5856841243402783*tanh((73786976294838206464*s)/5856841243402783) + 9223372036854775808*s*exp(exp(233/100 - (583378281331064569856*W)/146421031085069575)/10))))^(1/2)) - sym('82.9367');
B = 4848604884312330996192171599799452960064720961461794373632/(390625*((30197372856938873356783865240544523007076102631740932096*W + 1196803464977447626879572441392246924444885789442048*log(2*(2*W + s)^(1/2) + 2*2^(1/2)*W^(1/4)*(W + s)^(1/4)) + 1196803464977447626879572441392246924444885789442048*log(1/((2*W + s)^(1/2) - 2^(1/2)*W^(1/4)*(W + s)^(1/4))) + 12207395342769963168946347226992069644318890998628352*log(coth((50000*s*pi)/127)) - ((31721688620111212543053501011329024*(9223372036854775808*W - 5856841243402783)^2)/501342689882353 + (80464336588145820923004586700794002638127030245202533672503105028096*W^(1/2))/(1953125*(576460752303423488*W + 4392630932552087)^(1/2)) + 66056980683050248153209450614638153187005796318183424)/(log(W) - log((2305843009213693952*W^2)/5856841243402783 + 127/25000)) - ((715913401141667049096758589128704*W + ((133952*(9223372036854775808*W - 5856841243402783)^2)/89296875 + (28614490977577140881519611179794734764726943744*W^(1/2))/(29296875*(576460752303423488*W + 4392630932552087)^(1/2)) + 1566065959909660640395860639744)/(log(W) - log((2305843009213693952*W^2)/5856841243402783 + 127/25000)))*(27153607276500459978752*s + 1112053888018253184))/s)*(227645271101905578581467981701973076307609129058304*W + 92026410225101700192114242347788464628541947904*log(2*(2*W + s)^(1/2) + 2*2^(1/2)*W^(1/4)*(W + s)^(1/4)) + 92026410225101700192114242347788464628541947904*log(1/((2*W + s)^(1/2) - 2^(1/2)*W^(1/4)*(W + s)^(1/4))) + 92026410225101679909704638696118040681290661888*log(coth((50000*s*pi)/127)) - 43872128685689108753488251272750948277693341237248/(5859375*s*(log(W) - log((2305843009213693952*W^2)/5856841243402783 + 127/25000))) - 15943838407882170125382859023155862270216286202583056384/(17578125*log(W) - 17578125*log((2305843009213693952*W^2)/5856841243402783 + 127/25000)) - (9396058564731152614103031140650616447679070208*W)/(5*s)))^(1/2)) - sym('37.6092');
fA = matlabFunction(A);
fB = matlabFunction(B);
HA = fcontour(fA,[0,.00100,-.001,.001]);
HA.LevelList = 0;
HA.LineColor = 'r';
hold on
HB = fcontour(fB,[0,.00100,-.001,.001]);
HB.LevelList = 0;
HB.LineColor = 'g';
legend('A','B')
xlabel W
ylabel s
grid on
That plot enables me to find the intersection of the two level lines, and thus the solution. Remember that a contour plot can act as a graphical version of a rootfinder.
You CANNOT use solve though. You MUST use a numerical solver.
Ws = vpasolve(A,B,W,s,[.0003 .0001])
Ws =
struct with fields:
W: [1×1 sym]
s: [1×1 sym]
Ws.W
ans =
0.0003813215765050440174161487085986
Ws.s
ans =
0.00012687605236583108888940489516916
  댓글 수: 1
Chandan Roy
Chandan Roy 2019년 5월 16일
Thanks a lot. I didn't think that the solution can be done in this way. Your answer is corrrect. I had the results since I was synthesizing the problem. Thanks again.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by