x(i+1)=x(i)+x(i-1) 用matlab编程

2025-03-05 09:50:01
推荐回答(4个)
回答1:

要求matlab2008b以前版本(有maple内核)


clear;clc;
f=maple('rsolve({x(n+1)=x(n)+x(n-1),x(1)=1,x(2)=t},x)');
f=subs(f,'t',solve(subs(f,'n',10)-89))%你要求的通项公式
subs(f,'n',1:10)

 

回答2:

代码:
clc,clear
syms a;
x(2)=a;
x(1)=1;
for i=1:8
x(i+2)=x(i+1)+x(i);
end
b=solve(x(10)-89);
for i=1:10
x(i)=subs(x(i),a,b);
end
x
结果:
x =

[ 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
这个行向量里面的数分别就是要求的x1,x2......,x10了。

回答3:

syms x;
a=sym(zeros(10,1));
a(1)=1;
a(2)=x;
for i=3:10
a(i)=a(i-1)+a(i-2);
end
x=double(solve(char(a(10)-89)));
c=subs(a);
%c就是x1到x10的值

回答4:

n0=[1,0];
n1=[0,1];
x1=1;
x10 = 10;
for i= 3:10
n=n0+n1;
n0=n1;
n1=n0;
end
x2=(x10-n(1))/n(2);

n0=[1,0];
n1=[0,1];
for i= 3:10
n=n0+n1;
n(1)*x1+n(2)*x2
end