私はこのC++プログラムがあります。可変要素を持つC++配列を作成するには?
:あなたはこのプログラムで見ることができるように、私は第二次微分方程式を(私の質問にLaTeXの数式を挿入する方法があるなら、私に教えてください)解決しています#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <cmath>
using namespace std;
double dx2(int t, int x, int dx)
{
return (-9.8*cos(x));
}
int square(int x)
{
return (x*x);
}
double RK4(float t, float x, float dx, float h)
{
double k1, k2, k3, k4, l1, l2, l3, l4, diff1, diff2;
k1 = h*dx2(t,x,dx);
l1 = h*k1;
k2 = h*dx2(t+h/2,x+l1/2,dx+k1/2);
l2 = h*k2;
k3 = h*dx2(t+h/2,x+l2/2,dx+k2/2);
l3 = h*k3;
k4 = h*dx2(t+h,x+l3,dx+k3);
l4 = h*k4;
diff1 = (l1+2*l2+2*l3+l4)/float(6);
diff2 = (k1+2*k2+2*k3+k4)/float(6);
double OUT[] = {diff1, diff2};
return OUT;
}
int main()
{
double diff, t, t0, t1, x, x0, dx, dx0, h, N;
N = 1000;
t0 = 0;
t = t0;
t1 = 10;
x0 = 0;
x = x0;
dx0 = 0;
dx = dx0;
h = (t1 - t0)/float(N);
for(int i = 1; i<=N; i++) {
diff = RK4(t,x,dx,h);
x = x + diff;
t = t + h;
}
cout << diff;
return 0;
}
を運動の単純な振り子の方程式の例である
D2X/DT2 = -9.8 COS(X)
。問題の行は33と34です。その中でOUT配列の最初の要素をdiff1、2番目の要素をdiff2と定義しようとしています。あなたはdouble*
まで減衰double
年代の配列を、帰国していることから、正確に
g++ -Wall -o "example" "example.cpp" (in directory: /home/fusion809/Documents/CodeLite/firstExample)
example.cpp: In function ‘double RK4(float, float, float, float)’:
example.cpp:33:9: error: cannot convert ‘double*’ to ‘double’ in return
return OUT;
^~~
Compilation failed.
'enum'の配列を作成できますか? –
誰かがこのような質問を下げている人は、メモを残すほど親切にしてください。ありがとうございました。経験豊かなC++プログラマーには何が分かりそうかと尋ねていますが、私にとっては問題ないと思います。科学者は必ずしもプログラミング言語を知っているとは限らないことに注意してください。 – iksemyonov
さて、ほとんどのコードは、それが何であれ、問題に無関係であるようです。タイトルと組み合わせると、その質問が何であるかは不明です。 – juanchopanza