数学方程式求解
a*(1+X)^(b+c)+a*(1+x)^(b+c-1)+a*(1+x)^(b+c-2)+......+a*(1+x)^(b+2)+a*(1+x)^(b+1)=SUM
其中a,b,c,SUM都是已知数,求x的值
主:^(b+c)之类是表示指数,且指数大于0
求解
比如:
100*(1+X)^12+100*(1+X)^11+100*(1+X)^10+100*(1+X)^9+100*(1+X)^8=1000
求X的值?
(a=100,b=7,c=5,sum=1000)
数学方法或者程序方法都行
哈哈 学的都忘了
[解决办法]
你先把X=多少,写出来吧,剩下的就是公式函数算吗
[解决办法]
高阶多项式的根好像不太好求,都忘光了
不过如果可以的话你可以试试Matlab。
[解决办法]
先把a*(1+X)^(b+c)+a*(1+x)^(b+c-1)+a*(1+x)^(b+c-2)+......+a*(1+x)^(b+2)+a*(1+x)^(b+1)做成一个函数:function sum(a,b,c,x:integer):inetger;然后循环x:for x:=0 to 100 do if sum(100,7,5,x)=1000 then begin 输出x break; end;
[解决办法]
a*(1+X)^(b+c)+a*(1+x)^(b+c-1)+a*(1+x)^(b+c-2)+......+a*(1+x)^(b+2)+a*(1+x)^(b+1)=SUM
先简化一下,变成标准等差数列:
(1+x)^(b+1)+(1+x)^(b+2)+....+(1+x)^(b+c)=SUM/a
首项:(1+x)^(b+1)
公比:(1+x)
项数:c
所以有:
(1+x)^(b+1)*x^(c-1)=SUM/a
然后由程序代入求值吧
[解决办法]
等比数列求和公式应该是
S=a1*(1-q^(n+1))/(1-q)吧?
a1:首项
q:公比
n:项数
S:和
在本题中,应该就是
[(1+x)^(b+1)]*[1-(1+x)^(c+1)]/(-x)=sum/a
化简为
[(1+x)^(b+1)]*[(1+x)^(c+1)-1]=x*sum/a
即
x=a * [(1+x)^(b+1)]*[(1+x)^(c+1)-1] / sum
然后可以用迭代法求出x。具体步骤是,
Step1:随便取一个x[0] (比方说令x[0]=1,或者用其他方法给出一个比较接近答案的x[0])
Step2:x[i+1]= a * [(1+xi)^(b+1)]*[(1+xi)^(c+1)-1] / sum
Step3:如果x[i+1]与x[i]足够接近,则认为x[i+1]就是所求的x,否则反复执行Step2。
[解决办法]
提出共项
a*(1+X)^(b+c)+a*(1+x)^(b+c-1)+a*(1+x)^(b+c-2)+......+a*(1+x)^(b+2)+a*(1+x)^(b+1)=SUM
<=>(1+X)^(b+c)+(1+x)^(b+c-1)+(1+x)^(b+c-2)+......+(1+x)^(b+2)+(1+x)^(b+1)=SUM/a
<==>(1+x)^b*(1+x)^c+(1+x)^b*(1+x)^c*(1+x)^-1+(1+x)^b*(1+x)^c*(1+x)^-2+.....+(1+x)^b*(1+x)^2+(1+x)^b*(1+x)^1=SUM/a
<==>(1+x)^b*((1+x)^c+(1+x)^c*(1+x)^-1+(1+x)^c*(1+x)^-2+......+(1+x)^2+(1+x))=SUM/a
<==>(1+x)^c+(1+x)^c*(1+x)^-1+(1+x)^c*(1+x)^-2+......+(1+x)^2+(1+x)=SUM/a/(1+x)^b
<==>(1+x)^c*((1+x)^-1+(1+x)^-2+......+(1+x)^-N+1+(1+x)^N)=SUM/a/(1+x)^b (当(1+x)^N=(1+x))
<==>(1+x)^-1+(1+x)^-2+......+(1+x)^-N+1+(1+x)^N=SUM/a/(1+x)^b/(1+x)^c (当(1+x)^N=(1+x))
<==>a*(1+x)^b*(1+x)^c*((1+x)^-1+(1+x)^-2+......+(1+x)^-N+1+(1+x)^N)=SUM (当(1+x)^N=(1+x))
[解决办法]