- Why do your variables not match the help text? Not your actual problem, but still...why not document what you write correctly?
- x isn't defined in the function
- Can't refer to the function you're defining inside the function itself even if were valid syntax and if both of those were ok, polynomial would still only be visible inside poly3rd
- Bad syntax for poly3--no coefficients in the expression
Help with creating a function
3 views (last 30 days)
Show older comments
Please write a MATLAB function with the following: (1) output a third-order polynomial function with the coefficients as the input variables; (2) Convert this function to function handle.
This is what I have but it will not work.
function output=poly3rd(a,s,d,f)
%this function creates a 3rd order polynomial with a,b,c, and d
%being the variables
output= a.*x.^3 +s.*x.^2 +d.*x+f
polynomial= @poly3rd;
end
poly3= @(x) *x.^3 +2.*x.^2+3.*x +4
2 Comments
dpb
on 1 Mar 2019
function output=poly3rd(a,s,d,f)
%this function creates a 3rd order polynomial with a,b,c, and d
Walter Roberson
on 1 Mar 2019
It is possible to refer to a function you are defining inside the function itself. It is done all the time for recursive functions.
Accepted Answer
Image Analyst
on 1 Mar 2019
Close. But your poly3 needs to take the coefficients in as the input, NOT x. Try this:
poly3= @(a,s,d,f) poly3rd(a,s,d,f) % Define anonymous function
% Plot a function
y = poly3(1,2,3,4);
plot(y, 'b-');
grid on;
and the function pretty much like what you had but you needed to define some x.
function output = poly3rd(a,s,d,f)
%this function creates a 3rd order polynomial with a,b,c, and d
%being the variables
x = linspace(-10, 10, 500); % Whatever.
output = a.*x.^3 + s.*x.^2 + d.*x + f;
end
I second dpb's comment about making your comment and your variables match: either a,s,d,f OR a,b,c,d.
0 Comments
More Answers (0)
See Also
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!