في الماتلاب هنا يظهرلي خطا كيفي اصححه حيث اني اريد ان احصل عل exact solution واقارنه بطريقه euler بالرسم
clear all
f=@(x) (-2*x.^3+12*x.^2-20*x+8.5);
exact_sol= @(x)(-0.5*x.^4+4*x.^3-10*x.^2+8.5*x);
a=0; b=4; h=0.5;
y0=1;
n=(b-a)/h;
f0=f(a);
x=[]; f=[];y=[];
y(1)=y0+f0*h;
x=0:h:4;
display('x y y(i+1)')
display('================================================')
fprintf('%5f %16f %10f\n',[a,;y0;y(1)])
for i=1:n
x(i)=a+i*h;
f(i)=-2*x(i)^3+12*x(i)^2-20*x(i)+8.5;
exact_sol(i)= -0.5*x(i)^4+4*x(i)^3-10*x(i)^2+8.5*x(i)
y(i+1)=y(i)+f(i)*h;
fprintf('%5f %16f %10f\n',[x(i);y(i);y(i+1)])
end
plot(x,y) %plot Euler
hold on
plot(x,exact_sol)% plots the exact solution to this differential equation
legend('Euler','Exact'); % adds a legend
grid on
السؤال
Ahmed Ebrahim11
في الماتلاب هنا يظهرلي خطا كيفي اصححه حيث اني اريد ان احصل عل exact solution واقارنه بطريقه euler بالرسم
clear all f=@(x) (-2*x.^3+12*x.^2-20*x+8.5); exact_sol= @(x)(-0.5*x.^4+4*x.^3-10*x.^2+8.5*x); a=0; b=4; h=0.5; y0=1; n=(b-a)/h; f0=f(a); x=[]; f=[];y=[]; y(1)=y0+f0*h; x=0:h:4; display('x y y(i+1)') display('================================================') fprintf('%5f %16f %10f\n',[a,;y0;y(1)]) for i=1:n x(i)=a+i*h; f(i)=-2*x(i)^3+12*x(i)^2-20*x(i)+8.5; exact_sol(i)= -0.5*x(i)^4+4*x(i)^3-10*x(i)^2+8.5*x(i) y(i+1)=y(i)+f(i)*h; fprintf('%5f %16f %10f\n',[x(i);y(i);y(i+1)]) end plot(x,y) %plot Euler hold on plot(x,exact_sol)% plots the exact solution to this differential equation legend('Euler','Exact'); % adds a legend grid on
EULER.m
0 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.