Please HELP me to fix my code!!!
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
David Hill
2020-4-7
编辑:David Hill
2020-4-7
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.
采纳的回答
Ameer Hamza
2020-4-7
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Number Theory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!