2015年8月23日日曜日

Levenberg-Marquardt法について

以前にC++ Library Eigen を利用する簡単な手順を書きましたが,ある問題に対する非線形最適化を行うことを目的とし,その準備としてEigen の利用方法を調べていました。

今回は信頼領域法のひとつであるLevenberg-Marquardt法を利用します。

Levenberg-Marquardt法については"Wikipedia"に詳しく記載されています。

Eigenを利用した実装方法は「iPhone アプリ研究会」に記載されています。


Eigenの利用メモ

VisualStudioでC++library Eigenを使いたいなと思い,あれこれと苦労した内容を残します。

できてしまえばすごく簡単なことでしたが,参考にした情報の順番がややこしい問題を引き起こしてました。問題のサイトについては伏せて説明します。

WindowsOSから環境変数でパスを貼るのが個人的にすごくキライなだけです。

2015年8月19日水曜日

作業用BGM

作業用BGMに下記サイトをよく利用しています。
 
JAZZ and RAIN
http://jazzandrain.com/vocal_jazz.html

名前のとおり,JAZZと雨の音です。

集中したいときは雨音だけにして流しています。

あとは気分転換にYoutubeを適当に流したりしています。

2015年8月17日月曜日

シールドケーブルの処理

電気関係の実技アビリティが少ないので,取得。

ノイズからケーブル内の信号を守るシールド線。
シールド線をコネクタなどを介して中継する際の注意点とテクニックを習得した。

シールドケーブルの処理
  • 複数ケーブルの場合はシールド線を束ねて一本の線にしてコネクタと接続
  • 同軸ケーブルの場合は外被の上に折り返して被せて,線とつなぎ,コネクタと接続


2015年7月26日日曜日

確率論の勉強(1)

ベイズ推定を利用したアプリケーションを開発する上で,確率論を勉強しはじめました。

あとあと,資料として使えるように測度論から勉強し,内容をPDF形式で保管しています。

まだまだ書きかけの参考文献もロクに書き足してないメモ程度のもの⇒

2015年7月23日木曜日

Dll内のクラス丸ごと利用の注意点

"*.dll"ファイル内のクラスを丸ごと利用しようとした場合,"*.def"ファイルを使った方法では以下の2点が厄介です。
  1. 個別にクラス内関数・変数を"*.def"ファイルに記入する必要がある
  2. クラス内関数・変数の名前は装飾名になってしまう。
 特に,上記2が厄介です。装飾名を調べるために"*.map"ファイルを作成し,ファイル内を探索する必要があり,クラスの規模が大きくなるほど労力も増加します。四則演算のクラス程度でも探すのが面倒と感じました。

ですので,素直に"__declspec(dllexport)"を利用したほうが楽です。 クラスそのものがエクスポートされるので、関数をひとつずつエクスポートする必要がなくなります。

次回はクラスを丸ごとインポートして,利用するプログラムを作成しようと思います。

2015年7月18日土曜日

DLLファイルの利用

今回は,"SayHelloWorld"というプロジェクト名で作成します。

「新しいプロジェクト -> Visual C++ -> Win32 コンソール アプリケーション」を選択し,任意のプロジェクト名を入力し,次へ。「アプリケーションの選択 -> アプリケーションの種類」で,"コンソールアプリケーション"を選択して完了をクリック。

*.dllファイルの利用には4手順必要である。

2015年7月17日金曜日

DLLの作成

DLLを作成し,DLLを読み込んで動作するプログラムを作成する。

今回は,Qtで使用することを前提としています。したがって,"*.libファイル"は同梱できません。したがって,今回は明示的なリンクを採用する。

2015年7月14日火曜日

お酒に纏わる話(1)

台風一過。急に暑い日が続くようになり,喉が,全身が,ビールを求めてやまない季節が到来しました。

私は,のどごしがあまりよくわからないのですがビールは好きです。

ビールを飲むなら,だいたいエビスかプレミアムモルツを飲んでいます。エビスは緑缶が好きだったのですが,最近の青缶も香りと風合いがよく気に入っております。

ただ,ヤッホーブルーイングさんに代表される地ビールを見かければ,迷わずそっちを飲みます。

2015年7月12日日曜日

プログラムのソースコードをブログ上に表示させるテスト

プログラムのソースコードをブログ上に表示させる方法を調査。

HelloWorld.cppを表示するテスト。

7zの紹介

7zは,高圧縮のデータ圧縮形式です。一般に普及しているzipと比べても見た目に違いが分かるくらいに。

ただ,日本での普及率はそこまで高くないです。名前は知ってるけれど,「使っていない」 or 「ファイル形式が*.7zで解答に苦労した」という方が私の周囲にも多いです。

したがって,データのやり取りを行う際にはzip形式が無難です。ただ,"回線速度の遅い" or "データは外部ネットワーク上"という私は,移動時のデータを少しでも小さくして時間を短縮したいと思います。

2015年7月11日土曜日

Peatixの紹介

Peatixは,個人・小規模団体でも利用できる,チケット販売およびイベント運営サービスです。
http://peatix.com/?lang=ja

覗いてみると,小規模で面白そうなセミナーやワークショップがあり,都合がつけば参加したいと思うものがいくつかありました。

ただし,運営側とのやり取りでトラブルになっている以下のようなケースもあるので利用する際はきちんとシステムを把握して余裕をもった行動を心掛ける必要があるみたいです。

http://gatespace.jp/2014/11/10/peatix-hidoi/

以上,こんなサービスもあるんだ,程度のご紹介でした。

Qtのインストール

    公式サイトのトップから入ると,いくつか質問される。質問に答えるとオープンソース版のQtダウンロードページに辿り着く。

以下からダウンロードできる。
http://www.qt.io/download-open-source/

2015年7月11日現在,Windows環境でオープンソース版を利用する場合は"qt-unified-windows-x86-2.0.2-1-online.exe"がダウンロードされた。

オンラインインストーラにしたがってインストールを開始する。

Qtの紹介







Qt(キュート)の概要を紹介する。とはいっても,利用する際に気になるポイントだけをwikipediaから抜粋し,記載した。
QtはC++言語で書かれたアプリケーション・ユーザインタフェース (UI) フレームワークである。
wikipediaより引用(https://ja.wikipedia.org/wiki/Qt)
商用版とオープンソース版があり,今回はオープンソース版をインストールする。

オープンソース版はGPLまたはLGPLが適用される。
GPLおよびLGPLに関する説明は以下のとおり。

ファイルのアップロードのテスト

テストファイルのアップロード

テスト


テスト