Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- AuPLa1401. Sastādīt C++ funkciju, kas tuvināti aprēķina ln(1+x) vērtību. Aprēķinu balstīt uz formulas:
- ln(1+x) = x – x2/2 + …+
- (-1)n-1xn/n +…,
- kur -1<x <1 un n = 1, 2, 3, ...
- Aprēķinu vienkāršot, katra nākošā saskaitāmā vērtību iegūstot no iepriekšējā saskaitāmā vērtības.
- Rēķināšanu beigt tad, kad kārtējā saskaitāmā absolūtā vērtība ir kļuvusi mazāka par doto skaitli eps (piemēram, eps=0.001).
- Parādīt, kā šo funkciju izsaukt ar konkrētām argumentu vērtībām.
- **/
- #include <iostream>
- #include <cmath>
- #include "lvfriendly.h"
- using namespace std;
- float ln_tuv(float x, float eps)
- {
- int n=1; float sask=x; float f=x; // Jāievieto formulā skaitļi lai atbilst sākumam rez.
- do
- {
- sask=sask*((-n)*x)/(n+1);
- f=f+sask;
- n++;
- //cout<<"f= "<<f<<" "<<"sask= "<<sask<<" "<<"eps= "<<eps<<endl;
- }
- while(abs(sask)>= abs(eps)); //abs absolutā vērtība
- return f;
- }
- int main()
- {
- float f;
- float x;
- float eps;
- int a;
- do
- {
- cout<<"Ievadiet eps, piemēram 0.001: ";
- cin>>eps; //0.001
- cout<<"Ievadiet x no -1 līdz 1: ";
- do
- {
- cin>>x;
- if (x<-1 || x>1) cout<< "Jūs ievadījāt nepareizu x, vadiet vēlreiz:"<<endl;
- }
- while(-1<x &&x>1);
- f=ln_tuv(x,eps);
- cout<<"Ja x ir "<<x<<" "<<"ln(1+x)="<<f<<endl;
- cout<<"Vai vēlies turpināt? (Y=1 N=0): ";
- cin>>a;
- }
- while(a==1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement