1
svar
64
visningar
Cien behöver inte mer hjälp
Lös ekvationssystem (flervar)
Jag har plottat grafen och får 4 skärningar som verkar ligga på ungefär x=-3,-1,0,1.
När jag sedan ska förbättra approximation med Newtons metod så får jag lite problem hur jag ska gå tillväga. Jag följer avisningar enl dokumentet. Är det tänkt att jag ska ta 1 skärning?
Jag skriver koden nedan men får error:
Df=@(x,y)[3*x.^2 2*y;y.*exp(x.*y)+1 x.*exp(x.*y)+1];
x=[-2 ; 2];
kmax=10; tol=0.5e-8;
for k=1:kmax
h=-Df(x)\f(x);
x=x+h;
disp([x' norm(h)])
if norm(h)<tol, break, end
end
Är det för att vi inte stoppar in något y-värde? vet inte vad jag ska stoppa in dock.
Har gjort lite ändringar
f1=@(x,y)x.^3+y.^2-1;
f2=@(x,y)exp(x.*y)+x+y-2;
f=@(x)[f1(x);f2(x)];
x=linspace(-7,7);
[X,Y]=meshgrid(x,x);
contour(X,Y,f1(X,Y),[0 0],'b')
hold on
contour(X,Y,f2(X,Y),[0 0],'r')
f1=@(x)x(1).^3+x(2).^2-1;
f2=@(x)exp(x(1).*x(2))+x(1)+x(2)-2;
Df=@(x)[3*x(1)^2 2*x(2);x(2)*exp(x(1)*x(2))+1 x(1)*exp(x(1)*x(2))+1];
f=@(x)[f1(x);f2(x)];
x=[-2.5 ; 3];
kmax=10; tol=0.5e-8;
for k=1:kmax
h=-Df(x)/f(x);
x=x+h;
disp([x' norm(h)])
if norm(h)<tol, break, end
end
Skrev Jacobianen med en variabel x, gjorde även en 2x1 matrix f(x)=[f1(x);f2(x)];
Får nu följande error
Error using /
Matrix dimensions must agree.
Error in Deltre (line 45)
h=-Df(x)/f(x);
size(Df)=size(f) men får ändå felkoden?
Edit: Det ordna sig genom att ändra snedstrecket åt andra hållet