Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main()
- {
- int n; // liczba wezlow
- float xp;
- int option;
- float sum_xi = 0;
- float sum_fi = 0;
- float sum_xi_kw = 0;
- float sum_xifi = 0;
- cout << "Podaj liczbe wezlow: ";
- cin >> n;
- float x[n];
- float y[n];
- cout << "x0" << ": ";
- cin >> x[0];
- cout << "f0" << ": ";
- cin >> y[0];
- for(int i = 1; i < n;) {
- float xi;
- cout << "x" << i << ": ";
- cin >> xi;
- if(xi <= x[i - 1]) {
- cout << "Prosze podawac wezly w kolejnosci rosnacej" << endl;
- } else {
- x[i] = xi;
- cout << "f" << i << ": ";
- cin >> y[i];
- i++;
- }
- }
- cout << "Metoda najmniejszych kwadratow" << endl;
- cout << "1) cwiczenie 2" << endl;
- cout << "2) cwiczenie 4" << endl;
- cout << "Prosze wybrac opcje: ";
- cin >> option;
- float w, w0, w1;
- float a0, a1;
- for(int i = 0; i < n; i++) {
- sum_xi += x[i];
- if(option == 2) {
- y[i] = log(y[i]);
- }
- sum_fi += y[i];
- sum_xi_kw += x[i] * x[i];
- sum_xifi += x[i] * y[i];
- }
- w = (n * sum_xi_kw) - (sum_xi * sum_xi);
- w0 = (sum_fi * sum_xi_kw) - (sum_xifi * sum_xi);
- w1 = (n * sum_xifi) - (sum_xi * sum_fi);
- a0 = w0 / w;
- a1 = w1 / w;
- if(option == 1) {
- cout << "a0: " << a0 << endl;
- cout << "a1: " << a1 << endl;
- cout << "Wielomianix: " << a0 << " "
- << (a1 > 0 ? "+" : "") << a1 << "x" << endl;
- } else if(option == 2) {
- float expa0 = exp(a0);
- float exp1 = exp(a1);
- cout << "Wielomianix: " << expa0
- << "*" << exp1 << "^x" << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement