方程根求解数值方法matlab实现二分法、牛顿法、斜截法,代码程序,手写思路,理论分析,最基本的操作

方程根求解数值方法matlab实现二分法、牛顿法、斜截法

方程根求解数值方法matlab实现二分法、牛顿法、斜截法,代码程序,手写思路,理论分析,最基本的操作

实验内容:

在这里插入图片描述

理论手写思路

方程根求解数值方法matlab实现二分法、牛顿法、斜截法,代码程序,手写思路,理论分析,最基本的操作_第1张图片
方程根求解数值方法matlab实现二分法、牛顿法、斜截法,代码程序,手写思路,理论分析,最基本的操作_第2张图片

实验代码程序

1、二分法:
主函数:
clear;
clc;
syms U L;   %将区间上下限定为变量
f=@(x)x^3-3*x-1;   %求给定的函数,可以直接在本行中修改后面代码为其他函数
U=3('输入求根区域上限upper,U=');    
L=1('输入求根区域下限lower,L=');
while U-L>0.0001      %设定一个求根区域精度,然后进行判断
    root=(U+L)/2;    %当根的区间大于所给精度时,利用二分法重新规划求根区间
    if f(root)==0    
        break;    %r恰好为所求根,直接跳出循环
    end
    if f(root)*f(U)<0    %用零点存在定理判断根所在的区域
        L=root;
    else
        U=root;
    end
end
root    %直接输出所求根的值

2、牛顿法:
M文件:
function [p] = NEWTON(f,df,p0,tol,max)
%NEWTON 此处显示有关此函数的摘要
%   此处显示详细说明
for k=1:max
    p1=p0-feval(f,p0)/feval(df,p0);
    err=abs(p1-p0);
    if err<tol
        break
    end
    p0=p1;
end
p=p1;
end

主函数:
f=@(x)x^3-3*x-1;
df=@(x)3*x^2-3;
NEWTON(f,df,2,0.0001,100)

3、斜截法:
M文件:
function [p] = OBLIQUE_TRACING(f,p0,p1,tol,max)
%NEWTON 此处显示有关此函数的摘要
%   此处显示详细说明
for k=2:max
    p2=p1-feval(f,p1)*(p1-p0)/(feval(f,p1)-feval(f,p0));
    err=abs(p2-p1);
    if err<tol
        break
    end
    p0=p1;
    p1=p2;
end
p=p2;
end

主函数:
f=@(x)x^3-3*x-1;
OBLIQUE_TRACING(f,1,3,0.0001,100)

实验结果

方程根求解数值方法matlab实现二分法、牛顿法、斜截法,代码程序,手写思路,理论分析,最基本的操作_第3张图片

M文件以及程序文本

方程根求解数值方法matlab实现二分法、牛顿法、斜截法,代码程序,手写思路,理论分析,最基本的操作_第4张图片

已经全部打包压缩,需要的留言即可

你可能感兴趣的:(数值分析,matlab,二分法)