Please Help in MATLAB .

9 ビュー (過去 30 日間)
RORO .
RORO . 2011 年 11 月 18 日
How I can solve this functions?
(Functions)
A. Write a function Sin() that calculates the sine of the supplied angle (given in degrees) using:
! indicates factorial. 5! = 5 x 4 x 3 x 2 x 1 = 120
Call to the function should be : Result=sin(32.5); means calculate the sine of 32.5 degrees.
B. Write a function cos() that calculates the cosine of the supplied angle (given in degrees) using:
Call to the function should be : Result=cos(32.5); means calculate the cosine of 32.5 degrees
Test your program for A) and B).
Ask the user for the number of terms to use in the series then output all the values from 0 to 180 degrees from your functions.
Also, output the values from the library predefined functions sin( ) and cos( ) for comparison purpose. Use the same unit for comparison.
Check whether sin( ) and cos( ) functions require the angle to be passed in radians or in degrees.
degrees = radians x 180/
radians = degrees x /180
!! IMPORTANT NOTE: First write the first part A) and test it. Then if it works just “cut & paste” and include the second cosine part.
Grading:
Ex#1 Ex#2 EX#3
User prompts 0. 25 0.25 0.25
Comments 1.0 0.75 0.75
Identifier names 0. 25 0.25 0.25
Indentation 0. 25 0.25 0.25
Program code 3.75 2.5 2.5
Output correctness 1.25 1.50 1.50
Output format 1.25 0.5 0.5
Total 8 6 6
  8 件のコメント
Jan
Jan 2011 年 11 月 18 日
@Poro: Do I miss something? *Walter* should answer this question and *you* get a bonus mark? When I was studying, it was usual to solve the homework by ourselves. We did not get bonus marks for cheating, but a removal from the register of students.
I do not think that Tony Nicol will be satisfied by your strategy.
Image Analyst
Image Analyst 2011 年 11 月 19 日
Well I'll give Walter a bonus mark, for whatever that's worth.

サインインしてコメントする。

回答 (2 件)

Jan
Jan 2011 年 11 月 20 日
"How I can solve this functions?"
  1. Learn the programming fundamentals of Matlab. Reading the Getting Started chapters of the documentation is recommended.
  2. Use the details explained in the lessons to answer solve the questions.
  3. In case of problems, ask you tutor/professor/teacher.
  4. If you have a specific question, ask in this forum.
  1 件のコメント
Julián Francisco
Julián Francisco 2011 年 11 月 20 日
@Jan Simon: You are right.

サインインしてコメントする。


Julián Francisco
Julián Francisco 2011 年 11 月 18 日
The trigonometric function sin(x) can be approximated by the infinite series sin(x) = x^1/1! – x^3/3! + x^5/5! – x^7/7! + x^9/9! - … and the trigonometric function cos(x) can be approximated by the infinite series cos(x) = 1 – x^2/2! + x^4/4! - … Since both series are rapidly converging (for whatever value of x), by summing only a small number of terms (with the rest truncated or ignored), one can obtain very good approximation of sin(x) or cos(x) for any given value of x.
This the code for the sine function:
function y = f_sin(x_deg,n)
% x_deg is the argument of the sine function in degrees.
% n is the number of terms used by the series expansion of the sine
% function.
x_rad = degtorad(x_deg); % convert the argument to radians due to the ...
% infinite series uses radians
y = 0;
for j=1:n
y = y + (-1)^(j+1)*(x_rad)^(2*j-1)/factorial(2*j-1);
end
end
This the code for the cosine function:
function y = f_cos(x_deg,n)
% x_deg is the argument of the cosine in degrees
% n is the number of terms used by the series expansion of the sine
% function
x_rad = degtorad(x_deg); % convert the argument to radians due to the ...
% infinite series uses radians
y = 0;
for j=1:n
y = y + (-1)^(j+1)*(x_rad)^(2*j-2)/factorial(2*j-2);
end
end
The following examples show that the above functions work well.
% Compare the f_cos function with the Matlab's built-in cos function
f_cos(2,2),
cosd(2),
% Compare the f_sin function with the Matlab's built-in sin function
f_sin(2,2),
sind(2),
  10 件のコメント
Walter Roberson
Walter Roberson 2011 年 11 月 20 日
maclaurin expansion of sin(x*Pi/180)
Julián Francisco
Julián Francisco 2011 年 11 月 20 日
@Walter Roberson: Two comments.
1º) The Maclaurin series of a function is the Taylor series of that function about x = 0 (i.e. Maclaurin expansion is only valid for argument's absolute values close to zero).
2º) sin(x*Pi/180) implies that the argument of the sine function, x*Pi/180, is expressed in radians although the value of x is degrees. Indeed, a variable change is being applied to be able to set x in degrees as input argument but the sine function is working in radians. If you do that, then the sine expansion formula (direct degrees version) will be
sin(x*Pi/180) = x*Pi/180 -(x*Pi/180)^3/3! + (x*Pi/180)^5/5! -...
where the argument x is expressed in degrees.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by