- Since "x0", "y0" and "m" are supposed to be handled numerically, they should not be defined as symbolic variables.
- To find the slope function, "yprime" should be the first derivative of "f(x)" and for its evaluation, you can utilize the "subs" function finding the slope at "x0".
- As of MATLAB R2024a, the "ezplot" function has been deprecated, hence "fplot" should be used instead for compatibility.
Derivatives using second diff
2 views (last 30 days)
Show older comments
% This program computes for the Tangent Line / Normal Line of a curve % about a given point
%define x for symbolic processing
syms x y f(x) x0 y0 m
%IDENTIFY the function f(x)
f(x) = (4*x^2)-(2*x) + 1;
%DETERMINE the point of tangency (This will be a random point)
x0=randi([-5,5])
%SOLVE for the Ordinate of the point of tangency
y0=f(x0); %Evaluate y given value fo x
y = (4*x0^2)-(2*x0) + 1;
%FIND the slope function
yprime(x) = diff(f(x)); %Solve for the first derivative
%Determine the slope at the given x0
m(x)= diff(y); %Evaluate the slope
%Solve the equation of the tangent line
ytangent= m*(x-x0)+y0
%Solve the Equation of the normal line
ynormal= (-1.\m)*(x-x0)+y0
%DISPLAYING RESULTS
fprintf('The tangent line to f(x)=%s at (%.2f, %.2f) is y = %s \n',string(f(x)),x0,y0, string(ytangent))
fprintf('The normal line to f(x)=%s at (%.2f, %.2f) is y = %s \n',string(f(x)),x0,y0, string(ynormal))
%PLOTTING
g1=ezplot(f,[-15,15]);
set(g1,'color','b')
grid on
hold on
plot(x0,y0,'r*')
text(x0+1,y0,"Point of Tangency")
g2=ezplot(ytangent,[-15,15]);
text(5,5,["y(Tangent)=", string(ytangent)])
pause(1)
set(g2,'color','m')
pause(1)
g3=ezplot(ynormal,[-15,15]);
text(3,3,["y(Normal)=", string(ynormal)])
set(g3,'color','c');
title("Tangent Line and Normal Line")
Unable to perform assignment because the left and right sides have a different number of elements.
Variable ytangent has an incorrect value.
Variable ynormal has an incorrect value.
Please help me to correct my codes for ytangent and ynormal
0 Comments
Answers (1)
Divyam
on 10 Sep 2024
The following issues in the MATLAB code are causing the errors:
Here is the corrected code for computing the Tangent Line and Normal Line of a curve about a given point:
% This program computes for the Tangent Line / Normal Line of a curve about a given point
% Define x for symbolic processing
syms x f(x)
% IDENTIFY the function f(x)
f(x) = (4*x^2) - (2*x) + 1;
% DETERMINE the point of tangency (This will be a random point)
x0 = randi([-5, 5]);
% SOLVE for the Ordinate of the point of tangency
y0 = f(x0); % Evaluate y given value for x
% FIND the slope function
yprime = diff(f, x); % Solve for the first derivative
% Determine the slope at the given x0
m = double(subs(yprime, x, x0)); % Evaluate the slope at x0
% Solve the equation of the tangent line
ytangent = m * (x - x0) + y0;
% Solve the Equation of the normal line
ynormal = (-1/m) * (x - x0) + y0;
% DISPLAYING RESULTS
fprintf('The tangent line to f(x)= %s at (%.2f, %.2f) is y = %s \n', string(f(x)), x0, y0, string(ytangent));
fprintf('The normal line to f(x)= %s at (%.2f, %.2f) is y = %s \n', string(f(x)), x0, y0, string(ynormal));
% PLOTTING
figure;
hold on;
fplot(f, [-15, 15], 'b');
plot(x0, y0, 'r*');
text(x0, y0 + 100, "Point of Tangency");
fplot(ytangent, [-15, 15], 'm');
text(5, 5, ["y(Tangent)=", string(ytangent)]);
fplot(ynormal, [-15, 15], 'c');
text(-5, -50, ["y(Normal)=", string(ynormal)]);
grid on;
title("Tangent Line and Normal Line");
hold off;
For more information regarding the "fplot" and "subs" functions, refer to the following documentation:
0 Comments
See Also
Categories
Find more on Calculus 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!