用二分法求解非线性方程(c,c++,matlab都可以)

用二分法求方程f(x)=x*x*x-sinx-12x+1的全部实根,ε≤10的-6次方。用c,c++,matlab编写的程序都可以。... 用二分法求方程f(x)=x*x*x-sinx-12x+1的全部实根,ε≤10的-6次方。
用c,c++,matlab编写的程序都可以。
展开
 我来答
唐海华86
2009-07-07 · 超过17用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:33.6万
展开全部
去我的空间里,有

#include<iostream>
#include<cmath>
using namespace std;

double fun(double x){
double y;
y=exp(-x)+exp(x);
return y;
}
int main(){
double a,b,u,v,e;
a=-1.0;
b=1.0;
int k=0;
cout<<"请输入精度 L:"<<endl;
cin>>e;
while(abs(u-b)>e||abs(a-v)>e){
++k;
cout<<"第"<<k<<"次"<<endl;
u=a+0.382*(b-a);cout<<"u的值:"<<u<<" "<<"fun(u)的值"<<fun(u)<<endl;
v=a+0.618*(b-a);cout<<"v的值:"<<v<<" "<<"fun(v)的值"<<fun(v)<<endl;
if(fun(u)>=fun(v))
a=u;
else
b=v;

}
}
fhq_ghost
2009-07-07 · TA获得超过1414个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:352万
展开全部
matlab 数据精度不够的 程序如下

clc
x=-6:0.000001:6;%(1)设置你的x精度即小数点后几位
t=[];
j=1;
for i=1:12000001
if abs(x(i)^3-sin(x(i))-12*x(i)+1)<=10^(-6)%(2)设置你的根比较实根的精度
t(j)=x(i);
j=j+1;
end
end
t

说明:(1)处已经用了最大的了10^(-6)
(2)如果精度是10^(-6)的话仅有一个答案t=0.0770但如果要求全部的解的话最好取到10^(-5)
有全部的解 t =

-3.4912 0.0770 3.4101

ε≤10^(-6)指的是什么精度?

不管怎样可以自己改一下

你可以把这个函数画出来看看
x=-6:0.01:6;
y=x.^3-sin(x)-12*x+1;
plot(x,y)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式