有没有二分法解非线性方程的MATLAB程序要求的是f(x)=0在区间[a,b]上的根

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 05:43:33
有没有二分法解非线性方程的MATLAB程序要求的是f(x)=0在区间[a,b]上的根

有没有二分法解非线性方程的MATLAB程序要求的是f(x)=0在区间[a,b]上的根
有没有二分法解非线性方程的MATLAB程序
要求的是f(x)=0在区间[a,b]上的根

有没有二分法解非线性方程的MATLAB程序要求的是f(x)=0在区间[a,b]上的根
建议楼主遇到关于matlab 的问题就到 mathworks网站的file exchange里找 .
下面是二分法的函数文件,你直接设置输入参数就可以了
function [c,err,yc]=bisect(f,a,b,delta)
%Input - f is the function
% - a and b are the left and right endpoints
% - delta is the tolerance
%Output - c is the zero
% - yc= f(c)
% - err is the error estimate for c
%If f is defined as an M-file function use the @ notation
% call [c,err,yc]=bisect(@f,a,b,delta).
%If f is defined as an anonymous function use the
% call [c,err,yc]=bisect(f,a,b,delta).
% NUMERICAL METHODS:Matlab Programs
% (c) 2004 by John H.Mathews and Kurtis D.Fink
% Complementary Software to accompany the textbook:
% NUMERICAL METHODS:Using Matlab,Fourth Edition
% ISBN:0-13-065248-2
% Prentice-Hall Pub.Inc.
% One Lake Street
% Upper Saddle River,NJ 07458
ya=f(a);
yb=f(b);
if ya*yb > 0,return,end
max1=1+round((log(b-a)-log(delta))/log(2));
for k=1:max1
c=(a+b)/2;
yc=f(c);
if yc==0
a=c;
b=c;
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end
if b-a < delta,break,end
end
c=(a+b)/2;
err=abs(b-a);
yc=f(c);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
建立该函数文件,拷至matlab的当前路径里.
举个例子:
>> format long
>> [answer,error,value]=bisect(@(x)x-cos(x),0,1,1e-8)
answer =
0.739085134118795
error =
7.450580596923828e-009
value =
1.512334035780327e-009
answer即是方程 x-cos(x)=0 的根,error 是实际误差,value是计算结果回代到方程左边的值

clc;clear
a=0;b=1;
fa=1-a-sin(a);
fb=1-b-sin(b);
c=(a+b)/2;
fc=1-c-sin(c);
if fa*fb>0,break,end
while abs(fc)>0.5*10^(-4)
c=(a+b)/2;
fc=1-c-sin(c);
if fb*fc>0

全部展开

clc;clear
a=0;b=1;
fa=1-a-sin(a);
fb=1-b-sin(b);
c=(a+b)/2;
fc=1-c-sin(c);
if fa*fb>0,break,end
while abs(fc)>0.5*10^(-4)
c=(a+b)/2;
fc=1-c-sin(c);
if fb*fc>0
b=c;
fb=fc;
else
a=c;
fa=fc;
end
end
format long
fx=fc,x=c
结果:
fx =
-2.414986223420179e-005
x =
0.510986328125000
精确
>> x=solve('1-x-sin(x)')
x =
.51097342938856910952001397114508

收起

有没有二分法解非线性方程的MATLAB程序要求的是f(x)=0在区间[a,b]上的根 matlab编写非线性方程组求根的二分法程序 利用matlab编写非线性方程组求根的二分法程序 matlab解非线性方程问题 matlab里计算非线性方程的函数有哪些 matlab二分法求方程的根 MATLAB求解非线性方程f(x)=sin⁡(x)-x^2/4=0.分别利用二分法、最速下降法和牛顿法求解求解非线性方程f(x)=sin⁡(x)-x^2/4=0.分别利用二分法、最速下降法和牛顿法求解该非线性方程的非 如何用matlab解非线性方程? matlab如何解非线性超标定方程 matlab Newton迭代法和二分法3.分别用Newton迭代法和二分法求解非线性方程非线性方程3*x.^2+x – 2*exp(x)=0在1,10附近的根并比较两种方法的迭带次数.(用函数实现) matlab二分法编程用二分法求方程的根:x*x+53.99x-0.054=0 编程用二分法解非线性方程补充下 用c语言 用matlab怎么求解含有三角函数的非线性方程中解x为多少? 用matlab怎么求解含有三角函数的非线性方程 用二分法求根.用C语言或MATLAB好手在帮忙啊1)用二分法求非线性方程f(x)=x6-5x5+3x4+x3-7x2+7x-20=0在区间[0,5]内的根. ≤10-5.用C语言或MATLAB 求用MATLAB编制方程求根的二分法和Newton法的 Matlab 程序!求用MATLAB编制方程求根的二分法和Newton法的 Matlab 程序.利用所编制的程序,的最小正根,要求精度 .其中二分法的有根区间取为 【4.0,4.6】, matlab问题~~ 在线等.谢谢.分别用Newton迭代法和二分法求解非线性方程非线性方程5*x.^2+x – exp(x)=0在1,10附近的根并比较两种方法的迭带次数.(用函数实现) matlab用二分法求方程的近似根,保留小数点后四位有效数字.用matlab编程.