octave:2> toeplitz([2,-1,0,0]) ans = 2 -1 0 0 -1 2 -1 0 0 -1 2 -1 0 0 -1 2 octave:3> toeplitz([0,-1,0,0],[0,1,0,0]) ans = 0 1 0 0 -1 0 1 0 0 -1 0 1 0 0 -1 0 octave:4> toeplitz([2,-1,0,0,0,0,0,0]) ans = 2 -1 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 -1 2 octave:5> sparse(toeplitz([2,-1,0,0,0,0,0,0])) ans = Compressed Column Sparse (rows = 8, cols = 8, nnz = 22 [34%]) (1, 1) -> 2 (2, 1) -> -1 (1, 2) -> -1 (2, 2) -> 2 (3, 2) -> -1 (2, 3) -> -1 (3, 3) -> 2 (4, 3) -> -1 (3, 4) -> -1 (4, 4) -> 2 (5, 4) -> -1 (4, 5) -> -1 (5, 5) -> 2 (6, 5) -> -1 (5, 6) -> -1 (6, 6) -> 2 (7, 6) -> -1 (6, 7) -> -1 (7, 7) -> 2 (8, 7) -> -1 (7, 8) -> -1 (8, 8) -> 2 octave:6> toeplitz(sparse([2,-1,0,0,0,0,0,0])) ans = Compressed Column Sparse (rows = 8, cols = 8, nnz = 22 [34%]) (1, 1) -> 2 (2, 1) -> -1 (1, 2) -> -1 (2, 2) -> 2 (3, 2) -> -1 (2, 3) -> -1 (3, 3) -> 2 (4, 3) -> -1 (3, 4) -> -1 (4, 4) -> 2 (5, 4) -> -1 (4, 5) -> -1 (5, 5) -> 2 (6, 5) -> -1 (5, 6) -> -1 (6, 6) -> 2 (7, 6) -> -1 (6, 7) -> -1 (7, 7) -> 2 (8, 7) -> -1 (7, 8) -> -1 (8, 8) -> 2 octave:7> sparse([1,1],[1,2],[2,-1],1,4) ans = Compressed Column Sparse (rows = 1, cols = 4, nnz = 2 [50%]) (1, 1) -> 2 (1, 2) -> -1 octave:8> toeplitz(sparse([1,1],[1,2],[2,-1],1,4)) ans = Compressed Column Sparse (rows = 4, cols = 4, nnz = 10 [62%]) (1, 1) -> 2 (2, 1) -> -1 (1, 2) -> -1 (2, 2) -> 2 (3, 2) -> -1 (2, 3) -> -1 (3, 3) -> 2 (4, 3) -> -1 (3, 4) -> -1 (4, 4) -> 2 octave:9> full(toeplitz(sparse([1,1],[1,2],[2,-1],1,4))) ans = 2 -1 0 0 -1 2 -1 0 0 -1 2 -1 0 0 -1 2 octave:10> full(toeplitz(sparse(1,2,-1,1,4),sparse(1,2,1,1,4))) ans = 0 1 0 0 -1 0 1 0 0 -1 0 1 0 0 -1 0 octave:11> A=toeplitz(sparse([1,1],[1,2],[2,-1],1,4)) A = Compressed Column Sparse (rows = 4, cols = 4, nnz = 10 [62%]) (1, 1) -> 2 (2, 1) -> -1 (1, 2) -> -1 (2, 2) -> 2 (3, 2) -> -1 (2, 3) -> -1 (3, 3) -> 2 (4, 3) -> -1 (3, 4) -> -1 (4, 4) -> 2 octave:12> B=toeplitz(sparse(1,2,-1,1,4),sparse(1,2,1,1,4)) B = Compressed Column Sparse (rows = 4, cols = 4, nnz = 6 [38%]) (2, 1) -> -1 (1, 2) -> 1 (3, 2) -> -1 (2, 3) -> 1 (4, 3) -> -1 (3, 4) -> 1 octave:13> A(1,:)=0 A = Compressed Column Sparse (rows = 4, cols = 4, nnz = 8 [50%]) (2, 1) -> -1 (2, 2) -> 2 (3, 2) -> -1 (2, 3) -> -1 (3, 3) -> 2 (4, 3) -> -1 (3, 4) -> -1 (4, 4) -> 2 octave:14> full(A) ans = 0 0 0 0 -1 2 -1 0 0 -1 2 -1 0 0 -1 2 octave:15> catenaria octave:16> x x = -1.00000 -0.60000 -0.20000 0.20000 0.60000 1.00000 octave:17> catenaria octave:18> A A = Compressed Column Sparse (rows = 6, cols = 6, nnz = 16 [44%]) (1, 1) -> -12.500 (2, 1) -> 6.2500 (1, 2) -> 6.2500 (2, 2) -> -12.500 (3, 2) -> 6.2500 (2, 3) -> 6.2500 (3, 3) -> -12.500 (4, 3) -> 6.2500 (3, 4) -> 6.2500 (4, 4) -> -12.500 (5, 4) -> 6.2500 (4, 5) -> 6.2500 (5, 5) -> -12.500 (6, 5) -> 6.2500 (5, 6) -> 6.2500 (6, 6) -> -12.500 octave:19> full(A) ans = -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 octave:20> catenaria octave:21> full(B) ans = 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 octave:22> catenaria octave:23> catenaria parse error near line 10 of file /home/accounts/personale/clrmrc90/aa1617/equazioni_differenziali/catenaria.m syntax error >>> F = @(u) A*u-a*sqrt(1+(B*u^2); ^ octave:23> catenaria octave:24> F([1;2]) error: operator *: nonconformant arguments (op1 is 6x6, op2 is 2x1) error: called from: error: at line -1, column -1 octave:24> F([1;2;3;4;5;6]) error: for A^b, A must be a square matrix. Use .^ for elementwise power. error: evaluating argument list element number 1 error: called from: error: at line -1, column -1 octave:24> catenaria octave:25> full(A) ans = 6.25000 0.00000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 6.25000 -12.50000 6.25000 0.00000 0.00000 0.00000 0.00000 0.00000 6.25000 octave:26> full(B) ans = 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 octave:27> catenaria octave:28> full(B) ans = 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 -1.25000 0.00000 1.25000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 octave:29> catenaria octave:30> full(b) ans = 5.25000 0.00000 0.00000 0.00000 0.00000 5.25000 octave:31> catenaria octave:32> F([1;0;0;0;0;0;1]) error: operator *: nonconformant arguments (op1 is 6x6, op2 is 7x1) error: called from: error: at line -1, column -1 octave:32> F([1;0;0;0;0;1]) ans = 0.00000 4.64922 -1.00000 -1.00000 4.64922 0.00000 octave:33> format long e octave:34> F([1;0;0;0;0;1]) ans = 0.00000000000000e+00 4.64921894064179e+00 -1.00000000000000e+00 -1.00000000000000e+00 4.64921894064179e+00 0.00000000000000e+00 octave:35> catenaria octave:36> catenaria octave:37> eps=1e-4 eps = 1.00000000000000e-04 octave:38> u=rand(6,1) u = 1.69476785855092e-01 9.70746304330046e-01 7.56687718688046e-01 3.43922378703254e-01 9.77337145391323e-01 6.76525168188086e-01 octave:39> v=rand(6,1) v = 6.27181512192995e-01 2.92056503130500e-02 5.75679264957609e-01 3.47483070783468e-01 1.14990341348700e-01 7.14641196062739e-01 octave:40> JF(u)*v ans = 3.91988445120622e+00 7.19090288179842e+00 -4.59631117783942e+00 1.26258893254228e-01 5.02470886660678e+00 4.46650747539212e+00 octave:41> (F(u+eps*v)-F(u))/eps ans = 3.91988445120894e+00 7.19090277323531e+00 -4.59631503784586e+00 1.26244039027057e-01 5.02470057524462e+00 4.46650747538690e+00 octave:42> catenaria octave:43> catenaria octave:44> catenaria octave:45> catenaria octave:46> catenaria ans = 3.60759225072464e-01 ans = 1.22742318200209e-03 ans = 9.14323356107747e-09 ans = 7.64549055916276e-15 octave:47> catenaria ans = 4.72595867068957e-01 ans = 3.55545379768753e-02 ans = 1.40057946130415e-02 ans = 3.30003523452853e-03 ans = 2.41692204555168e-04 ans = 8.32879228783174e-05 ans = 1.87443525499546e-05 ans = 1.22118455771698e-06 ans = 5.46759516567227e-07 ans = 1.06276265474138e-07 ans = 6.78012824785650e-09 ans = 3.52115218398485e-09 ans = 5.89603810651593e-10 ans = 4.43079146403659e-11 ans = 2.22090334543321e-11 ans = 3.19347554067129e-12 octave:48> catenaria ans = 3.60759225072464e-01 ans = 1.22742318200209e-03 ans = 9.14323356107747e-09 ans = 7.64549055916276e-15 octave:49> norm(u-uesatta(x),inf) ans = 1.54409896012120e-05 octave:50> format octave:51> norm(u-uesatta(x),inf) ans = 1.5441e-05 octave:52> catenaria ans = 0.51159 ans = 0.0017405 ans = 1.2954e-08 ans = 1.2219e-14 octave:53> norm(u-uesatta(x),inf) ans = 3.8217e-06 octave:54> 1.5441e-05/4 ans = 3.8603e-06 octave:55> diary off