Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Vectorize --- C -> Matlab / Heat equation

Status
Not open for further replies.

koubaros

Mechanical
Mar 21, 2005
3
I want to 'translate' some programs I had in C for matlab but by sigtly optimizing the code for matlab use. I am new in matlab. So, I had the following code:

(1) for K = 1:dT:M

(2) for I = 1:dX:N+1
dU(I) = (U(I+1)-2*U(I)+U(I-1))/dX^2;
end

(3) for I = 1:dX:N+1
U(I) = U(I)+dU(I)*dT
end

end

This actually is a simple implementation of an explicit scheme for the numerical solution of the heat equation. Now I managed to do this and eliminate the (2) and (3) loop:

(1) for K = 1:dT:M

(2) dU(1:N+1) = (U([2:end 1])-2*U+U([end 1:end-1]))/dX^2;
U(I+1)-->U([2:end 1])
U(I-1)-->U([end 1:end-1])

(3) U(1:N+1) = U(1:N+1)+dU(1:N+1)*dT

end

I could really use your help in order to eliminate the (1) time loop, in a way that the values of U(1:N+1) are stored for each time step dT or, in case M is very large this would take a lot of memory and time, get 'snapshots' every a couple of timesteps which I could define explicitly.




 
Status
Not open for further replies.

Part and Inventory Search

Sponsor