zoukankan      html  css  js  c++  java
  • 非线性方程的数值解法——二分法求解

    问题

    编写用二分法求clip_image002在区间[1,1.5]内的一个根的程序,收敛误差不超过clip_image004。在同一图形上分别画出clip_image006的图形及每一中点对应的函数值,以观察收敛过程。

    原理

    clip_image006[1]在区间[a,b]上连续,且clip_image009,根据连续函数性质可知clip_image011在[a,b]内一定有根,并称[a,b]为方程clip_image011[1]的有根区间。

    clip_image013

    如果clip_image015 则 b=c 区间还是为[a,b]

    如果clip_image017 则a=c区间还是为[a,b]

    其中每个区间是前一个区间的一半,二分clip_image019次以后得有根区间[clip_image021],其长度是

    clip_image023

    由此,如果二分过程无限地进行下去(clip_image025),则有限区间根必定缩为一点,该点就是所求的根。在此过程我们一般都确定误差范围出结果。

    在此题目中

    clip_image002[1]

    clip_image027

    clip_image029

    程序框图

    clip_image031

    结果比较

    clip_image019[1]

    clip_image033

    clip_image035

    clip_image037

    clip_image039符号

    0

    1

    1.5

    1.25

    -

    1

    1.2500

    1.5

    1.3750

    +

    2

    1.2500

    1.3750

    1.3125

    -

    3

    1.3125

    1.3750

    1.3438

    +

    4

    1.3125

    1.3438

    1.3281

    +

    5

    1.3125

    1.3281

    1.3203

    -

    6

    1.3203

    1.3281

    1.3242

    -

    7

    1.3242

    1.3281

    1.3262

    +

    8

    1.3242

    1.3262

    1.3252

    +

    9

    1.3242

    1.3252

    1.3247

    -

    计算得到clip_image041

    clip_image043

    clip_image045

    图1 放大后clip_image037[1]

    clip_image048

    图2 clip_image037[2]近似值

    结论

    1. clip_image002[2]在区间[1,1.5]内的一个根。

    2. 收敛误差不超过clip_image004[1]时,根为clip_image050=1.3247。

    附件:程序

    函数文件fun.m

    function y=fun(x)

    y=x.^3-x-1;

    主文件main.m

    x=1:0.001:1.5;

    x=1:0.001:1.5;

    a=1;

    b=1.5;

    plot(x,fun(x),'k')

    grid

    hold on

    eps=0.5*10^(-3);

    num=0;

    N=50;

    while(abs(a-b)>eps && num<N )

    c=(a+b)./2

    a

    b

    if(fun(a)*fun(c)<=0)

    b=c;

    else

    if(fun(c)*fun(b)<=0)

    a=c;

    end

    end

    num=num+1

    plot(c,fun(c),'r*')

    fun(c)

    text(c,fun(c),num2str(c))

    end

  • 相关阅读:
    数据结构实用C语言基础
    第二个星期的C语言
    hello world!
    代码规范
    调用有道词典翻译api
    PO,POJO,BO,DTO,VO的区别
    切换Eclipse语言包
    URI和URL区别
    get和post
    Eclipse快捷键
  • 原文地址:https://www.cnblogs.com/lecone/p/2041258.html
Copyright © 2011-2022 走看看