Matlab code problem with differential equations

  • #1
18
0

Homework Statement


For a following differential equation
d^2y/dx^2-4y=(e^x)/x
 Find the solution using numerical methods

Homework Equations


d^2y/dx^2-4y=(e^x)/x

The Attempt at a Solution


Matlab:
%num
dx=0.01;
x=1:dx:3;
l=zeros(1,length(x));
m=zeros(1,length(x));
l(1)=1;
m(1)=0.25;
for ii=2:length(x)
    l(ii) = l(ii-1)+m(ii-1)*dx;
    m(ii) = m(ii-1) -(1/4) * (l(ii-1)) * dx +(exp(2*x*(ii-1)/(x(ii-1))))*dx;<----- this line keeps throwing an error
end
plot(x,l);
any assistance would be greatly appreciated
 
Last edited by a moderator:

Answers and Replies

  • #2
12,095
5,776
What error are you getting?

If its during execution then perhaps a print statement inside your for loop printing out the results of L(ii) and M(ii) and some of your expressions will give you some insight into what going on.

You should be able to use the computer to help you find the error in your code by tracing its operations.
 
  • #3
Delta2
Homework Helper
Insights Author
Gold Member
3,020
1,059
The way the code is it adds at every step ##e^{\frac{2x}{x}}dx## while I believe you want to add ##\frac{e^{2x}}{x}dx##. Check carefully the parentheses in the (exp(2*x)...) term at that line.

Also what it seems to be a typo it says exp(2*x*(ii-1)... while I believe it should be exp(2*x(ii-1))...

Also not sure since I am rusty on numerical methods and matlab code but this looks like the Euler Method for solving ODEs correct?
 
Last edited:
  • #4
12,095
5,776
Good catch that x*(ii-1) is clearly wrong as the program needs x(ii-1)
 

Related Threads on Matlab code problem with differential equations

Replies
1
Views
2K
  • Last Post
Replies
14
Views
4K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
0
Views
4K
  • Last Post
Replies
0
Views
5K
Replies
6
Views
627
Replies
1
Views
1K
  • Last Post
Replies
5
Views
4K
  • Last Post
Replies
1
Views
7K
Top