## 2017年4月30日日曜日

### 数学 - JavaScript - 解析学 - 各種の初等関数 - 累乗関数、大きさの比較(ネイピア数(オイラー数、自然対数の底)、無限回微分可能性)

1. $\begin{array}{l}\frac{A}{x-a}+\frac{B}{x-b}\\ =\frac{A\left(x-b\right)+B\left(x-a\right)}{\left(x-a\right)\left(x-b\right)}\\ A\left(x-b\right)+B\left(x-a\right)=1\\ A+B=0\\ B=-A\\ -Ab+Aa=1\\ A\left(a-b\right)=1\\ A=\frac{1}{a-b}=-\frac{1}{b-a}\\ B=\frac{1}{b-a}\\ a0\\ x-a>0\\ x-b<0\end{array}$

コード(Emacs)

HTML5

<div id="graph0"></div>
<pre id="output0"></pre>
<label for="a0">a = </label><input id="a0" type="number" value="5">
<br>
<label for="h0">h = </label><input id="h0" type="number" min="0.01" value="5">(h > 0)
<br>
b = a + h = <span id="b0"></span>
<br>
<button id="draw0">draw</button>
<button id="clear0">clear</button>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.6/d3.min.js" integrity="sha256-5idA201uSwHAROtCops7codXJ0vja+6wbBrZdQ6ETQc=" crossorigin="anonymous"></script>
<script src="sample5.js"></script>


JavaScript

let div0 = document.querySelector('#graph0'),
pre0 = document.querySelector('#output0'),
width = 600,
height = 600,
input_a = document.querySelector('#a0'),
input_h = document.querySelector('#h0'),
span_b = document.querySelector('#b0'),
inputs = [input_a, input_h],
btn0 = document.querySelector('#draw0'),
btn1 = document.querySelector('#clear0'),
p = (x) => pre0.textContent += x + '\n';

let draw = () => {
pre0.textContent = '';
let a = parseFloat(input_a.value),
h = parseFloat(input_h.value),
b = a + h,
points = [];

span_b.textContent = b;

let f = (x) => Math.exp(1 / ((x - a) * (x - b)));

for (let x = a - 0.5; x <= b + 0.5; x += 0.001) {
if (a < x && x < b) {
points.push([x, f(x)]);
} else {
points.push([x, 0]);
}
}

let xscale = d3.scaleLinear()
.domain([a - 0.5, b + 0.5])
let ys = points.map((a) => a[1]);
let yscale = d3.scaleLinear()
.domain([Math.min(...ys), Math.max(...ys)])

let xaxis = d3.axisBottom().scale(xscale);
let yaxis = d3.axisLeft().scale(yscale);
div0.innerHTML = '';
let svg = d3.select('#graph0')
.append('svg')
.attr('width', width)
.attr('height', height);

svg.selectAll('circle')
.data(points)
.enter()
.append('circle')
.attr('cx', (d) => xscale(d[0]))
.attr('cy', (d) => yscale(d[1]))
.attr('r', 1)
.attr('fill', 'green');

svg.append('g')
.attr('transform', translate(0, ${height - padding})) .call(xaxis); svg.append('g') .attr('transform', translate(${padding}, 0))
.call(yaxis);
}

inputs.forEach((input) => input.onchange = draw);
btn0.onclick = draw;
btn1.onclick = () => pre0.textContent = '';
draw();


(h > 0)
b = a + h =