二分法的matlab程序 matlab newton迭代函数

下面是使用二分法求方程根的程序,需要的可自行copy,如有问题,希望您能告诉我。

%%---------------------------------------------------------------------------
function [x,fx,xflag]=find_roots1(f,c1,c2,rel_err)
% f is the name of the function to be solved
% c1,c2 are the min and max bounds of x respectively
% rel_err is the relative error,that isabs(f1n-f2n)/abs(f1-f2)
% where f1n, f2n are the function values at the c1n and c2n
% f1n, f2n are the function values at c1 and c2
% xflag is -1 if there's no root in range (c1,c2)
% xflag equals to 1 if there is a root in range (c1,c2)
% x is the root solved
% fx is its value

% example
% [x,fx,xflag]=find_roots1(@sin,0.1,pi+0.1,1e-6)


%{
c1=0.01;
c2=pi+0.1;
二分法的matlab程序 matlab newton迭代函数
rel_err=1e-3;
f=@sin;
%}
xflag=-1;

f1=feval_r(f,c1);
f2=feval_r(f,c2);
abs_f1_2=abs(f1-f2);

if abs(f1) <= rel_err*abs_f1_2
x=c1;
fx=f1;
xflag=1;
return;
elseif abs(f2) <= rel_err*abs_f1_2
x=c2;
fx=f2;
xflag=1;
return;
elseif f1*f2 >————0
x=nan;
fx=nan;
return;
else
fori1=1:100
c0=(c1+c2)/2;
f0=feval_r(f,c0);
if abs(f0) <= rel_err*abs_f1_2
x=c0;
fx=f0;
xflag=1;
return;
elseif f1*f0 >0
c1=c0;
f1=f0;
else
c2=c0;
f2=f0;
end
if abs(f1-f2)<rel_err*abs_f1_2
xflag=1;
x=c0;
fx=f0;
return;
elseif abs(f1-f2)>100*abs_f1_2
xflag=-1;
x=nan;
fx=nan;
return;
end
end
end

%%---------------------------------------------------------------------------

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/287133.html

更多阅读

matlab曲线拟合 函数 用法以及例子 如何用matlab拟合曲线

matlab曲线拟合 函数 用法以及例子——简介在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以,工具箱拟合结果十分不适合调用,以及继续下面的操

matlab中如何定义函数 matlab输入函数表达式

matlab中如何定义函数——简介许多时候希望将特定的代码(算法)书写成函数的形式,提高代码的可封装性与重复性,简化代码设计,提高执行效率!下面简单介绍一下matlab中的函数定义与使用。matlab中如何定义函数——工具/原料matlab 7.0及以上

转载 用SOR方法解方程组计算方法matlab matlab中sor迭代法

原文地址:用SOR方法解方程组计算方法matlab作者:不再彷徨function [Lw,f]=fifth1(A,b)%输入方程左端系数和右端向量,输出SOR方法的迭代矩阵,%及另一个系数s=size(A);%方程组左端系数矩阵的大小ss=size(b);f=zeros(ss(1),ss(2));%定义一

Struts迭代器iterator 遍历List常用的4种例子 struts2迭代器

【摘要】本文主要介绍及演示了Struts迭代器(iterator)遍历List常用的4种例子,基于MyEclipse开发环境,重点关注前后端代码的实现,给出后端java代码、前段struts标签代码,主要有如下4个例子:1.遍历List<String>2.遍历List<List<String>>3.遍

matlab实现二分法程序 matlab二分法求根程序

二分法又称对分法,是求非线性方程根的最简单方法,他的求解基本思想是由介值定理得到的。以下为二分法matlab程序clcclose allformat long;f=input('f(x)=');qujian=input('输入区间=') ;err=input('误差范围;');a=qujian(1);

声明:《二分法的matlab程序 matlab newton迭代函数》为网友君生我未生分享!如侵犯到您的合法权益请联系我们删除