Matlab Programming(Need help with the last couple of details)

  • Thread starter Thread starter ialan731
  • Start date Start date
  • Tags Tags
    Couple Matlab
AI Thread Summary
The discussion focuses on troubleshooting a Matlab program designed to calculate and plot the 2nd and 3rd degree Taylor polynomials for the function f(x)=ln(1+x) around the point a=0. The user encounters an error due to incorrect syntax in the line "y=log*(1+x)", which should be corrected to "y=log(1+x)". Additionally, there are issues with the use of the factorial operator, as the user mistakenly applies "!" to arrays, which is not valid in Matlab. Clarifications are provided on the proper use of the factorial function and the distinction between the operators "^" and ".^". The conversation emphasizes the importance of correctly implementing the Taylor series and understanding Matlab syntax for successful execution.
ialan731
Messages
25
Reaction score
0

Homework Statement



Okay, so I need some help with this Matlab program. I never learned Matlab, so I'm trying to do it as best as I can. The question is: Calculate the 2nd and 3rd degree Taylor polynomials for the function f(x)=ln(1+x) about the point a=0 Plot these polynomials and the function on the interval -1<x<3

Homework Equations



N/A

The Attempt at a Solution


This is what I have so far. I thought it was right, but Matlab said "Not enough input arguments." What does that mean, and I how do I fix it?
>> figure(1);clf;
x=[-1:.01:3];
y=log*(1+x);
P2= x-(x^2/2)!;
P3= x-(x^2/2)+(x^3/3)!;
figure(1);clf;
plot(x,y,x,P2,'--',x,P3,'-.')
legend('log*(1+x)','P_2','P_3')
xlabel('x')
title('The function and the 2^{nd} and ^{rd} order Taylor Polynomials')
figure(2);clf
plot(x,abs(y-P2),x,abs(y-P3),'--')
legend('log*(1+x)-P_2|','log*(1+x)-P_3|')
xlabel('x')
title('Errors in the two Taylor Polynomials')

Thanks in advance!:)
 
Physics news on Phys.org
Problem is with this line: "y=log*(1+x)". Can you spot it?
 
Honestly, no. There was an issue with that line before because I had put ln instead of log so I changed it. Is there supposed to be a . Before/after the x? I noticed that there's a lot of times where that's necessary.
 
log (natural log) is a function so it should be: "y=log(1+x)"
 
It's that simple? Wow I was looking for at least an hour, and I couldn't find the issue. Thank you so much!
 
I think you are also going to have a problem with the factorial operator. Missed that one--try the factorial() function. [edit-- you have some significant semantic issues with the factorial operation--does not make much sense]
 
Last edited:
What do you mean?
 
Well for example, the line:
P2= x-(x^2/2)!;

You are trying to take the factorial of an array of non-integers (not defined) using "!" (not a MATLAB operator). You might need to step back and detail what you are trying to do.
 
Oh so I would have to write out the factorial instead of simply putting !.
 
  • #10
I don't understand what the factorial symbol is doing in the expressions for P2 and P3. I don't think they belong there at all.
 
  • #11
But doesn't the equation call for a factorial? How else would it be done?
 
  • #12
Not sure what equation you are using. From page 4 of this link is the general form http://www.math.ufl.edu/~vatter/teaching/m8w10/m8l01.pdf

f = ln(1+x)
f' = 1/(1+x)
f'' = -1/(1+x)2
f''' = 2/(1+x)3

[edit-- also familiarize yourself with the distinction between the ".^" and the "^" operators]
 
Last edited by a moderator:
  • #13
lewando said:
Not sure what equation you are using. From page 4 of this link is the general form http://www.math.ufl.edu/~vatter/teaching/m8w10/m8l01.pdf

f = ln(1+x)
f' = 1/(1+x)
f'' = -1/(1+x)2
f''' = 2/(1+x)3

[edit-- also familiarize yourself with the distinction between the ".^" and the "^" operators]

I have to use the Taylor series so it's not just the derivative. And okay, will do.
 
Last edited by a moderator:
Back
Top