如何用matlab求方程的隔根区间(详细的编程步骤)
求方程x^3-3.2*x^2+1.9*x+0.8=0的隔根区间(不是方程的解),要求用逐步搜索法求解。请高手帮忙,小妹在此感谢!wacs5,首先谢谢你的回答,不过我要的不...
求方程x^3-3.2*x^2+1.9*x+0.8=0的隔根区间(不是方程的解),要求用逐步搜索法求解。
请高手帮忙,小妹在此感谢!
wacs5,首先谢谢你的回答,不过我要的不是方程的根,而是隔根区间,例如你用matlab求出了3个根,我想要的是这3个根所在的区间范围,书上的答案是“用matlab可求出隔根区间为[-0.7,-0.2];[1.2,1.7];[1.7,2.2]”。但不可以先求出确切的根来!而是要在matlab上显示出这些隔根区间。 展开
请高手帮忙,小妹在此感谢!
wacs5,首先谢谢你的回答,不过我要的不是方程的根,而是隔根区间,例如你用matlab求出了3个根,我想要的是这3个根所在的区间范围,书上的答案是“用matlab可求出隔根区间为[-0.7,-0.2];[1.2,1.7];[1.7,2.2]”。但不可以先求出确切的根来!而是要在matlab上显示出这些隔根区间。 展开
1个回答
展开全部
书上是这样写的。
f(x)=x^n+a1*x^(n-1)+a2*x^(n-2)+……+an
根的绝对值小于A+1,大于1/(1+B)
其中
A=max(|a1|,|a2|,……,|an|)
B=max(1,|a1|,|a2|,……,|a(n-1)|)/|an|
你这里应当是
A=max(3.2,1.9,0.8)=3.2
B=max(1,3.2,1.9)/0.8=3.2/0.8=4
就是说,你的根的绝对值小于A+1=3.2+1=3.2
大于1/(1+B)=1/5=0.2
即0.2<|x|<3.2
以下是MATLAB求解:
>> solve('x^3-3.2*x^2+1.9*x+0.8=0','x')
得结果:
ans =
[ -.27876804601722915851223107499500]
[ 1.3448115850935527128543183917902]
[ 2.1339564609236764456579126832048]
三个根与上述结论0.2<|x|<3.2都相符
隔根区间,可能我无能为力了.
哈哈.
f(x)=x^n+a1*x^(n-1)+a2*x^(n-2)+……+an
根的绝对值小于A+1,大于1/(1+B)
其中
A=max(|a1|,|a2|,……,|an|)
B=max(1,|a1|,|a2|,……,|a(n-1)|)/|an|
你这里应当是
A=max(3.2,1.9,0.8)=3.2
B=max(1,3.2,1.9)/0.8=3.2/0.8=4
就是说,你的根的绝对值小于A+1=3.2+1=3.2
大于1/(1+B)=1/5=0.2
即0.2<|x|<3.2
以下是MATLAB求解:
>> solve('x^3-3.2*x^2+1.9*x+0.8=0','x')
得结果:
ans =
[ -.27876804601722915851223107499500]
[ 1.3448115850935527128543183917902]
[ 2.1339564609236764456579126832048]
三个根与上述结论0.2<|x|<3.2都相符
隔根区间,可能我无能为力了.
哈哈.
参考资料: 王世儒,王金金,冯有前等.计算方法(第二版).西安.西安电子科技大学.2004
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询