當前位置:編程學習大全網 - 編程軟體 - 用MATLAB的叠代法求解x^3-x-1=0在x0=1.5附近的壹個根?

用MATLAB的叠代法求解x^3-x-1=0在x0=1.5附近的壹個根?

 %牛頓叠代法 解方程y=x.^3-x-1

x=1.5;

format long;

x1=x-func1_1(x)/func1_1_1(x);

if(abs(x1)<1.5)

delt=abs(x1-x);

else

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

end

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

x=x1; x1=x-func1_1(x)/func1_1_1(x);

if(abs(x1)<1.5)

delt=abs(x1-x);

else

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

end

if func1_1(x1)==0

break

end

end

disp('解方程y=x.^3-x-1,牛頓叠代法結果')

x1

編輯函數

function y=func1_1(x)

y=x.^3-x-1;

function y=func1_1_1(x)

y=3*x.^2-1

% 對分法

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)<delta)

break;

elseif(fa*fx<0)

b=x;fb=fx;

else

a=x;fa=fx;

end

if(b-a<eps)

break;

end

n=n+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

  • 上一篇:樂高槍92式手槍課程簡單
  • 下一篇:編程到底難在哪?
  • copyright 2024編程學習大全網