MATLAB Plotting a Function in MATLAB Using QUAD

AI Thread Summary
To plot the function in MATLAB, the syntax needs correction. The function definition should not include the '@' symbol. It should be structured as follows: function y = myfun(omeg, x, t) y = besselj(1, omeg.*x) .* cos(omeg.*t) .* omeg; end To create a plot, define a vector for omega, such as x1 = -20:0.1:20. Then, use a loop to calculate the function values, keeping x and t constant (e.g., both set to 1). The plotting command is plot(x1, y1, 'LineWidth', 1.5). This approach allows for flexibility in plotting by changing the input values as needed.
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: 472

Similar threads

Replies
1
Views
2K
Replies
2
Views
3K
Replies
3
Views
2K
Replies
1
Views
3K
Replies
2
Views
2K
Replies
1
Views
2K
Back
Top