how to write a program to compute those

8 次查看(过去 30 天)
1.Write a Matlab program to compute the following:
1.1) B=1+2+3+5+8+13+-------------(stop the program when B>100)
1.2) B=1/1! + 1/2! + 1/3! + 1/5! + 1/8! +----------(stop the program when B>1.67)
  6 个评论
Image Analyst
Image Analyst 2017-12-29
OK, I see you changed 1.2 to refer to B now instead of C so now it makes sense to say you want to "stop the program when B>1.67". So how far have you come using the hint I gave you below in the answers section? It should be trivial after that. That was 2 hours ago - you should be done by now.

请先登录,再进行评论。

回答(2 个)

Image Analyst
Image Analyst 2017-12-29
编辑:Image Analyst 2018-1-2
Regarding:
1.Write a Matlab program to compute the following:
1.1) B=1+2+3+5+8+13+-------------(stop the program when B>100)
1.2) B=1/1! + 1/2! + 1/3! + 1/5! + 1/8! +----------(stop the program when B>1.67)
Hint:
First make the series in an array vec = [1,2,3,4,.....]
vec = [1, 2]
for k = 3 : 10
vec(k) = vec(......
end
Then use cumsum() or a for loop to sum it up.
For 1.2 use factorial and the dot divide operator ./
  2 个评论
Roger Stafford
Roger Stafford 2017-12-29
@Image Analyst: That's the wrong series! It should be the Fibonacci series except that it starts with 1 and 2. Try this for the second question:
F1 = 1; F2 = 2;
B = 1+1/2;
while true
T = F2+F1;
F1 = F2;
F2 = T;
B = B+1/factorial(F2);
if B > 1.67, break, end
end
Image Analyst
Image Analyst 2017-12-29
编辑:Image Analyst 2017-12-29
I recognized that but when I was trying to generate the vector [1,2,3,5,8,13,...]
vec = [1, 2]
for k = 3 : 10
vec(k) = vec(k-1) + vec(k-2);
end
vec
We see
vec =
1 2 3 5 8 13 21 34 55 89
Which is exactly the vector I was going for. Now the student merely needs to sum up that vector in a for loop, a while loop, or by using cumsum() to get B.
Don't you agree that this is a reasonable first step? Maybe not the way someone else would approach it but it is one way.
And for the second step (generating factorial terms), don't you think this is a reasonable first step:
vec2 = 1 ./ factorial(vec)
vec2 =
Columns 1 through 8
1 0.5 0.16667 0.0083333 .....
Which is again summed using a for loop, a while loop, or cumsum() depending on how you want to do it. Anyway those were the approached I thought of and I think they will give the correct answer (with a little more code).

请先登录,再进行评论。


Nur
Nur 2024-4-18
  2 个评论
Nur
Nur 2024-4-18
this is the [Answers: 1.0323, 1.0323, 0.1180]
Torsten
Torsten 2024-4-18
We invite you to visit MATLAB Onramp to learn the basics of the software in an online course free of costs. It will take approximately 2 hours of your time:

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by