Plotting a Function in MATLAB Using QUAD

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 2K views
ksekoliastis19
Messages
1
Reaction score
0
hello.can anyone help me to plot this function in matlab

Q=quad(@(omeg)myfun(omeg,x,t),-20,20).im not sure if this is correct.my m file function goes like that
function y= @myfun(omeg,x,t)
y=besselj(1,omeg.*x).*cos(omeg.*t).*omeg;


thanks in advance
 
Physics news on Phys.org
Hey-

There are a few problems with the syntax you posted if you are trying to plot the function. For starters, your m-file should look like this:


function y = myfun(omeg,x,t)
y = besselj(1,omeg.*x).*cos(omeg.*t).*omeg;

end

The '@' symbol is used for function handles, and it tells MATLAB which letter is the variable. Now let's make two vectors that we can plot:

x1 = -20:0.1:20;

for i=1:1:max(size(x1))
y1(i)=myfun(x1(i),1,1);
end

plot(x1,y1,'LineWidth',1.5)

Since you have 3 inputs for the original function, we need to keep two constant and plot against the third. In this case, I let the x1 values represent omega, and I gave x and t a default value of 1. You could switch this around easily by changing where the x1(i) is in the loop.
 

Attachments

  • besselj.jpg
    besselj.jpg
    26.1 KB · Views: 498