Can anyone help me with this matlab code?
6 views (last 30 days)
Show older comments
Hello out there! I have a problem with following code. I have tre equations, which I have to find solutions to with help from newtons method in matlab. It's keep telling me, that I have a undefined variable.
function x = NEWT(x0,k)
x=x0;
for i=1:k
b=F(x);
s=DF(x)\b;
x=x-s;
end
end
function y = F(x)
y=zeros(3,1); % 0-punkter i 3x1 matrix - it is a vector
y(1)=2*x(1)^2-4*x(1)+x(2)^2+3*x(3)^2+6*x(3)+2;
y(2)=x(1)^2+x(2)^2-2*x(2)+2*x(3)^2-5;
y(3)=3*x(1)^2-12*x(1)+x(2)^2+3*x(3)^2+8;
end
function dy = DF(x)
dy=zeros(3,3);
dy(1,1)=4*x(1)-4;
dy(1,2)=2*x(2);
dy(1,3)=6*x(3)+6;
dy(2,1)=2*x(1);
dy(2,2)=2*x(2)-2;
dy(2,3)=4*x(3);
dy(3,1)=6*x(1)-12;
dy(3,2)=2*x(2);
dy(3,3)=6*x(3);
end
8 Comments
Image Analyst
on 2 Dec 2012
Of course. If you don't then there are still errors -- either errors in your logic and algorithm, or errors in the syntax.
Answers (1)
Image Analyst
on 2 Dec 2012
If you say NEWT(2,3) then x = 2, but in F(x) you say y(1)=2*x(1)^2-4*x(1)+x(2)^2+3*x(3)^2+6*x(3)+2 so then x must be an array, not a single number. What are your plans regarding that?
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!