-
Notifications
You must be signed in to change notification settings - Fork 0
/
approxymation.octave.txt
47 lines (37 loc) · 1.38 KB
/
approxymation.octave.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function [y, jac] = f (x)
y = zeros (5, 1);
y(1) = x(1)*e^(-10*x(2)) + x(3)*e^(-10*x(4)) + x(5) - 1.45;
y(2) = x(1)*e^(-25*x(2)) + x(3)*e^(-25*x(4)) + x(5) - 1.13;
y(3) = x(1)*e^(-40*x(2)) + x(3)*e^(-40*x(4)) + x(5) - 1;
y(4) = x(1)*e^(-55*x(2)) + x(3)*e^(-55*x(4)) + x(5) - 0.92;
y(5) = x(1)*e^(-70*x(2)) + x(3)*e^(-70*x(4)) + x(5) - 0.87;
if (nargout == 2)
jac = zeros (5, 5);
jac(1,1) = e^(-10*x(2));
jac(1,2) = -10*x(1)*e^(-10*x(2));
jac(1,3) = e^(-10*x(4));
jac(1,4) = -10*x(3)*e^(-10*x(4));
jac(1,5) = 1;
jac(2,1) = e^(-25*x(2));
jac(2,2) = -25*x(1)*e^(-25*x(2));
jac(2,3) = e^(-25*x(4));
jac(2,4) = -25*x(3)*e^(-25*x(4));
jac(2,5) = 1;
jac(3,1) = e^(-40*x(2));
jac(3,2) = -40*x(1)*e^(-40*x(2));
jac(3,3) = e^(-40*x(4));
jac(3,4) = -40*x(3)*e^(-40*x(4));
jac(3,5) = 1;
jac(4,1) = e^(-55*x(2));
jac(4,2) = -55*x(1)*e^(-55*x(2));
jac(4,3) = e^(-55*x(4));
jac(4,4) = -55*x(3)*e^(-55*x(4));
jac(4,5) = 1;
jac(5,1) = e^(-70*x(2));
jac(5,2) = -70*x(1)*e^(-70*x(2));
jac(5,3) = e^(-70*x(4));
jac(5,4) = -70*x(3)*e^(-70*x(4));
jac(5,5) = 1;
endif
endfunction
[x, fval, info] = fsolve (@f, [1.1; 0.05; 2; 0.2; 0.8], optimset ("jacobian", "on"));