Hej,
mam za zadanie napisać program, w którym zaimplementuję wzór:
W=f(x)+const*Integral(f2(V))dx
Chodzi tutaj o całkowanie np. metodą prostokątów. Mój problem polega na tym, że w funkcji wykonującej całkowanie nie wiem jak uwzględnić to, że x przyjmuje różne wartości (od -80, do 20), a całkujemy po t. Chciałabym, żeby program działał w pętli, gdzie iteracja byłaby po t, np. od 0 do 35.
Mój kod programu:
#include <iostream>
#include <math.h>
using namespace std;
double f2(double V){
double vs=0;
if(V<=-23){
vs=0;
}
if(V>-23){
vs= 2*pow(10,-7)*pow(V,6)-9*pow(10,-6)*pow(V,5)-4*pow(10,-4)*pow(V,4)+0.0088*pow(V,3)+0.1685*pow(V,2)-4.4818*V-64.826;
}
return vs;
}
double f(double x){
double a=0;
if(x<=5){
a=0;
}
if(x>=5 && x<=10){
a=(x-5)/5;
}
if(x>=10 && x<=15){
a=1;
}
if(x>=15 && x<=20){
a=(20-x)/5;
}
if(x>=20){
a=0;
}
return a;
}
float calkowanie(float xp, float xk, int n){
float calka;
float h;
h=(xp-xk)/(float)n;//krok
calka=0;
for(int i=1; i<=n; i++){
calka+=fun2(xp+i*h)*h;
}
return calka;
}
int main(){
double vv=0;
double stala=7;
for(int i=0; i<50; i++){
vv=f(i)+stala*calkowanie(0,30,10);
cout<<vv<<endl;
return 0;
}
Proszę o pomoc - jak zmienić funkcję wykonującą całkowanie/ pętle for tak, aby iterowały się zarówno wartości V jak i x?