2018年2月16日金曜日

学習環境

解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第3部(積分)、第10章(積分の性質)、3(不等式)、練習問題2.を取り組んでみる。


  1. α 1 p β 1 q α p + β q f f p · g g q f p p f p p + g q q g q q a b f x g x dx f p g q 1 p · f p p f p p + 1 q · g q h g q q | | f | | p | | g | | q 1 p + 1 q = f p g q a b f x g x dx a b f x g x dx

    よって、

    a b f x g x f p g q

    ゆえに、

    f , g f p g q

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, Integral, root, Function

x = symbols('x')
a, b, p, q = symbols('a, b, p, q')


def dot(f, g):
    return Integral(f * g, (x, a, b))


def norm(f, p):
    return root(Integral(abs(f) ** p, (x, a, b)), p)
f = Function('f')(x)
g = Function('g')(x)

l = abs(dot(f, g))
r = norm(f, p) * norm(g, q)

for t in [l, r, l <= r]:
    pprint(t)
    print()

入出力結果(Terminal, Jupyter(IPython))

$ ./sample2.py
│b             │
│⌠             │
│⎮ f(x)⋅g(x) dx│
│⌡             │
│a             │

       ______________        ______________
      ╱ b                   ╱ b            
     ╱  ⌠                  ╱  ⌠            
    ╱   ⎮       p         ╱   ⎮       q    
   ╱    ⎮ │f(x)│  dx ⋅   ╱    ⎮ │g(x)│  dx 
p ╱     ⌡             q ╱     ⌡            
╲╱      a             ╲╱      a            

                          ______________        ______________
                         ╱ b                   ╱ b            
│b             │        ╱  ⌠                  ╱  ⌠            
│⌠             │       ╱   ⎮       p         ╱   ⎮       q    
│⎮ f(x)⋅g(x) dx│ ≤    ╱    ⎮ │f(x)│  dx ⋅   ╱    ⎮ │g(x)│  dx 
│⌡             │   p ╱     ⌡             q ╱     ⌡            
│a             │   ╲╱      a             ╲╱      a            

$

HTML5

<div id="graph0"></div>
<pre id="output0"></pre>
<label for="r0">r = </label>
<input id="r0" type="number" min="0" value="0.5">
<label for="dx">dx = </label>
<input id="dx" type="number" min="0" step="0.001" value="0.005">
<br>
<label for="x1">x1 = </label>
<input id="x1" type="number" value="-5">
<label for="x2">x2 = </label>
<input id="x2" type="number" value="5">
<br>
<label for="y1">y1 = </label>
<input id="y1" type="number" value="-5">
<label for="y2">y2 = </label>
<input id="y2" type="number" value="5">

<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="sample2.js"></script>

JavaScript

let div0 = document.querySelector('#graph0'),
    pre0 = document.querySelector('#output0'),
    width = 600,
    height = 600,
    padding = 50,
    btn0 = document.querySelector('#draw0'),
    btn1 = document.querySelector('#clear0'),
    input_r = document.querySelector('#r0'),
    input_dx = document.querySelector('#dx'),
    input_x1 = document.querySelector('#x1'),
    input_x2 = document.querySelector('#x2'),
    input_y1 = document.querySelector('#y1'),
    input_y2 = document.querySelector('#y2'),
    inputs = [input_r, input_dx, input_x1, input_x2, input_y1, input_y2],
    p = (x) => pre0.textContent += x + '\n',
    range = (start, end, step=1) => {
        let res = [];
        for (let i = start; i < end; i += step) {
            res.push(i);
        }
        return res;
    };

let f = (x) => Math.exp(x),
    g = (x) => 2 * x,
    fns = [[f, 'red'],
           [g, 'green'],
           [(x) => f(x) * g(x), 'blue'],
           [(x) => Math.abs(f(x) * g(x)), 'orange']];

let draw = () => {
    pre0.textContent = '';

    let r = parseFloat(input_r.value),
        dx = parseFloat(input_dx.value),
        x1 = parseFloat(input_x1.value),
        x2 = parseFloat(input_x2.value),
        y1 = parseFloat(input_y1.value),
        y2 = parseFloat(input_y2.value);

    if (r === 0 || dx === 0 || x1 > x2 || y1 > y2) {
        return;
    }    

    let points = [],
        lines = [],
        fns1 = [],
        fns2 = [];

    fns
        .forEach((o) => {
            let [f, color] = o;
            for (let x = x1; x <= x2; x += dx) {
                let y = f(x);

                points.push([x, y, color]);
            }
        });

    fns1
        .forEach((o) => {
            let [f, color] = o;
            
            lines.push([x1, f(x1), x2, f(x2), color]);
        });
    
    fns2
        .forEach((o) => {
            let [f, color] = o;
            for (let x = x1; x <= x2; x += dx0) {
                let g = f(x);
                lines.push([x1, g(x1), x2, g(x2), color]);
            }
        });
    
    let xscale = d3.scaleLinear()
        .domain([x1, x2])
        .range([padding, width - padding]);
    let yscale = d3.scaleLinear()
        .domain([y1, y2])
        .range([height - padding, padding]);

    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('line')
        .data([[x1, 0, x2, 0], [0, y1, 0, y2]].concat(lines))
        .enter()
        .append('line')
        .attr('x1', (d) => xscale(d[0]))
        .attr('y1', (d) => yscale(d[1]))
        .attr('x2', (d) => xscale(d[2]))
        .attr('y2', (d) => yscale(d[3]))
        .attr('stroke', (d) => d[4] || 'black');

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

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

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

    [fns, fns1, fns2].forEach((fs) => p(fs.join('\n')));
};

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







1 コメント :

Unknownさんのコメント...


Gclub Online games that players to pay attention to play every day.



Gclub Gambling Online Online casino games. Online gambling, gambling, crabs, tigers, poker, online poker, slots, online raffles, blackjack, roulette, horse racing, Texas Fantasies and other gambling games. Make money for the player every day, not a public holiday. Our online gambling games are only available to gamblers with devices that can connect to the Internet.

It allows the player to enjoy online gambling games at our online casino online service. Our gambling games are all gambling games that bring players to the home of the gambler 24 hours a day. Our gambling games can make money for themselves in a short time. With a player to play gambling with our online casino.

And many of us who come to play our gambling games are fascinated and come to play our gambling games indefinitely. However, when the player wants to make money with gambling games. We encourage you to register as a member of our web 24 hours a day. The web is guaranteed that the player will not miss our games even a single game. Royal1688













コメントを投稿