Integrating Equations in MATLAB: Tips and Tricks

  • Thread starter Thread starter dorikin
  • Start date Start date
  • Tags Tags
    Matlab
Click For Summary
The discussion focuses on integrating an equation in MATLAB to create a graph, specifically addressing challenges with the integration part of the equation from a book. Users suggest using the quad function instead of ode45 for numerical integration, emphasizing the importance of defining the integrand function properly. A step-by-step approach is provided, detailing how to calculate the integral for fixed x1 and x2 values and then using a loop to repeat the process over a grid of values. Additionally, there is a mention of symbolic integration using the int() function, although it is noted that substituting numbers afterward may not work as expected. Overall, the conversation aims to clarify integration techniques in MATLAB for graphing purposes.
dorikin
Messages
7
Reaction score
0
Hello everyone!

I'm trying to write out an equation in MATLAB from a book so that I can make a graph. I am stuck on how to write the intergration part of the equation.

I have uploaded a picture of the page here: http://www.flickr.com/photos/61865210@N07/5736930748/

I am trying to write equation 4.19

The code I have written so far is below. Do I have to use ode45 or quadl? I've looked in the help file but I don't understand >.<

If you have any ideas please post them, I've been trying to do this for the last day! >.<

Thank you!

ken



Homework Statement


Homework Equations


It will probably be more clear in the link


The Attempt at a Solution



clear all
clc

[x,y] = meshgrid(-1:.5:1);

L=0.5;

constant=-1/(4*pi);

ln1=log(x.^2+(y-l)^2); %problem

soln= quadl(ln1,-L,L); %problem

potential=constant*soln;

mesh(x,y,potential)
 
Physics news on Phys.org
Hello!

I think I have a solution.

I will post it up once I have checked it1

Thanks

ken
 
Minor point, but there is no such word as "intergrate."

The one you want is integrate.
 
Thanks for letting me know, I thought it looked a bit weird *red cheeks*

Here is the solution:

"I would start by simplifying the problem a bit.

Step 1 - for a fixed x1,x2, how could I calculate the integral?

For this, you can actually use the quad function (you don't need ode45). Let's assume x1 = 7 and x2 = 3. I could create a function that would return the value of the integrand for any particular L

integrand = @(L) log(7.^2+(3-L).^2);
integrand(14)

I can then use this function to do the integral numerically

quad(integrand,-5,5)

So, we've solve step 1! :)

Step 2 - Repeat process for a bunch of x1,x2 combos

Well, this is fairly straightforward now that we solved step 1. We just use a loop.

lambda = 1;
x1 = 1:0.1:2;
x2 = 1:0.1:2;
[X1,X2] = meshgrid(x1,x2);
phi = zeros(size(X1));
for i = 1:numel(X1)
fixedx1x2 = @(L) log(X1(i).^2+(X2(i)-L +eps).^2);
phi(i) = (lambda / 4*pi) * quad(fixedx1x2,-5,5);
end
surf(X1,X2,phi)

Note that here we are using meshgrid to calculate a range of x1,x2 values over a grid, and then for each x1 and x2 we are repeating the quad call

Hope this helps!"

Thanks to anyone who tried to help me out!

ken
 
Mark44 said:
Minor point, but there is no such word as "intergrate."

The one you want is integrate.
There is if you have a Boston accent! My Caculus I teacher talked about "delters" and "alphers".
 
If you want to integrate symbolically, you can use the int() function on a sym object.
 
After you have done symbolic integration, you can't sub in numbers can you?

I've tired it and it doesn't seem to work but I want to double check.

thanks ken
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 5 ·
Replies
5
Views
5K
Replies
2
Views
1K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K