Optimizing Taylor Series Approximations in Matlab for Trigonometric Functions

Click For Summary

Discussion Overview

The discussion revolves around optimizing Taylor series approximations for the function f(x) = 5sin(3x) using Matlab. Participants explore how to implement the Taylor series without built-in functions, plot approximations, calculate errors, and determine the number of terms needed for a specified accuracy.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Homework-related

Main Points Raised

  • One participant outlines the requirements for their Matlab script, including calculating the Taylor series for different numbers of terms and plotting the results.
  • Another participant suggests evaluating the Taylor series at specific points to find the error and recommends iterating over different orders to achieve the desired accuracy.
  • A participant clarifies that "relative true error" refers to the absolute difference between the approximations and the true values.
  • One participant proposes an alternative method to compute the Taylor series by defining the derivatives of the function instead of using built-in functions.
  • A later reply indicates that the initial approach was incorrect and shares a new attempt at implementing the Taylor series using a loop structure, although they express difficulty in achieving the desired results.

Areas of Agreement / Disagreement

Participants generally agree on the methods to evaluate the Taylor series and calculate errors, but there are differing opinions on the best approach to implement the series in Matlab, and the discussion remains unresolved regarding the effectiveness of the proposed methods.

Contextual Notes

Some participants mention the use of the remainder term for accuracy, but the specifics of its application are not fully resolved. There is also uncertainty regarding the correct implementation of the Taylor series without built-in functions.

NYK
Messages
27
Reaction score
0
I have been working on writing g a script file that will:

  1. Calculate f(x)=5sin(3x) using the Taylor series with the number of terms n=2, 5, 50, without using the built-in sum function. 
  2. Plot the three approximations along with the exact function for x=[-2π 2π]. 
  3. Plot the relative true error for each of the approximations 
  4. Calculate the value of sin(x) and the error for x=π and x=3π/2 for each of the approximations 
  5. How many terms are necessary for an error E<.000001?
I have been able to get as far as the third part of the question, any advice, tips or pointers are greatly appreciated!

I pasted the script I have so far bellow:

clear, clc, close all
%Define the limits, the original function and the Taylor series.
syms x

a = -2*pi:2*pi;

g = (5*sin(3*x));

T_2 = taylor(g, 'Order', 2);

T_5 = taylor(g, 'Order', 5);

T_50 = taylor(g, 'Order', 50);

z = (5*sin(3*a));%plot the original function and the three Taylor series.

fg=figure;
ax=axes;
ez1=plot(a,z, 'r--');
hold on
ez2=ezplot(char(T_2),[-2*pi, 2*pi]);
ez3=ezplot(char(T_5),[-2*pi, 2*pi]);
ez4=ezplot(char(T_50),[-2*pi, 2*pi]);

legend('5sin(3x)','T2','T5','T50')

set(ez2, 'color', [0 1 0])
set(ez3, 'color', [0 0 1])
set(ez4, 'color', [1 0 1])title(ax,['Graph of 5sin(3x) and taylor expansions T2, T5 and T50'])
 
Physics news on Phys.org
for part 4, you should just evaluate the taylor series at the points mentioned and subtract that from the true value.
Once you have done that, you can set up a script to try different values for 'order' until you reach the accuracy needed.
 
  • Like
Likes   Reactions: NYK
3. "Relative true error" to me just sounds like you're plotting the absolute difference between the approximations and the true values.

4. Pretty self explanatory, I'm with RUber on this one ^^.

5. Use the remainder term to figure this out. See the following links:

http://en.wikipedia.org/wiki/Taylor's_theorem#Motivation

http://www.millersville.edu/~bikenaga/calculus/remainder-term/remainder-term.html
 
Last edited by a moderator:
  • Like
Likes   Reactions: NYK
If you wanted to do this without the built in Taylor functions, you could define the derivatives of g:
g(x)= 5sin(3x)
d(n,g(x))=5*3^n*sin(3x+n*pi/2)
and the taylor series is
(x-x_0)^n/n!*d(n,g(x_0)).
Often, the series is evaluated at x_0 = 0...which produces a pretty simple result for the sine function.
 
  • Like
Likes   Reactions: NYK
Thanks RUber, you are compltely correct, I read the problem statement a little more closely and releaized i wasnt do it correct.

So I've tried working with this:

clear;clc

n =[2 5 50]
do=linspace(-2*pi,2*pi,720);
for i =1:720

for k=1:1:50
ns=2*k+1
T(i)=T(i)+5*(-1)^k*(3*do(i))^(ns)/factorial(ns);
end
endhavent had any luck with it so far though
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 1 ·
Replies
1
Views
8K
  • · Replies 12 ·
Replies
12
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 27 ·
Replies
27
Views
4K
  • · Replies 3 ·
Replies
3
Views
2K