Basins Of Attraction - Newtons Method

조회 수: 13(최근 30일)
Layan Daoud Agha
Layan Daoud Agha 2021년 2월 25일
답변: Shraddha Jain 2021년 3월 3일
When I run my code it gives me an error that I do not know how to fix. The error says "Index in position 1 exceeds array bounds." How can I fix this?
This is the code I used, I also have a separate code for the function NewtonRaphson in case you were wondering:
clc ; clear all
warning('off')
% The roots
r1 = [-0.672 ;-0.6074] ;
r2 = [0 ;0] ;
r3 = [0.672 ;0.6074] ;
x = linspace(-1,1,200) ;
y = linspace(-1,1,200) ;
Xr1 = [] ; Xr2 = [] ; Xr3 = [] ; Xr4 = [] ;
Tolerance = 0.1;
for i = 1:length(x)
for j = 1:length(y)
X0 = [x(i);y(j)] ;
X = NewtonRaphson(X0) ;
if norm(X-r1)<Tolerance %measuring L2 Norm
Xr1 = [X0 Xr1] ;
elseif norm(X-r2)<Tolerance
Xr2 = [X0 Xr2] ;
elseif norm(X-r3)<Tolerance
Xr3 = [X0 Xr3] ;
else
Xr4 = [X0 Xr4] ;
end
end
end
display(Xr1)
figure
set(gcf,'color','w')
hold on
plot(Xr1(1,:),Xr1(2,:),'.','color','m') ;
plot(Xr2(1,:),Xr2(2,:),'.','color','b') ;
plot(Xr3(1,:),Xr3(2,:),'.','color','g') ;
plot(Xr4(1,:),Xr4(2,:),'.','color','k') ;
title('Basin of attraction for f(x,y) = 2x^3-y = 0 and 3y^3-x=0')
warning('on')

답변(1개)

Shraddha Jain
Shraddha Jain 2021년 3월 3일
Hi Layan,
The error,
Index in position 1 exceeds array bounds
occurs when the index of the array accessed does not agree with the length of the array. Kindly check that the index at first position is neither less than 1 nor greater than the length of the array.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by