Description |
The function nonlinearBVP_FDM .m is an implementation of the
nonlinear finite difference method for the general nonlinear
boundary-value problem ---------------------------------------------
y''=f(x,y,y'), for a<x<b where y(a)=alpha and y(b)=beta.
----------------------------------------------------------------------------
The interval [a,b] is divided into (N+1) equal subintervals
with endpoints at x(i)=a+i*h for i=0,1,2,...,N+1.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Remarks:
The function f should be defined as an m-file.
There is NO need for partial derivatives of f
See given example
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Example
Solve the nonlinear boundary value problem
y''=(1/8)*(32+2x^3-yy'), for 1<x<3, where y(1)=17 and y(3)=43/3
Step 1...
Create the function f as a separate m-file and save it in the
current working directory.
function f = f(x,y,yp)
f = (1/8)*(32+2*x^3-y*yp); %Note that yp=y'
Step 2...
In the command window type
>> Y = nonlinearBVP_FDM(1,3,17,43/3);
Note that Y(:,1) represents x and Y(:,2) is vector y(x)
The solution is then plotted in a new figure
If the exact solution is given, plot it for comparison
>> yexact = (Y(:,1)).^2+16./Y(:,1); plot(Y(:,1),yexact,'c') |