-
-
Save alkhwarizmi/80cb7ba3524c61765c32 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% Default to the notebook output style | |
% Inherit from the specified cell style. | |
\documentclass{article} | |
\usepackage{graphicx} % Used to insert images | |
\usepackage{adjustbox} % Used to constrain images to a maximum size | |
\usepackage{color} % Allow colors to be defined | |
\usepackage{enumerate} % Needed for markdown enumerations to work | |
\usepackage{geometry} % Used to adjust the document margins | |
\usepackage{amsmath} % Equations | |
\usepackage{amssymb} % Equations | |
\usepackage[mathletters]{ucs} % Extended unicode (utf-8) support | |
\usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document | |
\usepackage{fancyvrb} % verbatim replacement that allows latex | |
\usepackage{grffile} % extends the file name processing of package graphics | |
% to support a larger range | |
% The hyperref package gives us a pdf with properly built | |
% internal navigation ('pdf bookmarks' for the table of contents, | |
% internal cross-reference links, web links for URLs, etc.) | |
\usepackage{hyperref} | |
\usepackage{longtable} % longtable support required by pandoc >1.10 | |
\usepackage{booktabs} % table support for pandoc > 1.12.2 | |
\definecolor{orange}{cmyk}{0,0.4,0.8,0.2} | |
\definecolor{darkorange}{rgb}{.71,0.21,0.01} | |
\definecolor{darkgreen}{rgb}{.12,.54,.11} | |
\definecolor{myteal}{rgb}{.26, .44, .56} | |
\definecolor{gray}{gray}{0.45} | |
\definecolor{lightgray}{gray}{.95} | |
\definecolor{mediumgray}{gray}{.8} | |
\definecolor{inputbackground}{rgb}{.95, .95, .85} | |
\definecolor{outputbackground}{rgb}{.95, .95, .95} | |
\definecolor{traceback}{rgb}{1, .95, .95} | |
% ansi colors | |
\definecolor{red}{rgb}{.6,0,0} | |
\definecolor{green}{rgb}{0,.65,0} | |
\definecolor{brown}{rgb}{0.6,0.6,0} | |
\definecolor{blue}{rgb}{0,.145,.698} | |
\definecolor{purple}{rgb}{.698,.145,.698} | |
\definecolor{cyan}{rgb}{0,.698,.698} | |
\definecolor{lightgray}{gray}{0.5} | |
% bright ansi colors | |
\definecolor{darkgray}{gray}{0.25} | |
\definecolor{lightred}{rgb}{1.0,0.39,0.28} | |
\definecolor{lightgreen}{rgb}{0.48,0.99,0.0} | |
\definecolor{lightblue}{rgb}{0.53,0.81,0.92} | |
\definecolor{lightpurple}{rgb}{0.87,0.63,0.87} | |
\definecolor{lightcyan}{rgb}{0.5,1.0,0.83} | |
% commands and environments needed by pandoc snippets | |
% extracted from the output of `pandoc -s` | |
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} | |
% Add ',fontsize=\small' for more characters per line | |
\newenvironment{Shaded}{}{} | |
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} | |
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} | |
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} | |
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} | |
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} | |
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} | |
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} | |
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} | |
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} | |
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} | |
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} | |
\newcommand{\RegionMarkerTok}[1]{{#1}} | |
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} | |
\newcommand{\NormalTok}[1]{{#1}} | |
% Define a nice break command that doesn't care if a line doesn't already | |
% exist. | |
\def\br{\hspace*{\fill} \\* } | |
% Math Jax compatability definitions | |
\def\gt{>} | |
\def\lt{<} | |
% Document parameters | |
\title{DebugConversion} | |
% Pygments definitions | |
\makeatletter | |
\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% | |
\let\PY@ul=\relax \let\PY@tc=\relax% | |
\let\PY@bc=\relax \let\PY@ff=\relax} | |
\def\PY@tok#1{\csname PY@tok@#1\endcsname} | |
\def\PY@toks#1+{\ifx\relax#1\empty\else% | |
\PY@tok{#1}\expandafter\PY@toks\fi} | |
\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% | |
\PY@it{\PY@bf{\PY@ff{#1}}}}}}} | |
\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} | |
\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |
\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |
\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} | |
\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} | |
\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |
\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |
\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} | |
\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |
\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} | |
\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} | |
\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |
\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} | |
\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} | |
\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |
\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} | |
\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} | |
\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |
\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |
\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |
\expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} | |
\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit} | |
\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |
\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | |
\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} | |
\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} | |
\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf} | |
\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |
\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |
\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |
\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} | |
\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | |
\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} | |
\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} | |
\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |
\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |
\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |
\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |
\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | |
\def\PYZbs{\char`\\} | |
\def\PYZus{\char`\_} | |
\def\PYZob{\char`\{} | |
\def\PYZcb{\char`\}} | |
\def\PYZca{\char`\^} | |
\def\PYZam{\char`\&} | |
\def\PYZlt{\char`\<} | |
\def\PYZgt{\char`\>} | |
\def\PYZsh{\char`\#} | |
\def\PYZpc{\char`\%} | |
\def\PYZdl{\char`\$} | |
\def\PYZhy{\char`\-} | |
\def\PYZsq{\char`\'} | |
\def\PYZdq{\char`\"} | |
\def\PYZti{\char`\~} | |
% for compatibility with earlier versions | |
\def\PYZat{@} | |
\def\PYZlb{[} | |
\def\PYZrb{]} | |
\makeatother | |
% Exact colors from NB | |
\definecolor{incolor}{rgb}{0.0, 0.0, 0.5} | |
\definecolor{outcolor}{rgb}{0.545, 0.0, 0.0} | |
% Prevent overflowing lines due to hard-to-break entities | |
\sloppy | |
% Setup hyperref package | |
\hypersetup{ | |
breaklinks=true, % so long urls are correctly broken across lines | |
colorlinks=true, | |
urlcolor=blue, | |
linkcolor=darkorange, | |
citecolor=darkgreen, | |
} | |
% Slightly bigger margins than the latex defaults | |
\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} | |
\begin{document} | |
\maketitle | |
Note that the error is measured, and the purpose is to fined those | |
parameters that better match the errors (in this LSM application the | |
error plays the role of \(f(x)\)) | |
\[ | |
E = \frac{1}{2}\sum_{(i, j)\in I} \left[ E_{ij} - \left(\alpha_0 + \alpha_1\left(R_i + \Delta R_i + \beta^{-1}\Delta V_j\right) - T_r\right)\right]^2 | |
\] | |
where \(I = \{1, ..., n\}\times \{1, ..., m\}\). By definition \(R_i\) | |
is the resistance the sensor would have in absence of deviations, that | |
is \(T_r = \alpha_0 + \alpha_1 R_i\). Therefore equation above becomes | |
\[ | |
E = \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^m \left[E_{ij} - \alpha_1\Delta R_i - \alpha_1 \beta^{-1}\Delta V_j \right]^2 | |
\] | |
Taking the derivatives with respect of the unknown parameters | |
\(\Delta R_i\) and \(\Delta V_j\) we obtain | |
\begin{equation} | |
\frac{\partial E}{\partial \Delta R_i} = -\sum_{j=1}^m [E_{ij} - \alpha_1\Delta R_i - \alpha_1\beta^{-1}\Delta V_j ] \alpha_1 | |
\end{equation} | |
and | |
\begin{equation} | |
\frac{\partial E}{\partial \Delta V_j} = -\displaystyle\sum_{i=1}^n [E_{ij} - \alpha_1\Delta R_i - \alpha_1\beta^{-1}\Delta V_j ] \beta^{-1}\alpha_1 | |
\end{equation} | |
from the equations | |
\(\frac{\partial E}{\partial \Delta R_i} = 0\ (i\in\{1, ..., n\})\) and | |
\(\frac{\partial E}{\partial \Delta V_j} = 0\ (j\in\{1, ..., m\})\), the | |
essence of the LSM, the following system of equations can be derived: | |
\begin{equation} | |
\begin{bmatrix} | |
m\alpha_1 & \cdots & 0 & \alpha_1\beta^{-1} & \cdots & \alpha_1\beta^{-1}\\ | |
& \ddots & & \vdots & \ddots & \vdots\\ | |
0 & \cdots & m\alpha_1 & \alpha_1\beta^{-1} & \cdots & \alpha_1\beta^{-1}\\ | |
\alpha_1 & \cdots & \alpha_1 & n\alpha_1\beta^{-1} & \cdots & 0\\ | |
\vdots & \ddots & \vdots & & \ddots & \\ | |
\alpha_1 & \cdots & \alpha_1 & 0 & \cdots & n\alpha_1\beta^{-1} | |
\end{bmatrix} | |
\begin{bmatrix} | |
\Delta R_1 \\ \vdots \\ \Delta R_n \\ \Delta V_1 \\ \vdots \\ \Delta V_m | |
\end{bmatrix} = | |
\begin{bmatrix} | |
\sum_{j=1}^m E_{1j} \\ \vdots \\ \sum_{i=1}^m E_{nj} \\ \sum_{i=1}^n E_{i1} \\ \vdots \\ \sum_{i=1}^n E_{im} | |
\end{bmatrix} | |
\end{equation} | |
The deviations \(\Delta R_i\) and \(\Delta V_j\) can be obtained solving | |
the above linear system. | |
\begin{Verbatim}[commandchars=\\\{\}] | |
{\color{incolor}In [{\color{incolor}10}]:} \PY{k+kn}{from} \PY{n+nn}{numpy} \PY{k+kn}{import} \PY{n}{array}\PY{p}{,} \PY{n}{hstack}\PY{p}{,} \PY{n}{vstack}\PY{p}{,} \PY{n}{eye}\PY{p}{,} \PY{n}{ones}\PY{p}{,} \PY{n}{zeros}\PY{p}{,} \PY{n}{mean} | |
\PY{k+kn}{from} \PY{n+nn}{numpy.random} \PY{k+kn}{import} \PY{n}{rand} | |
\PY{k+kn}{from} \PY{n+nn}{numpy.linalg} \PY{k+kn}{import} \PY{n}{solve}\PY{p}{,} \PY{n}{inv} | |
\PY{k+kn}{from} \PY{n+nn}{matplotlib.pyplot} \PY{k+kn}{import} \PY{n}{matshow}\PY{p}{,} \PY{n}{colorbar}\PY{p}{,} \PY{n}{title}\PY{p}{,} \PY{n}{xlabel}\PY{p}{,} \PY{n}{ylabel} | |
\PY{n}{n} \PY{o}{=} \PY{l+m+mi}{6}\PY{p}{;} \PY{c}{\PYZsh{} Number of sensors} | |
\PY{n}{m} \PY{o}{=} \PY{l+m+mi}{8}\PY{p}{;} \PY{c}{\PYZsh{} Number of channels} | |
\PY{c}{\PYZsh{} Pls change these virtual data with actual data } | |
\PY{c}{\PYZsh{}E = (rand(n, m) \PYZhy{} 0.2) \PYZsh{} °C} | |
\PY{c}{\PYZsh{} Here you are! :)} | |
\PY{n}{E} \PY{o}{=} \PY{n}{array}\PY{p}{(}\PY{p}{(}\PY{p}{(}\PY{l+m+mf}{0.417}\PY{p}{,} \PY{l+m+mf}{0.557}\PY{p}{,} \PY{l+m+mf}{0.423}\PY{p}{,} \PY{l+m+mf}{0.559}\PY{p}{,} \PY{l+m+mf}{0.393}\PY{p}{,} \PY{l+m+mf}{0.454}\PY{p}{,} \PY{l+m+mf}{0.495}\PY{p}{,} \PY{l+m+mf}{0.598}\PY{p}{)}\PY{p}{,} | |
\PY{p}{(}\PY{l+m+mf}{0.29}\PY{p}{,} \PY{l+m+mf}{0.44}\PY{p}{,} \PY{l+m+mf}{0.534}\PY{p}{,} \PY{l+m+mf}{0.44}\PY{p}{,} \PY{l+m+mf}{0.289}\PY{p}{,} \PY{l+m+mf}{0.362}\PY{p}{,} \PY{l+m+mf}{0.385}\PY{p}{,} \PY{l+m+mf}{0.491}\PY{p}{)}\PY{p}{,} | |
\PY{p}{(}\PY{l+m+mf}{0.0724}\PY{p}{,} \PY{l+m+mf}{0.242}\PY{p}{,} \PY{l+m+mf}{0.104}\PY{p}{,} \PY{l+m+mf}{0.25}\PY{p}{,} \PY{l+m+mf}{0.0803}\PY{p}{,} \PY{l+m+mf}{0.139}\PY{p}{,} \PY{l+m+mf}{0.19}\PY{p}{,} \PY{l+m+mf}{0.285}\PY{p}{)}\PY{p}{,} | |
\PY{p}{(}\PY{l+m+mf}{0.532}\PY{p}{,} \PY{l+m+mf}{0.699}\PY{p}{,} \PY{l+m+mf}{0.558}\PY{p}{,} \PY{l+m+mf}{0.68}\PY{p}{,} \PY{l+m+mf}{0.551}\PY{p}{,} \PY{l+m+mf}{0.598}\PY{p}{,} \PY{l+m+mf}{0.639}\PY{p}{,} \PY{l+m+mf}{0.763}\PY{p}{)}\PY{p}{,} | |
\PY{p}{(}\PY{l+m+mf}{0.435}\PY{p}{,} \PY{l+m+mf}{0.536}\PY{p}{,} \PY{l+m+mf}{0.383}\PY{p}{,} \PY{l+m+mf}{0.504}\PY{p}{,} \PY{l+m+mf}{0.363}\PY{p}{,} \PY{l+m+mf}{0.424}\PY{p}{,} \PY{l+m+mf}{0.721}\PY{p}{,} \PY{l+m+mf}{0.574}\PY{p}{)}\PY{p}{,} | |
\PY{p}{(}\PY{l+m+mf}{0.586}\PY{p}{,} \PY{l+m+mf}{0.741}\PY{p}{,} \PY{l+m+mf}{0.615}\PY{p}{,} \PY{l+m+mf}{0.734}\PY{p}{,} \PY{l+m+mf}{0.581}\PY{p}{,} \PY{l+m+mf}{0.644}\PY{p}{,} \PY{l+m+mf}{0.673}\PY{p}{,} \PY{l+m+mf}{0.802}\PY{p}{)}\PY{p}{)}\PY{p}{)} | |
\PY{n}{matshow}\PY{p}{(}\PY{n}{E}\PY{p}{)}\PY{p}{;} | |
\PY{n}{title}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{Dev. from reference temperature \PYZdl{}T\PYZus{}\PYZob{}ij\PYZcb{} \PYZhy{} T\PYZus{}r\PYZdl{}}\PY{l+s}{\PYZdq{}}\PY{p}{)} | |
\PY{n}{xlabel}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{Channel index}\PY{l+s}{\PYZdq{}}\PY{p}{)} | |
\PY{n}{ylabel}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sensor index}\PY{l+s}{\PYZdq{}}\PY{p}{)} | |
\PY{n}{colorbar}\PY{p}{(}\PY{p}{)} | |
\PY{n}{alpha1} \PY{o}{=} \PY{l+m+mf}{0.255866} \PY{c}{\PYZsh{} [K/Ohm]} | |
\PY{n}{beta} \PY{o}{=} \PY{l+m+mf}{300e\PYZhy{}6}\PY{o}{*}\PY{l+m+mi}{1000}\PY{p}{;} \PY{c}{\PYZsh{} 300 uA and conversion factor (1000) to express the number in mV} | |
\PY{c}{\PYZsh{} Construction of matrix A} | |
\PY{n}{Arr} \PY{o}{=} \PY{n}{eye}\PY{p}{(}\PY{n}{n}\PY{p}{)}\PY{o}{*}\PY{n}{m}\PY{o}{*}\PY{n}{alpha1}\PY{p}{;} | |
\PY{n}{Arc} \PY{o}{=} \PY{n}{ones}\PY{p}{(}\PY{p}{(}\PY{n}{n}\PY{p}{,} \PY{n}{m}\PY{p}{)}\PY{p}{)}\PY{o}{*}\PY{n}{alpha1}\PY{o}{/}\PY{n}{beta}\PY{p}{;} | |
\PY{n}{Acc} \PY{o}{=} \PY{n}{eye}\PY{p}{(}\PY{n}{m}\PY{p}{)}\PY{o}{*}\PY{n}{n}\PY{o}{*}\PY{n}{alpha1}\PY{o}{/}\PY{n}{beta}\PY{p}{;} | |
\PY{n}{Acr} \PY{o}{=} \PY{n}{ones}\PY{p}{(}\PY{p}{(}\PY{n}{m}\PY{p}{,} \PY{n}{n}\PY{p}{)}\PY{p}{)}\PY{o}{*}\PY{n}{alpha1}\PY{p}{;} | |
\PY{n}{A} \PY{o}{=} \PY{n}{hstack}\PY{p}{(}\PY{p}{(}\PY{n}{vstack}\PY{p}{(}\PY{p}{(}\PY{n}{Arr}\PY{p}{,} \PY{n}{Acr}\PY{p}{)}\PY{p}{)}\PY{p}{,} \PY{n}{vstack}\PY{p}{(}\PY{p}{(}\PY{n}{Arc}\PY{p}{,} \PY{n}{Acc}\PY{p}{)}\PY{p}{)}\PY{p}{)}\PY{p}{)}\PY{p}{;} | |
\PY{c}{\PYZsh{} Construction of vector b (A*x = b)} | |
\PY{n}{b} \PY{o}{=} \PY{n}{zeros}\PY{p}{(}\PY{n}{n} \PY{o}{+} \PY{n}{m}\PY{p}{)}\PY{p}{;} | |
\PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{n}{n}\PY{p}{)}\PY{p}{:} | |
\PY{k}{for} \PY{n}{j} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{n}{m}\PY{p}{)}\PY{p}{:} | |
\PY{n}{b}\PY{p}{[}\PY{n}{i}\PY{p}{]} \PY{o}{+}\PY{o}{=} \PY{n}{E}\PY{p}{[}\PY{n}{i}\PY{p}{,} \PY{n}{j}\PY{p}{]}\PY{p}{;} | |
\PY{k}{for} \PY{n}{j} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{n}{m}\PY{p}{)}\PY{p}{:} | |
\PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{n}{n}\PY{p}{)}\PY{p}{:} | |
\PY{n}{b}\PY{p}{[}\PY{n}{n} \PY{o}{+} \PY{n}{j}\PY{p}{]} \PY{o}{+}\PY{o}{=} \PY{n}{E}\PY{p}{[}\PY{n}{i}\PY{p}{,} \PY{n}{j}\PY{p}{]}\PY{p}{;} | |
\PY{c}{\PYZsh{} Computations of the results x = A\PYZca{}\PYZob{}\PYZhy{}1\PYZcb{}b} | |
\PY{n}{x} \PY{o}{=} \PY{n}{solve}\PY{p}{(}\PY{n}{A}\PY{p}{,} \PY{n}{b}\PY{p}{)}\PY{p}{;} | |
\PY{k}{print}\PY{p}{(}\PY{n}{x}\PY{p}{)} | |
\end{Verbatim} | |
\begin{Verbatim}[commandchars=\\\{\}] | |
[ 1.90224293 1.57736585 0.66463223 2.45135848 1.92373856 2.62527764 | |
-0.10144533 0.07102776 -0.04583029 0.06164785 -0.11612098 -0.04504863 | |
0.0491413 0.12926136] | |
\end{Verbatim} | |
\begin{center} | |
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{DebugConversion_files/DebugConversion_2_1.png} | |
\end{center} | |
{ \hspace*{\fill} \\} | |
% Add a bibliography block to the postdoc | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment