Question: How to convert Matlab codes to Maple code

Any one can help me to convert matlab codes to maple.Matlab_code.mw
 

%Finite element method code for solving bvp nonlinear ODEs%

% u''+uu'-u=exp(2x), u(0)= 1, u(1)=e     %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function FEM_Code()

clear all; close all; clc

n=5;                     % NO of element

nn=n+1;                  % No of nodes

lgth=1;                  % Domain length

he=lgth/n;               % lenth of each elemnet

x=[0:he:lgth];           % Data point for independant variable

AC=0.00005;              % Accuracy

F=zeros(nn,1);           % Initialization

F(1)=exp(0); F(nn)=exp(1);  % Boundary conditions

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Direct Iterative process to handle nonlinear problem

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

c=1.0;

count=0;                   % Initializations for count for iterations

tic                        % Time start

while (c>0)

        [F1]=assembly(F,n,he);

          c=0.0;

          for i=1:nn

            if (abs(F(i)-F1(i))>AC)

                 c=c+1;

                 break;

            end

          end

         F=F1;

         count=count+1;

end

  disp('Hence solution=:');

  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  % Output for prinmary and secondary variables %%%

  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  diff=abs(F-exp(x)');

  fprintf('No of element=%d\n',n)

  disp('      x       FEM          Exact       Error')

  disp([x',F,exp(x)',diff])

  fprintf('No of iterations=%d\n',count)

  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %%% Ploting of primary variable %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  

  plot(x,F,'--rs','Linewidth',2)

  xlabel('x')

  ylabel('u(x)')

  title('solution plot to given BVP')

  toc                                % given totlal time

  

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Derivative of element matrix and Assembly%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

function [F1]=assembly(F,n,he)

nn=n+1;

k = zeros(nn,nn);               % Initialization of main Matrix

R = zeros(nn,1);                % Initialization of RHS Matrix

syms x                          % x as symbolic variable

s=[1-x/he,x/he];                % linear shape function

ds=diff(s,x);                   % Differentiations of shape function

lmm =[];

for i=1:n

    lmm=[lmm;[i,i+1]];          % connectvity Matrix

end

for i=1:n

    lm=lmm(i,:);

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %%% Generation of Element Matrix k11 and RHS Matrix f1%%%%%%%%%%

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    k11=-int(ds'*ds,x,0,he)+(int(s'*ds*s(1),x,0,he)*F(lm(1))...

        +int(s'*ds*s(2),x,0,he)*F(lm(2)))-int(s'*s,x,0,he);

    f1 = int(exp(2*(x+(i-1)*he))*s',x,0,he);

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %%% Assembly accroding to connectivity Matrix%%%%%%%%%%%%%%%%%%%%

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    

    k(lm,lm) = k(lm,lm) + k11;

    R(lm) = R(lm) + f1;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Imposing Boundary Conditions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

k(1,:) = 0.0; k(nn,:) = 0.0;

k(1,1) = 1.0; k(nn,nn) = 1.0;

R(1,1) = F(1); R(nn,1) = F(nn);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Solution of equations (F1) %%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

d = k\R;           % better than using inverse k*R

F1 = d;

end

 

    

 

                                

 

 

 

  

        

      

 

 

 

 

 

 


 

Download Matlab_code.mw

i am attaching the codes and file. i will be thankful to you .

Please Wait...