W
Whatka
/*Дана функция у= -2*arcsin(х)+3* Ch(х)+1,5.
Найти наибольшее значение функции, если х изменяется от a до b с шагом h.
Результат получить в виде таблицы.
*/
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
double HCos(double x,double p)//Вычисление гиперболического косинуса.
{
int w=1,k=2;
double t=1,s=0;
while (t>p )
{
s=s+t;
t=t*x*x/(w*(w+1));
w=w+2;
}
return s;
}
double Arcsin(double x,double e)//Вычисление арксинуса.
{
int w=1,k=2;
double t=x,r=0;
while(t>e)
{
r=r+t;
t=t*x*x*w/(k*(k+1));
w=w+2;
k=k+1;
}
return r;
}
int main()
{
setlocale(LC_ALL,".1251");
double a,b,h,max,max1,i,e=0.0005,p=0.00000001,s,r,o,l;
do
{
cout <<"Введите начальное a (arcsin [-1,1]) :\n";//Область определения arcsin [-1,1].
cin>>a;
cout <<"Введите конечное b (arcsin [-1,1]) :\n";
cin>>b;
cout <<"Введите шаг h (соответствие с a и :\n";
cin>>h;
}
while((a>1)||(a<-1)||(b>1)||(b<-1)||(h>=1)||(h<=0)||((a=B)&&(h!=0)));//Цикл будет запрашивать значения пока они не будут удовлетворять обл.опр.arcsin
cout<<"___________________________________________________________________________"<<endl;
cout<<" Значение x | Значение функции | Значение стандартных функции |\n";
cout<<"___________________________________________________________________________"<<endl;
//До этой строки всё правильно а дальше не знаю.
i=a;
while (i<=B)
{
s=HCos(i,p);
r=Arcsin(i,e);
o=(-2)*r+3*s+1.5; // значение o, полученное с помощью собственных функций.
l=(-2)*asin(i)+3*cosh(i)+1.5; // значение l, полученное с помощью стандартных функций.
cout<<" "<<i;
cout<<" "<<o;
cout<<" "<<l<<endl;
cout<<"___________________________________________________________________________"<<endl;
i=i+h;
}
//Дальше тоже точно правильно.
i=a+h;
max =(-2)*asin(a) + 3*cosh(a)+1.5;
max1 =(-2)*asin(i) + 3*cosh(i)+1.5;
if (a!=B)
{
for(i;i<=b;i=i+h)
{
if(max<max1)
max=max1;
}
}
cout<<"Максимальное значение при x:"<<a<<endl;
cout<<"Максимальное значение при стандартных функциях:"<<max<<endl;
i=a+h;
s=HCos(a,p);
r=Arcsin(a,e);
max =(-2)*r + 3*s+1.5;
s=HCos(i,p);
r=Arcsin(i,e);
max1 =(-2)*r + 3*s+1.5;
if (a!=B)
{
for(i;i<=b;i=i+h)
{
if(max<max1)
max=max1;
}
}
cout<<"Максимальное значение при собственных функциях:"<<max<<endl;
return (0);
}
Найти наибольшее значение функции, если х изменяется от a до b с шагом h.
Результат получить в виде таблицы.
*/
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
double HCos(double x,double p)//Вычисление гиперболического косинуса.
{
int w=1,k=2;
double t=1,s=0;
while (t>p )
{
s=s+t;
t=t*x*x/(w*(w+1));
w=w+2;
}
return s;
}
double Arcsin(double x,double e)//Вычисление арксинуса.
{
int w=1,k=2;
double t=x,r=0;
while(t>e)
{
r=r+t;
t=t*x*x*w/(k*(k+1));
w=w+2;
k=k+1;
}
return r;
}
int main()
{
setlocale(LC_ALL,".1251");
double a,b,h,max,max1,i,e=0.0005,p=0.00000001,s,r,o,l;
do
{
cout <<"Введите начальное a (arcsin [-1,1]) :\n";//Область определения arcsin [-1,1].
cin>>a;
cout <<"Введите конечное b (arcsin [-1,1]) :\n";
cin>>b;
cout <<"Введите шаг h (соответствие с a и :\n";
cin>>h;
}
while((a>1)||(a<-1)||(b>1)||(b<-1)||(h>=1)||(h<=0)||((a=B)&&(h!=0)));//Цикл будет запрашивать значения пока они не будут удовлетворять обл.опр.arcsin
cout<<"___________________________________________________________________________"<<endl;
cout<<" Значение x | Значение функции | Значение стандартных функции |\n";
cout<<"___________________________________________________________________________"<<endl;
//До этой строки всё правильно а дальше не знаю.
i=a;
while (i<=B)
{
s=HCos(i,p);
r=Arcsin(i,e);
o=(-2)*r+3*s+1.5; // значение o, полученное с помощью собственных функций.
l=(-2)*asin(i)+3*cosh(i)+1.5; // значение l, полученное с помощью стандартных функций.
cout<<" "<<i;
cout<<" "<<o;
cout<<" "<<l<<endl;
cout<<"___________________________________________________________________________"<<endl;
i=i+h;
}
//Дальше тоже точно правильно.
i=a+h;
max =(-2)*asin(a) + 3*cosh(a)+1.5;
max1 =(-2)*asin(i) + 3*cosh(i)+1.5;
if (a!=B)
{
for(i;i<=b;i=i+h)
{
if(max<max1)
max=max1;
}
}
cout<<"Максимальное значение при x:"<<a<<endl;
cout<<"Максимальное значение при стандартных функциях:"<<max<<endl;
i=a+h;
s=HCos(a,p);
r=Arcsin(a,e);
max =(-2)*r + 3*s+1.5;
s=HCos(i,p);
r=Arcsin(i,e);
max1 =(-2)*r + 3*s+1.5;
if (a!=B)
{
for(i;i<=b;i=i+h)
{
if(max<max1)
max=max1;
}
}
cout<<"Максимальное значение при собственных функциях:"<<max<<endl;
return (0);
}