Please HELP me to fix my code!!!
2 views (last 30 days)
Show older comments
Evergreen Yellow
on 7 Apr 2020
Commented: Ameer Hamza
on 8 Apr 2020
Hello,
I have an equation that I want to give to matlab :
I've tried to write it in matlab but it doesn't work. here is the code I've wrote :
function Hw = funTn(n,w)
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
Tnw = ((((-2)^n)* factorial(n))/factorial(2*n))*sqrt(1-(w^2))*diff(((sqrt(1-(w)^2))^(2*n-1)),w,n);
Hw=abs(1/(sqrt(1+(Tnw)^2)));
end
please help me to correct this function for the given n and w in the formula above to plot the outputs.
Thank you
1 Comment
David Hill
on 7 Apr 2020
Edited: David Hill
on 7 Apr 2020
Isn't H a function of n and w? How do you want the H output (in a matrix based on the values of n and w)? I assume you want just a numerical solution.
Accepted Answer
Ameer Hamza
on 7 Apr 2020
First, since w is a vector, you should be using element-wise multiplication (.*). Second, you cannot use diff() on a numerical vector and expect it to be of the same size as before. To make the function, you first need some symbolic manipulation. Run this code
syms n w
Tnw = ((((-2)^n)* factorial(n))/factorial(2*n))*sqrt(1-(w^2))*diff(((sqrt(1-(w)^2))^(2*n-1)),w,n);
Hw = abs(1/(sqrt(1+(Tnw)^2)));
Hw_fun = matlabFunction(Hw, 'Vars', [n w]);
W = linspace(0,10,100);
n = 1:7;
H = zeros(numel(n), numel(W));
for i=1:size(H,1)
H(i,:) = Hw_fun(n(i), W);
end
fig = figure();
ax = axes();
hold(ax);
view(3);
grid on
ax.ZAxis.Scale = 'log';
for i=1:size(H,1)
plot3(W, n(i)*ones(size(W)), H(i,:));
end
2 Comments
More Answers (0)
See Also
Categories
Find more on Number Theory 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!