The Percent Error = 100*abs(exact solution-Approximate solution)/Exact Solution. I am writing a Euler method approximation and I need to know how best to present this. I keep getting the error message that "matrix dimensions must agree". Here is my code.
%Script that demonstrates Euler integration for a first order problem using %MATLAB. %The problem to be solved is: %y'(t)+2*y(t)=2-exp(-4*t) %This problem has a known exact solution %y(t)=1+0.58*exp(-4*t)-0.5*exp(-2*t) function ystar = Eulermethod20(n) a=0; b=5; h=(b-a)/n; t=0:h:5;%Initialize time variable
clear ystar;%wipe out old variable ystar(1)=1.0;%Initial condition (same for approximation)
for i=1:length(t)-1, %Set up "for" loop k1=2-exp(-4*t(i))-2*ystar(i); %Calculate the derivative
ystar(i+1)=ystar(i)+h*k1;%Estimate new value of y end %Exact solution y=1+0.5*exp(-4*t)-0.5*exp(-2*t);
%Plot approximate and exact solutions plot(t,ystar,'b--',t,y,'r-'); legend('Approximate','Exact'); title('Euler Approximation'); xlabel('Time'); ylabel('y*(t), y(t)');
percent_error= 100*(1)+(0.5*exp(-4*t)-(0.5*exp(-2*t))-(2-exp(-4*t(i)))-(2*ystar(i))/((1)+(0.5*exp(-4*t))-(0.5*exp(-2*t)))); legend('Percent Error')
The program runs, but the percent error doesn't calculate correctly. I need to calculate and show the error for this project and I was hoping someone can help. Thanks!
No products are associated with this question.
Since you have the y and ystar, you can do
Notice "./" is the element-wise division.
You are missing the 'dot' in the following expression:
Now this should work