MATLAB Answers

Solve a large composite set of equations numerically

11 views (last 30 days)
I have the following set of equations:
1:
where are known scalar constants, and
2:
3:
where Vis known scalar constant and k is a scalar which I want to find.
4:
5:
I've been informed to find the value of k from the last following two inequalities:
with
and are known constants.
Just to make things little more easier, let
The ultimate problem here is that do not have explicit symbolic equations because I have to compute them numerically since their direct symbolic equations are too complicated and Matlab symbolic engine produces too big output.
So the question is: how to numerically solve inequalities (5:) for the variable k ?

  0 Comments

Sign in to comment.

Accepted Answer

Andrey Mironenko
Andrey Mironenko on 17 Jan 2020
I have finally solved this set symbolically, but this is offtopic, so close it now.

  6 Comments

Show 3 older comments
Andrey Mironenko
Andrey Mironenko on 17 Jan 2020
It is if you consider assumption i have pointed above.

Sign in to comment.

More Answers (1)

darova
darova on 14 Jan 2020
I think there is no exact solution for k. Try something like this:
% 1
[X,Y,Z] = ndgrid( linspace(-1e5,1e5,20) );
f = fx*X + fy*Y + fz*Z + d1;
% 2
r = sqrt(f.^2+g.^2);
% 3
k = 2; % assume
vzd = -V*(f*fz+g*gz).*tanh(k*r)./Nc + ...
% 4
gammad = atand2(vzd,vxd);
delta = 2e5/20;
[Bx,By,Bz] = gradient(gammad,delta);
% 5
F1 = sqrt(Bx.^2+Bz.^2) - 7*(1-alpha)*gamma_max/10/V;
F2 = By - alpha*gamma_max/V;
isosurface(X,Y,Z,F1,0)
hold on
isosurface(X,Y,Z,F2,0)
hold off

  3 Comments

Andrey Mironenko
Andrey Mironenko on 14 Jan 2020
Just to be clear, are
vzd =
vxd =
scalar functions in your answer?
I'm asking because the notation
.* ./
assumes dealing with vectors but
f,g,vzd,vxd
are supposed to be scalar functions.
darova
darova on 14 Jan 2020
Everything that depend on X,Y,Z are 3D matrices
Andrey Mironenko
Andrey Mironenko on 14 Jan 2020
The code so far:
V = 50;
fx = 0;
fy = 1;
fz = 0;
d1 = -4499;
gx = -1;
gy = 0;
gz = 0;
d2 = -306154;
k = 1e-5;
a = 0.5;
chi_rate_max = 0.4;
% 1
[X,Y,Z] = ndgrid(linspace(-5e6,5e6,20));
f = fx*X + fy*Y + fz*Z + d1;
g = gx*X + gy*Y + gz*Z + d2;
% 2
r = sqrt(f.^2 + g.^2);
Nc = power(((f.*fx + g.*gx).^2 + (f.*fy + g.*gy).^2 + (f.*fz + g.*gz).^2), 0.5);
Ns = power(((fy*gz - fz*gy).^2 + (fz*gx - fx*gz).^2 + (fx*gy - fy*gx).^2), 0.5);
% 3
vzd = -V*(f*fz + g*gz).*tanh(k*r)./Nc + V*(fx*gy - fy*gx).*sech(k*r)./Ns;
vxd = -V*(f*fx + g*gx).*tanh(k*r)./Nc + V*(fy*gz - fz*gy).*sech(k*r)./Ns;
% 4
chid = atan2(vzd,vxd);
delta = 2e5/20;
[Bx,By,Bz] = gradient(chid,delta);
% 5
F1 = sqrt(Bx.^2 + Bz.^2) - 7*(1 - a)*chi_rate_max/10/V;
F2 = By - a*chi_rate_max/V;
isosurface(X,Y,Z,F1,0)
hold on;
isosurface(X,Y,Z,F2,0)
hold off;
gives error:
warning: isosurface: triangulation is empty
warning: called from
isosurface at line 164 column 5
VF at line 31 column 1
error: invalid value for array property "cdata"
error: __go_patch__: unable to create graphics handle
error: called from
__patch__ at line 171 column 7
patch at line 86 column 18
isosurface at line 191 column 10
VF at line 31 column 1

Sign in to comment.

Sign in to answer this question.