solving a function with indecis

1 次查看(过去 30 天)
I want to compute a function f, for example, f=sin(t*x) with this recursive algorithm.
h=.01;y0=1;t0=0;
for i=0:10
t(i+1)=ti+h;
c1=func(ti, yi);
c2=func(ti+(h/2),yi+(h/2)*c1);
y(i+1)=yi+h/6*(c1+2*c2);
end
And I defined function func in the separate file. This loop doesn't run from the first line. I don't know what is the problem. First I want to know this way of writing indices is correct? second, how can I get the value of y at the end? Could you please help me with this? Thank you
  2 个评论
Ameer Hamza
Ameer Hamza 2018-4-23

what are yi, c1 and c2. Are c1 and and c2 even defined. Also, do you mean y(i) instead of yi.

RSHU FA
RSHU FA 2018-4-23
编辑:RSHU FA 2018-4-23
Thank you for your comment. You mean I have to write y_(i+1)as yi+1? without parenthesis? These indices don't produce during the for loop?

请先登录,再进行评论。

采纳的回答

Torsten
Torsten 2018-4-23
All variables must be defined before you use them.
Look at the first line of your loop: here, yi, c1 and c2 are not yet defined to calculate y(2).
Best wishes
Torsten.
  12 个评论
Torsten
Torsten 2018-4-23

with max(Y-y) I don't get the right result

Why ? What's the problem with

max(abs(Y(:,1)-y(:))) 

?

RSHU FA
RSHU FA 2018-4-23
编辑:RSHU FA 2018-4-23

with max(Y-y) I get two many numbers like:

    Columns 1 through 19
   56.1546   56.0333   55.8888   55.7191   55.5210   55.2904   ..   
Columns 20 through 38
   43.7418   42.1609   40.5228   38.7424   36.9352   35.2361   ..   

with max(abs(Y(:,1)-y(:))) I get one number, it's OK. But w.r.t the figure I think the bigger difference happens in the maximum of this function but max(Y)-max(y) is not equal to max(Y-y). how can I get the t component for max(y) and max(Y)? Maybe because y is w.r.t t and Y is w.r.t X.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Least Squares 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by