Trying to answer a math problem using newton's method but having problem in the function.
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
John Barton
am 17 Mär. 2023
Bearbeitet: Cris LaPierre
am 17 Mär. 2023
This is the last function when newton's method is applied:

I used z=log(x) in my function to make it easier to understand:
clc
x=0.25;
y=0;
while (y-x)<10^-4
z=log10(x);
y = x-((((x ^ 2)z-(x ^ 0.5)-20)2.x ^0.5)/(-1+4.x ^ (3/2)z+2.x ^ (3/2)))
x=y;
end
0 Kommentare
Akzeptierte Antwort
Alan Stevens
am 17 Mär. 2023
Matlab doesn't like implied multiplication
(x ^ 2)z
should be
(x ^ 2)*z
etc.
Also, in Matlab
log(x)
is ln(x)
0 Kommentare
Weitere Antworten (2)
Cris LaPierre
am 17 Mär. 2023
You need to include the multiplication operator when coding your equation. Also, it is '*', not '.'. Nothing is inferred.
I think your conditional will be problematic, since the last line of your loop sets x equal to y.
x=0.25;
y=0;
while (y-x)<10^-4
z=log10(x);
y = x-((((x ^ 2)*z-(x ^ 0.5)-20)*2*x ^0.5)/(-1+4*x ^ (3/2)*z+2*x ^ (3/2)))
x=y;
end
1 Kommentar
Cris LaPierre
am 17 Mär. 2023
Bearbeitet: Cris LaPierre
am 17 Mär. 2023
+1 about log10 vs log for natural ln.
Also wanted to point out that you have created an infinite loop. Since x=y, (y-x) is 0, which is <1e-4. Since your condition will always be true, your loop will never end.
Just changing the < to > will prevent the infinite loop, but won't fix the issue that y=x. Consider creating a third variable to prevent this.
Also consider the case that the difference of (y-x) may be positive or negative. You may want your condition to compare to the absolute value of this difference.
Voss
am 17 Mär. 2023
Multiplication is * or .* but never . as in 4.x and never implicit as in (x^2)z
log10 is base-10 logarithm. log is natural logarithm.
z = log(x);
y = x-((((x^2)*z-(x^0.5)-20)*2*x^0.5)/(-1+4*x^(3/2)*z+2*x^(3/2)));
0 Kommentare
Siehe auch
Kategorien
Mehr zu Exponents and Logarithms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!