山野莽夫

  • 归档
    • 随笔
    • 建站资源
    • 分享
    • 代码
  • 地球物理学
    • 专业课
    • 概念解释
  • 计算机
  • 互联网
  • 教程
  • 规划
  • 实验室
    • 珍藏的软件
    • 贴吧云签到
    • A1账号自助申请
山野莽夫
小学生的挣扎的点点滴滴
  1. 首页
  2. 地球物理学
  3. 正文

计算方法实习实验报告-割线法

2016年5月26日 3817点热度 0人点赞 0条评论

计算方法实习实验报告

  1. 实验一 割线法
    1. 实验要求(含有算法说明和程序说明)

      牛顿迭代法收敛速度很快,不过每迭代一次,需要计算f(xk)和

      f'(xk)如果f(xk)比较复杂则计算f'(xk)的工作量就会比较大,为了解决这个问题于是使用差商来代替函数的导数。

      当经过k次迭代后,欲求xk+1。用f(x)在xk,xk+1两点的差商


      来代替迭代公式(k=0,1,2,…..)

      中的导数值
      ,于是得到新的迭代公式

      ( k=1,2,…..)
      这就是割线法公式。它的几何意义是一个点斜式方程。

      这个程序是根据割线法公式和实习指导书上牛顿迭代法程序改编而成,把牛顿迭代法相应求导数的部分用差商进行了替换。本程序把方程单独编成一个函数,目的是提高程序的通用性,计算其他方程的时候可以快速的应用。

      d=fabs(x2)<1? x2-x1:(x2-x1)/x2;此段程序是为了防止x2过小时导致误差变大的情况。其他都已经在程序中标明。

    2. 源代码

#include<stdio.h>

#include<math.h>

#define N 100

#define eps 1e-6

#define eta 1e-8

float f(float x);

float Newton(float(*f)(float),float x0,float x1)

{

float x2,d,g;

int k =0;

do

{

x2=x1-(*f)(x1)*(x1-x0)/((*f)(x1)-(*f)(x0));//割线法迭代公式

if(k++>N || fabs(((*f)(x1)-(*f)(x0))/(x1-x0))<eps)//判断迭代是否收敛

{

printf("\n Newton 迭代发散");

break;

}

d=fabs(x2)<1? x2-x1:(x2-x1)/x2;//误差计算

x0=x1;x1=x2;

printf("x(%d)=%f\t",k,x1);//输出迭代计算结果

}

while(fabs(d)>eps&&fabs((*f)(x2))>eta);//根据误差判断程序是否终止

return x2;

}

float f(float x)

{

return x*x-exp(x);//方程

}

void main()

{

float x0,x1,y0;

printf("请输入迭代初值x0,x1\n");

scanf("%f,%f",&x0,&x1);

printf("x(0)=%f\n",x0);

y0=Newton(f,x0,x1);

printf("方程的根为%f\n",y0);//输出结果

}

  1. 实验结果

    (1)

    (2)

    (3)

标签: 割线法 实习报告 计算方法
最后更新:2018年4月6日

小菜菜

菜鸟

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

联系方式

QQ群 | TG群 | 邮箱

最新 热点 随机
最新 热点 随机
Azure Student 微软云 学生订阅 免费12个月用量避坑注意点集合 MP3音频文件格式详细解析 python按固定采样点个数分割wav格式音频 愉快使用谷歌免费人工智能平台colab,训练你的神经网络模型,为你的学术生活添砖加瓦 华为云版轻量应用服务器-云耀云服务器简单体验评测 Cloudflare 免费CDN自定义节点ip之自选cloudflare 高速节点ip工具分享
水平多层介质反射波时距曲线地震检波器组合方向频率特性曲线 谷歌云平台GCP试用过期成功续命一年方法(理论无限试用) 基于Gassmann方程的流体替换技术研究 随机数产生matlab语言程序 山野莽夫外链开启 宝塔面板安装Docker管理器失败的解决办法(适用于大部分服务器比如GCP)
标签聚合
宝塔面板 c语言 wordpress 虚拟机 模板 地震学程序 ppt onedrive
最近评论
小菜菜 发布于 7 个月前(11月24日) 这玩意已经废了,成收割工具了,不能再用了。
eamon 发布于 7 个月前(11月07日) 我一年不用了才发现这个休眠管理费每月15,一共扣了我135元,然后我消费还消费不了,我宁愿消费掉也不...
magic 发布于 12 个月前(07月03日) 请问账号不注销会有什么影响吗?
magic 发布于 12 个月前(07月01日) 我想问一下 如果不注销账号就留着会怎么样
qwp6601 发布于 1 年前(06月04日) 有没有方法改为bing

COPYRIGHT © 2021 shanyemangfu.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备15031791号-2