2016年9月7日水曜日

学習環境/開発環境

数学読本〈3〉平面上のベクトル/複素数と複素平面/空間図形/2次曲線/数列 (松坂 和夫(著)、岩波書店)の第10章(新しい数とその表示 - 複素数と複素平面)、10.1(複素平面)、ド・モアブルの公式と複素数のn乗根、問10、11、12、13.を取り組んでみる。

問7.

cos 3 θ+3i cos 2 θsinθ3cosθ sin 2 θi sin 3 θ cos3θ= cos 3 θ3cosθ sin 2 θ sin3θ=3 cos 2 θsinθ sin 3 θ cos 4 θ+4i cos 3 θsinθ6 cos 2 θ sin 2 θ4icosθ sin 3 θ+ sin 4 θ cos4θ= cos 4 θ6 cos 2 θ sin 2 θ+ sin 4 θ sin4θ=4 cos 3 θsinθ4cosθ sin 3 θ cos 5 θ+5i cos 4 θsinθ10 cos 3 θ sin 2 θ10i cos 2 θ sin 3 θ+5cosθ sin 4 θi sin 5 θ cos5θ= cos 5 θ10 cos 3 θ sin 2 θ+5cosθ sin 4 θ sin5θ=5 cos 4 θsinθ10 cos 2 θ sin 3 θ sin 5 θ

問11.

1=cos2kπ+isin2kπ 1 1 4 =cos 2kπ 4 +isin 2kπ 4 =cos kπ 2 +isin kπ 2 =1,i,1,i 1 1 6 =cos 2kπ 6 +isin 2kπ 6 =cos kπ 3 +isin kπ 6 =1, 1 2 + 3 2 i, 1 2 + 3 2 i,1, 1 2 3 2 i, 1 2 3 2 i

問12.


  1. 1+i= 2 ( cos π 4 +isin π 4 ) ( 1+i ) 1 2 = 2 1 4 ( cos π 4 +2kπ 2 +isin π 4 +2kπ 2 ) = 2 1 4 ( cos( π 8 +kπ )+isin( π 8 +kπ ) )

  2. i=cos π 2 +isin π 2 i 1 3 =cos π 2 +2kπ 3 +isin π 2 +2kπ 3 =cos( π 6 + 2kπ 3 )+isin( π 6 + 2kπ 3 ) = 3 2 + 1 2 i, 3 2 + 1 2 i,i

  3. 2+2 3 i=2( 1+ 3 i ) =4( cos 2π 3 +isin 2π 3 ) ( 2+2 3 ) 1 4 = 4 1 4 ( cos 2π 3 +2kπ 4 +isin 2π 3 +2kπ 4 ) = 2 ( cos( π 6 + kπ 2 )+isin( π 6 + kπ 2 ) )

  4. 1=cosπ+isinπ ( 1 ) 1 5 =cos π+2kπ 5 +isin π+2kπ 5 =cos( π 5 + 2kπ 5 )+isin( π 5 + 2kπ 5 )

問13.

( ω n 1 )( ω 2n + ω n +1 )= ω 3n 1 n=3k ω 2n + ω n +1=1+1+1=3 n3k ω 2n + ω n +1= ω 3n 1 ω n 1 =0

問12の図示について。

number.js、D3.js を利用。

JavaScript

コード(Emacs)

(function () {
    'use strict';
    var svg,
        width = 600,
        height = 600,
        padding = 50,
        min = -2,
        max = 2,
        xscale,
        xaxis,
        yscale,
        yaxis,
        points = [],
        mag,
        arg,
        c,
        k,

        complexFromMagArg;

    complexFromMagArg = function (mag, arg) {
        var real = mag * Math.cos(arg),
            imag = mag * Math.sin(arg);

        return new Complex(real, imag);
    };
    mag = Math.pow(2, 1/4);
    arg = Math.PI / 8;
    for (k = 0; k < 4; k += 1) {
        c = complexFromMagArg(mag, arg + k * Math.PI);
        points.push([c.getReal(), c.getImag(), 'red']);
    }
    mag = 1;
    arg = Math.PI / 6;
    for (k = 0; k < 3; k += 1) {
        c = complexFromMagArg(mag, arg + k * 2 * Math.PI / 3);
        points.push([c.getReal(), c.getImag(), 'green']);
    }
    mag = Math.sqrt(2);
    arg = Math.PI / 6;
    for (k = 0; k < 4; k += 1) {
        c = complexFromMagArg(mag, arg + k * Math.PI / 2);
        points.push([c.getReal(), c.getImag(), 'blue']);
    }
    mag = 1;
    arg = Math.PI / 5;
    for (k = 0; k < 5; k += 1) {
        c = complexFromMagArg(mag, arg + k * 2 * Math.PI / 5);
        points.push([c.getReal(), c.getImag(), 'brown']);
    }
    xscale = d3.scaleLinear()
        .domain([min, max])
        .range([padding, width - padding]);
    yscale = d3.scaleLinear()
        .domain([min, max])
        .range([height - padding, padding]);
    xaxis = d3.axisBottom().scale(xscale);
    yaxis = d3.axisLeft().scale(yscale);

    svg = d3.select('#graph0')
        .append('svg')
        .attr('width', width)
        .attr('height', height);

    svg.selectAll('circle')
        .data(points)
        .enter()
        .append('circle')
        .attr('cx', function (d) {
            return xscale(d[0]);
        })
        .attr('cy', function (d) {
            return yscale(d[1]);
        })
        .attr('r', 5)
        .attr('fill', function (d) {
            return d[2];
        });

    svg.append('g')
        .attr('transform', 'translate(0, ' + (height / 2) + ')')
        .call(xaxis);
    svg.append('g')
        .attr('transform', 'translate(' + (width / 2) + ', 0)')
        .call(yaxis);
}());

0 コメント:

コメントを投稿