How to make a composite trapezoidal rule have more than 1 iteration?
3 次查看(过去 30 天)
显示 更早的评论
Hi I have written the function for composite trapezoidal rule and I'm required to calculate the volume by integrating 1/(1+x^2) from 0 to 1. I've found the volume (0.7845) but how do i show the number of iterations and absolute error only when the accuracy of the estimation has improved by a decimal place. I'm supposed to fprintf like the as shown below but i don't understand how to make the trapezoidal rule have more than one iteration??
Thanks I'm new to matlab
Iter Pts Vol_est Error
2 3 0.41333333 0.05545687 (1 DP)
5 6 0.41799014 0.00888872 (2 DP)
15 16 0.41878025 0.00098765 (3 DP)
48 49 0.41886937 0.00009645 (4 DP)
0 个评论
回答(1 个)
Walter Roberson
2015-12-23
The trapazoidal rule gets more accurate as you sample more finely. The "Iterations" is the number of pieces the range is subdivided in to. 2 pieces takes 3 points, one at the beginning, one in the middle, one in the end. 3 pieces takes 4 points, one at the beginning, one 1/3 of the way, one 2/3 of the way, one at the end. Notice in the table that Pts is always 1 greater than Iter: that is due to this relationship. "Iter" == "Subdivisions"
4 个评论
Walter Roberson
2016-1-11
There is no built in function to determine if an error has improved by a decimal point.
I would point out, though, that if abs(current_error) <= abs(recorded_error)/10 then the current error is at least one decimal place better.
If you want to know how many decimal places current_error is, think about log10
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!