この人頭いいなと思ったエピソード

はじめましてこんにちは。
プログラミングでC言語を使っています。
y'=x^2sqrt(y)についてオイラー法で解くプログラミングを作成しているんですが,invalid operandsb to binaryとエラーが出てなかなかできません。
そのプログラミングが下に表すものなんですが
/*euler2.c*/
/* オイラー法 */
/* y'=x^2*sqrt(y) */

#include <stdio.h>
#include <math.h>

int main()
{
int i;
int N=10000; /* 区間の分割数 */
double a=0.0,b=2.0; /* 区間の指定([0,2]) */
double y0=1; /* 初期値 */
double x,y,h;

h=(b-a)/N; /* 刻み幅の計算 */

x=a; y=y0; /* 初期条件 */

for (i=0;i<N;i++){
★ y=y+x^2*sqrt(y)*h+(2*x*sqrt(y)+x^4/2)/2*h^2;
x=x+h;
printf("%g %g\n",x,y);
}
return 0;
}

★印のあるL21にエラーが出ます。もしどこを直せばよいかわかる方お願いします。
プログラミング初心者のため、不適切な言葉等ありましたらすいません。

A 回答 (2件)

> x^2


pow( x, 2.0 )
――では。あてずっぽうですが。
    • good
    • 0
この回答へのお礼

ありがとうございました。
x*xでやってみました。

お礼日時:2009/05/24 13:05

ですね>#1. C はべき乗の演算子を持ちません.


まあ, 一般には pow だけど 2乗なら素直に掛けた方がいい.
    • good
    • 0
この回答へのお礼

ありがとうございました。
コンパイルできました!

お礼日時:2009/05/24 13:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!