vpasolve gives different answers for the same equation

3 Ansichten (letzte 30 Tage)
Hi,
I want to use vpasolve to solve a nonlinear equation numerically. when I insert the coefficients manually, the result seems fine but when I use variables with the same value as I put manually the result changes. It doesn't seem logical to me at all. I would appreciate any help in this regard.
Here is the code (I have put both manual and variable case so you can compare the results) :
NA = 6.022*10^23; %1/mol
R = 8.3145*10^-6; %m^3*MPa/(K*mol)
M_ps = 329; %kg/mol
T_cent = 70; %C
P = 14.8; %MPa
T = T_cent + 273.15; %K
cT_ps = 739.9; %K
cP_ps = 387; %Mpa
crho_ps = 1108; %kg/m^3
r_ps = M_ps * cP_ps / (R * cT_ps * crho_ps)
tT_ps = T / cT_ps
tP_ps = P / cP_ps
syms x
vpasolve(x^2+ tT_ps* (log(1-x) + (1-1/r_ps)*x) + tP_ps,x)
vpasolve(x^2+ 0.4638* (log(1-x) + (1-1/18679)*x)+ 0.0382,x)

Akzeptierte Antwort

Manan Mishra
Manan Mishra am 10 Jan. 2018
Bearbeitet: Manan Mishra am 10 Jan. 2018
The difference in results is because of the values you have used in place of those variables.
The default output display format in MATLAB is "short" which gives 4 digits after the decimal point (the output gets rounded-off to 4 decimal places). To see a more precise value of those variables, you can change the output display format to "long" and then use those values in the "vpasolve" command.
>> format long
After executing this command, you can see the values with 15 digits after decimal places.
>> tT_ps
tT_ps =
0.463778889039059
>> r_ps
r_ps =
1.867918561070000e+04
>> tP_ps
tP_ps =
0.038242894056848
When you give these values to "vpasolve" command, the results are same:
>> vpasolve(x^2+ tT_ps* (log(1-x) + (1-1/r_ps)*x) + tP_ps,x)
ans =
- 0.0047320390312815607624270500579465 - 0.22208533470256431164303895468295i
>> vpasolve(x^2+ 0.463778889039059* (log(1-x) + (1-1/18679.1856107)*x)+ 0.038242894056848,x)
ans =
- 0.0047320390312815607624270500579465 - 0.22208533470256431164303895468295i

Weitere Antworten (0)

Kategorien

Mehr zu Function Creation finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by