Why does this function not work for decimals?
古いコメントを表示
x = input("Please enter the value of x (in radians): ");
approximatearctan = 0;
n = 0;
arctanactual = atan(x);
while (abs(approximatearctan - atan(x))>0.00001)
approximatearctan = approximatearctan + (-1)^n * x^(2*n +1) / factorial(2*n+1);
n = n + 1;
end
fprintf('The actual value for arctan(x) to eight decimal places given an input of %0.1f is %0.8f. \n', x, arctanactual)
fprintf('The approximate value of arctan(x) to eight decimal places given an input of %0.1f is %0.8f. \n', x, approximatearctan)
fprintf('The number of terms required to reach a five decimal place agreement between the approximate and actual values of arctan(x) is %0.0f \n', n)
I have this code, and it works fine for any number above one. However, I need it to work for numbers smaller than 1, e.g. 0.7. Whenever I put in a number that is <1, the program just gets stuck in an endless running state. Any input is appreciated.
1 件のコメント
Dyuman Joshi
2024 年 2 月 18 日
移動済み: Dyuman Joshi
2024 年 2 月 18 日
The formula you have used is incorrect. There is no factorial in the formula.
Refer to this webpage for expansion of arc tan for different values - https://proofwiki.org/wiki/Power_Series_Expansion_for_Real_Arctangent_Function
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!