Filter löschen
Filter löschen

Least square fit.

2 Ansichten (letzte 30 Tage)
yahya aktas
yahya aktas am 20 Apr. 2012
a) Create an m-file that requests 5 arbitrary pairs of x and y values.
You should read one pair at a time and make a plot of these with (*) and perform a least square fit. The fit should be a linear function.
The pairs should lie in the interval 0-15.
If the user tries to write negative or larger values, please remind him/her of the limitations.
b) Make a node plot of the coordinates from the assignment 2a. The connection should be from point to point according to 1->2->3->4->5->1. Add yourself a
suitable scale on the x and y axis. Give it a title also .
The points should be marked with *. Hint: Use gplot.
my code:
i=1;
while i<=5
A(i)=input('Enter any number:'); disp(A(i))
if A(i)<0
disp('Please enter a number between 0 and 15')
else if A(i)>15
disp('Please enter a number between 0 and 15')
else if A(i)>=0 && A(i)<=15
i=i+1;
else if A(i)<=15
i=i+1;
end
end
end
end
end
X=[A(1) A(2) A(3) A(4) A(5)];
disp(X);
i=1;
while i<=5
B(i)=input('Enter any number:'); disp(B(i))
if B(i)<0
disp('Please enter a number between 0 and 15')
else if B(i)>15
disp('Please enter a number between 0 and 15')
else if B(i)>=0
i=i+1;
else if B(i)<=15
i=i+1;
end
end
end
end
end
Y=[B(1) B(2) B(3) B(4) B(5)];
disp(Y);
for k=1:5,
xy(k,:)=[A(k) B(k)];
disp(xy(k,:));
end
k=[A(1)^2 A(1) 1 ; A(2)^2 A(2) 1 ; A(3)^2 A(3) 1 ; A(4)^2 A(4) 1 ;
A(5)^2 A(5) 1];
disp(k);
x1=[A(1) ; A(2) ; A(3) ; A(4) ; A(5)];
disp(x1);
y=[B(1); B(2); B(3); B(4); B(5)];
disp(y);
a=inv(k'*k)*k'*y;
disp('a1:');
disp(a(1,1));
disp('a2:');
disp(a(2,1));
disp('a3:');
disp(a(3,1));
plot(x1,y,'r*'),grid on;
hold on
x=0:0.1:15;
t=0:0.1:15;
plot(t,a(1,1)*x.^2+a(2,1)*x+a(3,1),'-.')
title('quadratic function');
xlabel('x axis');
ylabel('y axis');
I want a graphical plot connecting these 5 pairs of data: from the first to second and from there to the third and so on.
how can I connect dots like that..
Thank you very much..

Antworten (1)

bym
bym am 20 Apr. 2012
change line 81 to read
plot(x1,y,'r*-'),grid on;
by the way, a is more efficiently calculated as
a = k\y;
  2 Kommentare
yahya aktas
yahya aktas am 21 Apr. 2012
but I want a node plot of the coordinates.The connection from point to point according to 1->2->3->4->5->1.
bym
bym am 21 Apr. 2012
then just add the first point to x1 and y:
x1 = [x1;A(1)];
y = [y;B(1)];

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Just for fun finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by