用对分法matlab编程,MATLAB 牛顿法、迭代法、对分法 解方程编程实例

%牛顿迭代法 解方程y=x.^2-x-1

x=1.5;

format long;

x1=x-func2_1(x)/func2_1_1(x);

if(abs(x1)<1.5)

delt=abs(x1-x);

else

delt=abs((x1-x)/x1);

end

while(delt>1e-6|abs(func2_1(x))>1e-6)

x=x1;   x1=x-func2_1(x)/func2_1_1(x);

if(abs(x1)<1.5)

delt=abs(x1-x);

else

delt=abs((x1-x)/x1);

end

if func2_1(x1)==0

break

end

end

disp('解方程y=x.^2-x-1,牛顿迭代法结果')

x1

%  对分法

delta=10e-5;

a=1;

b=2;

fa=func2_1(a);

fb=func2_1(b);

n=1;

while(1)

if(fa*fb>0)

break;

end

x=(a+b)/2;

fx=func2_1(x);

if(abs(fx)

break;

elseif(fa*fx<0)

b=x;fb=fx;

else

a=x;fa=fx;

end

if(b-a

break;

end

n=n+1;

end

disp('对分法结果');

x

%  迭代法

err=1;

k=1;

x=1;

while abs(err)>10e-8

x=(x+1).^(1/2);

err=x-(x+1).^(1/2);

k=k+1;

end

disp('迭代法结果');

x

% 调用roots函数求解结果并作图

x=linspace(-5,5);

y=x.^2-x-1;

plot(x,y)

p=[1 -1 -1];

disp('调用roots函数求解')

x=roots(p)

编辑函数

function y=func2_1(x)

y=x.^2-x-1;

function y=func2_1_1(x)

y=2*x-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值