truncate at 10^-3

3 views (last 30 days)
diadalina
diadalina on 17 Mar 2023
Commented: Matt J on 17 Mar 2023
i have this code i want to truncate the solution at 10^-3 at each iteraion can anyone help me
t0=0;
y0=1;
tn=1;
h=0.1;
t=[t0:h:tn];
f=@(t,y)(1+t-y)
f = function_handle with value:
@(t,y)(1+t-y)
f1=@(t,y)1
f1 = function_handle with value:
@(t,y)1
f2=@(t,y)-1
f2 = function_handle with value:
@(t,y)-1
n=length(t);
y_t=zeros(1,n);
y_t(1)=y0;
for i=1:n-1
y_t(i+1)=y_t(i)+h*f(t(i),y_t(i))+(h^2/2)*(f1(t(i),y_t(i))+f2(t(i),y_t(i))*f(t(i),y_t(i)));
end

Answers (1)

Matt J
Matt J on 17 Mar 2023
Edited: Matt J on 17 Mar 2023
A few options:
x=round(pi,3)
x = 3.1420
y=floor(pi*1000)/1000
y = 3.1410
sprintf('%.3f',x)
ans = '3.142'
sprintf('%.3f',y)
ans = '3.141'
  4 Comments
diadalina
diadalina on 17 Mar 2023
Edited: Matt J on 17 Mar 2023
i'm trying fo truncate at 10^3 y-tt is the trancted vector y-t is the vector without truncation but they are different i can't find where the problem
n=length(t);
y_tt=zeros(1,n);
y_tt(1)=fix(y0*10^3)/10^3;
for i=1:n-1
%y_tt(i)=fix(y_tt(i)*10^3)/10^3;
y_tt(i+1)=y_tt(i)+h*f(t(i),y_tt(i))+(fix(h^2/2*10^3)/10^3)*(f1(t(i),y_tt(i))+f2(t(i),y_tt(i))*f(t(i),y_tt(i)));
y_tt(i)=fix(y_tt(i+1)*10^3)/10^3;
end
y_t=zeros(1,n);
y_t(1)=y0;
for i=1:n-1
y_t(i+1)=y_t(i)+h*f(t(i),y_t(i))+h^2/2*(f1(t(i),y_t(i))+f2(t(i),y_t(i))*f(t(i),y_t(i)))
end
M=[y_tt',y_t']
this what matlab gives to me they are differents :
M =
1.004 1
1.019 1.005
1.041 1.019
1.07 1.0412
1.107 1.0708
1.149 1.1071
1.197 1.1494
1.249 1.1972
1.307 1.25
1.368 1.3072
1.3685 1.3685
can you help me please , i shoud find the same 3 firsts dicimals in y_tt and y_t
Matt J
Matt J on 17 Mar 2023
I imagine you would want to do this:
y_t(1)=y0;
for i=1:n-1
y_t(i+1)=y_t(i)+h*f(t(i),y_t(i))+h^2/2*(f1(t(i),y_t(i))+f2(t(i),y_t(i))*f(t(i),y_t(i)))
end
y_tt=fix(y_t*1e3)/1e3;
M=[y_tt',y_t']

Sign in to comment.

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!