MATLAB当中怎么用牛顿法解方程,比如:x*exp(x)-1=0这个方程,代码怎么编写那位高手帮我一下,kimi祁杰 大哥,我是说用MATLAB语言编写,这个好像是C语言吧
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 11:51:20
MATLAB当中怎么用牛顿法解方程,比如:x*exp(x)-1=0这个方程,代码怎么编写那位高手帮我一下,kimi祁杰 大哥,我是说用MATLAB语言编写,这个好像是C语言吧
MATLAB当中怎么用牛顿法解方程,比如:x*exp(x)-1=0这个方程,代码怎么编写那位高手帮我一下,
kimi祁杰 大哥,我是说用MATLAB语言编写,这个好像是C语言吧
MATLAB当中怎么用牛顿法解方程,比如:x*exp(x)-1=0这个方程,代码怎么编写那位高手帮我一下,kimi祁杰 大哥,我是说用MATLAB语言编写,这个好像是C语言吧
#include
#include
#define f(x) (x*exp(x)-1=0) /*宏定义此方程*/
#define f_(x) (exp(x)+x*exp'(x)=0) /*f(x)求导*/
void main()
{
float eps,x; /*定义两个变量:误差为eps及初值x*/
printf("请输入误差限:\n");
scanf("%f",&eps);
printf("请输入初值:\n");
scanf("%f",&x);
while(fabs(f(x))>eps) /*计算导数与方程的差值并与误差比较*/
x=x-f(x)/f_(x);
printf("该方程的一个根是%f!\n",x);
fun=@(x)x*exp(x)-1;
dfun=@(x)x*exp(x)+exp(x); %fun函数的导数
x0=1;
while 1
x1=x0-fun(x0)/dfun(x0)
if abs(x1-x0)<1e-8 || abs(fun(x1))<1e-10
break;
end
x0=x1;
end
fun(x1)