0

No.5 Lab 4

Posted by ေမၿမဳိ့သား on 12:42 PM in
Qus==>> b) Методом деления отрезка пополам и методом итераций найти
приближенное значение корня уравнения  x4 + 2x3 – x – 1 = 0 на интервале [0, 1]. Абсолютная погрешность не превышает 0.00015. Сравнить методы вычисления.

#include "stdafx.h"
#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();
}

0 Comments

Post a Comment

Copyright © 2009 ~ ♥ ရည္ညႊန္းရာ ♥ ~ All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.