Writing a sin function program dealing with factorials, help in editing and error?
Mostra commenti meno recenti
I am trying to write a specific program involving the sine function and factorials.
The problem states that:
sin(x) = x - x^3 / 3! + x^5 / 5! - x^7 / 7! + x^9 / 9!
I am trying to get the error rate very low, basically having the number of terms it takes to get enough accuracy by 10^-5, so that:
abs[sin(x) - sk(x)] / abs[sin(x)] = 10^-5
I know the sk equation should be written as:
sk = x-x^3 / 3! + .......x^(2k-1) / (2k-1)!
I am starting out my program with:
for s = 1: maxs
nsteps(s) = (ones(s)
end
I am confused on how to add on to my code to create my desired result, I know intuitively that when plotting this, the #'s should increase as x increases.
[Merged information from duplicate question]
I am trying to write a specific program involving the sine function and factorials.
The problem states that:
sin(x) = x - x^3 / 3! + x^5 / 5! - x^7 / 7! + x^9 / 9!
I am trying to get the error rate very low, basically having the number of terms it takes to get enough accuracy by 10^-5, so that:
abs[sin(x) - sk(x)] / abs[sin(x)] = 10^-5
I know the sk equation should be written as:
sk = x-x^3 / 3! + .......x^(2k-1) / (2k-1)!
I am starting out my program with:
for s = 1: maxs
nsteps(s) = (ones(s)
end
I am confused on how to add on to my code to create my desired result, I know intuitively that when plotting this, the #'s should increase as x increases.
Here is my code:
function [s] = fact(t)
s = 1:max(s);
for s = 1:max(s)
nsteps(s) = ones(s);
end
for t = (1:2:2*k-1);
(-1)^(0:k-1) .* x^t ./ factorial(t);
end
I receive this error when performing it:
??? Undefined function or variable 's'.
??? Undefined function or variable "s".
Error in ==> fact at 2
s = 1:max(s);
HELP PLEASE!
1 Commento
Walter Roberson
il 23 Apr 2012
Elige pointed out that "s" has not been defined in the new code.
Risposte (2)
Walter Roberson
il 23 Apr 2012
t = (1:2:2*k-1);
(-1).^(0:k-1) .* x.^t ./ factorial(t)
Or something like that.
(Note: corrected -- ^ operators had to be .^ )
7 Commenti
Reelz
il 23 Apr 2012
Walter Roberson
il 23 Apr 2012
function s = mysin(t)
Reelz
il 23 Apr 2012
Walter Roberson
il 23 Apr 2012
You have to define s before you use it.
You will also have to define k before you use that.
Your nsteps variable will fail if s somehow becomes greater than 1, as ones(2) would be a 2 x 2 array and that is not going to fit within the single numeric array location nsteps(2)
I do not know what you are trying to do with your for loop, or your nsteps variable.
Walter Roberson
il 23 Apr 2012
Hint: (-1).^(0:k-1) .* x.^t ./ factorial(t) is an expression, not a command. You should be doing something with the expression, not just discarding the value of it (which is what a semi-colon means)
Reelz
il 23 Apr 2012
Walter Roberson
il 23 Apr 2012
"=" is not permitted in a "while". "while" has to be given a logical test.
Warning: You initialize s to 0, so max(s) is 0, and 1:0 is the empty vector, so your "for" loop will not do any iterations.
What is the purpose of your nsteps vector? Why are you trying to initialize it to a square matrix such as
1 1 1
1 1 1
1 1 1
(i.e., ones(3))
Richard Brown
il 23 Apr 2012
0 voti
I take it this is a programming exercise, not a straight mathematics question - you can work out the number of terms pretty easily using Taylor's theorem with remainder ...
Categorie
Scopri di più su Exponents and Logarithms in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!