• 締切済み

C++言語について

ファイルから数値を読み込み、ベクトルの内積を計算するということに挑戦しています c0~c3の4つのベクトルから、いくつかを選びたし合わせたxを考える そのxをパターンベクトルに分解するプログラムを作成 R=x・c0 を全てのc0~c3まで行い、xがどのパターンベクトルからできているかを調べる と言う問題です どなたか分かる方がいたら、教えてください

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

(1) C++でベクトル演算する方法はわかる。パターンベクトルに分解する方法がわからない。 (2) (紙とエンピツとで)パターンベクトルに分解する方法はわかる。C++で計算する方法がわからない (3) (1),(2)ともわからない のどれですか? 例えば、「C++ ベクトル演算 ライブラリ」で検索すると、複数のライブラリが見つかります。 中には無料のものがあります。 これらを使うと、机上で数式を書くような感覚でベクトル演算を実行できます。

関連するQ&A

  • c言語教えてください

    C言語のBCC Developerで、「二つの三次元ベクトルの内積を計算する関数を作成する」をつくってもらえませんか?

  • C言語ベクトルの内積計算について

    以下に示すベクトルx,yの内積を算出するプログラムを作成してください。ベクトルは配列として扱い、変数はすべてint型を用いて下さい。また、内積の算出には、void型関数を使用し、算出結果はコマンドライン上に出力すること。 x=(1,2,3),y=(5,6,7)

  • C言語教えてください。

    (1)二次方程式y=a*x*x+b*x+cについて、a=1.0,b=2.0,c=3.0として、x=1.1,2.2,3.3,4.4のときのyをもとめる計算を行い、式と係数値とxと対応するyの値を表示するプログラムを作成せよ。 (2)xを与えて、xの2乗、3乗を計算し、xと対応する結果を表示するプログラムを作成せよ。なお、x=3,5,7,9とする。

  • C言語のプログラムに関することで質問です。

    C言語のライブラリを利用したプログラムのことで質問なのですが、座標xとyの成分から、ベクトルの角度(t)と大きさ(r)を求めるプログラムを作りました。しかし、このままのプログラムだと、ある場合のときに限り、正しい値が返されなくなるらしいのですが、それはどのような場合で正しい値が返されなくなってしまうのかを教えてください。また、正しい値がでるようにするにはどこをどう直したらよいのでしょうか? 自分でも考えてみたのですが、分からず困っています。分かる方どうかよろしくお願いいたします。 #include <stdio.h> #include <stdlib.h> #include <math.h> #define square(x) ((x) * (x)) //ベクトルの角度θを返す関数 double theta(double x, double y) { return atan(y / x); } //ベクトルの大きさを返す関数 double radius(double x, double y) { return sqrt(square(x) + square(y)); } int main(int argc, char **argv) { double x, y; //x, yは座標 double t, r; //t, rは極座標 if(argc == 3 && (x = atof(argv[1])) && (y = atof(argv[2]))) { t = theta(x, y);  //極座標tを計算 r = radius(x, y); //極座標rを計算   //ベクトルの角度と大きさを表示 printf("t = %f, r = %f\n", t, r); } return 0; }

  • C言語の学習法について

    こんにちは。私は大学二年生で今授業でC言語を学んでいます。 内容は数値計算を行っております。(二分法とかガウス消去法とか) 授業体系としては、プログラムの作成をするというものなのですが、私はプログラムを作るのが苦手です。 なので、自己学習をしようと思うのですが、効果のある勉強法とはどういったものなのでしょうか? プログラムについては自分で手を動かした数だけ上達していくといわれているのでなにか作成しようと思っています。 そこでなのですが 数値計算でアルゴリズムが頭に浮かんでこないというのは、もともとの知識不足なのだからゲーム(じゃんけん)などのプログラムを作る参考書をやるべきだ。 数値計算という内容に慣れていないのが原因だから数値計算に特化した参考書をすすめていくべきだ。 この二つの考えがあります。どちらにするべきでしょうか? プログラムを見ればアルゴリズムが理解できるのですが、 その逆、 つまり、問題からどういったアルゴリズムを作成し、それをどうプログラムとして作るのか。ができません。 まとまりのつかない文章で申し訳ございません。どんな些細なことでもいいのでなにかありましたら是非ともアドバイスよろしくお願いします。

  • C言語で2.5で割った余りを求めるには?

    C言語で、xを2.5で割り切れる数値に直すプログラムを作成したいです。つまり5.3なら5、8.1なら7.5というように。これ、結構簡単かなと思ったのですが、floorは2.5だと使えないし、いまいち型宣言も理解していないので、うまくいきません。また%を使う方法もなぜかうまくいきませんでした。どなたか、正しいプログラムを教えてください。もちろん型宣言も含んでいると助かります。

  • プログラミングC言語

    プログラミングC言語の問題で、 「ベクトルの内積を用いて、2つのベクトルの成す角度を求めるプログラムを作成せよ。」 という問題をやっていて、以下の画像のような答えになるのですが、上手くいきません。 どのようにすればいいのでしょうか? 作ったソースコード #include<stdio.h> #include<math.h> double naiseki(int *vecterA, int *vecterB) { double rad, deg; rad = acos( (vecterA[0]*vecterB[0] + vecterA[1]*vecterB[1]) / ( sqrt((double)(vecterA[0]*vecterA[0] + vecterA[1]*vecterA[1])) * sqrt((double)(vecterB[0]*vecterB[0] + vecterB[1]*vecterB[1])) ) ); deg = rad/3.141592*180; return deg; } int main(void) { double va[2]; double vb[2]; printf("v1_x:"); scanf("%lf", &va[0]); printf("v1_y:"); scanf("%lf", &va[1]); printf("v2_x:"); scanf("%lf", &vb[0]); printf("v2_y:"); scanf("%lf", &vb[1]); puts("内積から求めたベクトルの角度は"); printf("%f",naiseki(va,vb)); puts("です。"); return(0); } 最後のnaiseki(va,vb)のところで互換性がありませんと でてしまいます。 double naiseki のソースコードはこのままでプログラムが 動くようにしてほしいです。 よろしくお願いします!

  • C言語で内積、、、わかりません。

    C言語で内積、、、わかりません。 /* double配列 vecter1 のデータと double配列 vecter2 のデータ、 および、 vecter1,vecter2 の「要素数」を関数 naiseki_f に 引数として渡す。 関数 naiseki_f 内では、 vecter1 と vecter2 とによる 「double型の内積値」を計算し、その結果を戻り値とするものである。 main関数内では、関数naiseki_fで計算した「内積値」を printf表示させるプログラムを作成せよ。 */ /* 配列の合計を求める */ #include<stdio.h> double naiseki_f(const int vecter1[],const int vecter2[]); int main(void) { int i,kosuu=10; double vecter1[10]={0.5,0.48,0.54,0.32,0.32,0.46,0.88,0.45,0.90,0.23}; double vecter2[10]={0.24,0.34,0.26,0.78,0.43,0.67,0.88,0.95,0.45,0.75}; double a; a=naiseki_f(vecter1,vecter2); /* ベクトルの内積計算 */ for(i=0; i<kosuu; i++) printf("%5.3f %5.3f\n",vecter1[i],vecter2[i]); printf("内積=%8.3f\n",a); return (0); } /* 内積を計算 */ double naiseki_f(const int vecter1[],const int vecter2[]) { int i; double ###; ############; for(i=0 ; i<10 ; i++) ################# ; return (######); } かれこれ2時間くらい悩んでいるんですが 内積をどうやって計算するのか資料をみてもわかりません、、。 main関数内は自分が入力した部分もあるので多少間違ってるかもしれません。 よろしくお願いします。

  • c言語の多項式のプログラミングについて

    学校のc言語の課題で 下記の多項式を、 x0=0, x1=1.5, h=0.1の条件の下に計算するプログラムを作成せよ。 s(x)=1-2x+3x^2-4x^3+5x^4-6x^5 という問題がだされたのですがわからないので教えてください。

  • C言語プログラミングの問題がわかりません。

    問題 1から1000までの整数で、13を省いた数値を加算するプログラムを作成せよ。つまり 1+2+3+4+5+6+7+8+9+10+11+12+14......+998+999+1000 を計算する次のプログラムで?????の部分として適切なものを入れよ。 画像にありますのでどうか回答をお願いいたします

専門家に質問してみよう