割线法
来源:互联网 发布:二次开发 软件著作权 编辑:程序博客网 时间:2024/04/26 23:57
上一篇文章中的牛顿迭代法的收敛速度快,但每迭代一次,除需计算f(x)的值外还要计算f'(x)的值。如果f(x)比较复杂,计算f'(x)的工作量可能很大。为避免使用导数值,我们可以采用割线法求方程的根。
实例代码:
- /*割线法*/
- #include <stdio.h>
- #include <math.h>
- float (*f)(float) = NULL;
- float f1(float x)
- {
- return x*x - exp(x);
- }
- float f2(float x)
- {
- return x*exp(x) - 1;
- }
- float f3(float x)
- {
- return log10(x) + x -2;
- }
- float Secant(float x0,float x1)
- {
- return (x1 - (f(x1)*(x1-x0))/(f(x1)-f(x0)));
- }
- void main()
- {
- int number,k=2;
- float x0,x1,x2;
- printf("请输入要求解的方程序号(1/2/3) : ");
- scanf("%d",&number);
- switch(number)
- {
- case 1: f = f1;break;
- case 2: f = f2;break;
- case 3: f = f3;break;
- default: printf("没有这样的方程!/n");break;
- }
- if (f)
- {
- printf("请输入x0 x1的值:");
- scanf("%f%f",&x0,&x1);
- printf("x[0] = %-10f,x[1] = %-10f ",x0,x1);
- while (1)
- {
- if (k>=21) break;
- x2 = Secant(x0,x1);
- x0 = x1;
- x1 = x2;
- printf("x[%d] = %-10f ",k,x2);
- k++;
- if (k%3==0) printf("/n");
- }
- }
- }
- 割线法
- 牛顿法和割线法
- 割线法求解非线性方程
- 割线法求方程根
- 双点割线法解非线性方程
- 利用割线法求解一元函数极小值
- 牛顿迭代法、双点割线法及改进的双点割线法的比较
- 四级分割线
- 分割线
- -------------- 分割线 ------------
- 这是分割线
- 分割线
- --------------------------------------------分割线
- ----------------------------------------------------------------------------------分割线
- ------------------------------------------------>分割线<--------------------------------------------
- 分割线
- 分割线
- 分割线
- CSS 滤镜大全 - 北漂石头的博客
- Eclipse快捷键操作集合
- gdb 调试
- 使用每步动态解析设置vpn服务
- 图片上传到数据库,再写入文件后下载
- 割线法
- 微软技术中心实习随笔3
- #pragma的用法
- XSD Demo
- 【转】如何实现优化查询.
- cuijpus的专栏
- 最基本的几种 CSS 文字滤镜效果 - 蓝色理想
- 使用Scratchbox来开发嵌入式Linux
- 收集了一些sns的博客