construction of diagonal matrix of functions

4 views (last 30 days)
danielle sisserman
danielle sisserman on 28 Nov 2020
Edited: Matt J on 28 Nov 2020
I have three functions: f_1, f_2, and f_3.
I want to construct the matrix A for the following linear system:
so the first line of the system will be f_2(x_1) + f_3(x_2) = q_1
second line will be f_1(x_1) + f_2(x_2) + f_3(x_3) = q_2
third line f_1(x_2) + f_2(x_3) + f_3(x_4) = q_3
and so on.
Thank you.

Accepted Answer

Matt J
Matt J on 28 Nov 2020
Edited: Matt J on 28 Nov 2020
This might be what you want. It assumes that f_1,2,3(x) work element-wise.
function A=func(x)
f1=f_1(x(1:end-1));
f2=f_2(x);
f3=f_3(x(2:end));
A=diag(f1,-1)+diag(f2)+diag(f3,+1);
end

More Answers (1)

Matt J
Matt J on 28 Nov 2020
Edited: Matt J on 28 Nov 2020
function A=func(x,n)
e=zeros(1,n-2);
f1=f_1(x);
f2=f_2(x);
f3=f_3(x);
A=toeplitz([f2,f1,e], [f2,f3,e]);
end
  4 Comments
Matt J
Matt J on 28 Nov 2020
so the first line of the system will be f_2(x_1) + f_3(x_2) = q_1
I'm still not sure what you want, because your drawings and your equations say different things. You're new drawing is equivalent to,
x_1*f_2(alpha) + x_2*f_3(alpha) = q_1
x_1*f_1(alpha) + x_2*f_2(alpha) + x_3*f_3(alpha) = q_2
...

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by