x=tanx 用牛顿迭代法怎么编程
答案:2 悬赏:0 手机版
解决时间 2021-03-21 01:48
- 提问者网友:喧嚣尘世
- 2021-03-20 22:15
用C语言编程
最佳答案
- 五星知识达人网友:封刀令
- 2021-03-20 23:45
#include "stdio.h"
#include "math.h"
main()
{float x,f,f1; //f代表 f(x)=2x^3-4x^2+5x-18,f1代表 f‘(x)=2*x^2-4*2x^+5 =6*x*x-8*x+5;
x=8; // x的初值可为任意值
do
{
f=2*x*x*x-4*x*x+5*x-18; //f(x)=2x3-4x2+5x-18
f1=6*x*x-8*x+5; //f(x)的导数: f‘(x)=2*3* x^2 - 4*2 *x+5 =6*x*x-8*x+5;
x=x-f/f1;
}while(fabs(f)>0.00001);
printf("x=%f,f=%f\n",x,f);
}
#include "math.h"
main()
{float x,f,f1; //f代表 f(x)=2x^3-4x^2+5x-18,f1代表 f‘(x)=2*x^2-4*2x^+5 =6*x*x-8*x+5;
x=8; // x的初值可为任意值
do
{
f=2*x*x*x-4*x*x+5*x-18; //f(x)=2x3-4x2+5x-18
f1=6*x*x-8*x+5; //f(x)的导数: f‘(x)=2*3* x^2 - 4*2 *x+5 =6*x*x-8*x+5;
x=x-f/f1;
}while(fabs(f)>0.00001);
printf("x=%f,f=%f\n",x,f);
}
全部回答
- 1楼网友:玩世
- 2021-03-21 00:07
#include <stdio.h>
#include <math.h>
void main(void)
{
float x = 1.0; // 这个初始值要选择好,否则可能会不收敛
float x2;
int loop_count = 5;
while loop_count > 0 do
{
x2 = tan(x);
if (fabs(x-x2) < 0.001)
break;
}
printf('x=%f', x);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯