24小时热门版块排行榜    

查看: 445  |  回复: 1

livin325

新虫 (初入文坛)

[求助] Sine Approximation 已知angle&阈值,返回terms值

输入两个参量X 和 threshold. 逐渐添加terms值,直到满足
abs((true &#1048576;-approx)/true)< threshold ;
true 是系统built-in 方程式sin(x)。
sin(x) = x &#1048576;- x^3/3! + x^5/5! - x^7/7!+...   
方程式要返回2值。 approx和terms(添加了几个数)
输入X=pi/5, threshold=1e-6时,显示如下:
>> format long
>> x = pi/5;
>> threshold = 1e-6;
>> [approx, terms] = approx_sine(x, threshold)
approx =
0.587785210384344
terms =
3
以下是本人方程式:
function [approx, terms] = approx_sine(x, threshold)
approx = x; % 初始 approximation
terms = 0; % Number of additional terms added to improve the approximation

while threshold > abs((sin(x)-approx)/sin(x))
   terms = terms + 1;
   approx = approx + (-1)^(terms)*x.^(2*terms+1)/factorial(2*terms+1)
end
end
请指点,为啥返回approx错误,而且还没返回terms值(请使用while loop解题)
>> sine function(pi/5, 1e-6)
approx =
   1.256637061435917
ans =
   1.256637061435917
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

livin325

新虫 (初入文坛)

不好意思乱码区重新输入如下
abs((true-approx)/true)<threshold

sin(x)=x- x^3/3! + x^5/5! - x^7/7!+...
2楼2015-12-02 05:49:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 livin325 的主题更新
信息提示
请填处理意见