0
No.5 Lab 4
Posted by ေမၿမဳိ့သား
on
12:42 PM
in
C++ No.5 for 2nd year
приближенное значение корня
уравнения x4 + 2x3 – x – 1 = 0
на интервале [0, 1]. Абсолютная погрешность не превышает 0.00015. Сравнить
методы вычисления.
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
void main()
{
double xt,xg=1.3,eps=0.001,x=5*eps;
int step=0;
while(fabs(x)>=eps)
{
xt=-0.2*(xg*xg*xg*xg+2*xg*xg*xg-xg-1)+xg;
x=xt-xg;
step++;
xg=xt;
}
cout<<"Root equal in row 0,1 is equal \n\n "<<xt<<endl<<"\n\n and receive in step "<<step;
_getch();
}
No.5 Lab 4 a)
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
void main()
{
double x,a=0,b=1,y1,y2,eps=0.001,r,l;
l=a;
r=b;
y1=a*a*a*a+2*a*a*a-a-1;
y2=b*b*b*b+2*b*b*b-b-1;
int n=0;
if(y1*y2>0)
{
cout<<"No root"<<endl;
_getch();
exit(1);
}
do
{
++n;
x=(a+b)/2;
y1=a*a*a*a+2*a*a*a-a-1;
y2=x*x*x*x+2*x*x*x-x-1;
if(y1*y2>0)a=x;
else b=x;
}
while((b-a)>eps);
x=(a+b)/2;
cout<<"Root equal in row "<<l<<","<<r<<" equl "<<x<<endl<<" and receive in step "<<n;
cout<<endl;
_getch();
}
Post a Comment