Plotting graph from non linear equation in MATLAB

I need help while plotting a non linear equation like:
*(plotting of "x Vs a"; x: Y-axis, a: X-axis)
x = b*(a-c-x) +(2*b*(a-c-x) +d)*(log(R) - (1/2)*log((R^2)*(1+(2*b/d)*(a-c-x))))
where,
a = 0:0.01:2
b = 1.577*10^11
c = 0.74
d = 1.9296*10^(-7)
R = 5*10^(-9)
I'm facing error while using solve & fzero function.

 Accepted Answer

A = 0:0.01:2;
b = 1.577e11;
c = 0.74;
d = 1.9296e-7;
R = 5e-9;
x0 = -1.0;
for i = 1:numel(A)
a = A(i);
fun = @(x) -x + b*(a-c-x) +(2*b*(a-c-x) +d).*(log(R) - (1/2)*log((R^2)*(1+(2*b/d)*(a-c-x))));
X(i) = fsolve(fun,x0);
x0 = X(i);
end
plot(A,X)

7 Comments

Thank you very much, got my mistake. I may contact if I face any other problems.
I have an doubt in the above code: whether "a" will take all the values or it will take only the final value from the array? as its value is showing as 2, not the full array.
If you output "a" in the for-loop, you will see that it takes all values stored in the A-array one by one.
Then, the scalar "a" is used to define the function "fun". The solution x for the specific a-value is then saved in the array X as X(i).
Ohh, yes, just checked. Thanks a lot!
Can you help me out to solve the above equation using Newton-Raphson iterative approach? or are there any other approaches to solve non linear equation like this?
So the solution from fsolve was not fine ?
That was fine, finding some other ways as well..

Sign in to comment.

More Answers (0)

Categories

Find more on Numerical Integration and Differential Equations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!