program-calkowanie metoda simpsona

0

Pisze wlasnie program w C# (okienkowy) ktory ma liczyc calki metoda simpsona. robilem juz 2 textboxy w ktorych podaje koniec i poczatek przedzialu oraz 3 textbox w ktorym podaje liczbe punktow podzialowych. wszystko dziala ok jesli mam w kodzie zadeklarowana funkce ktora mam liczyc. nie moge sobie poradzic z opcja zeby to uzytkownik w 4 textbox mogl wpisac dowolne funkcje np 2x4+3x2+4 i dla tej funkcji program by liczyl. jak to zrobic? Opcjonalnie musze tez wykonac wykres ale nie mam pojecia jak sie za to zabrac (pewnie bedzie trzeba zgraph czy czegos podobnego uzyc?) Bardzo bylbym wdzieczny za pomoc w tym temacie. moze ktos ma gotowy taki projekt i moglby go tu przedstawic? na google jest sporo o tej metodzie ale w aplikacjach konsolowych,dodam ze z c# jestem na etapie poczatkujacym.

0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        double f(double x)
        {
            return (x * x + 2 * x);
           
        }
        public Form1()
        {
            InitializeComponent();
        }

       

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void koniecToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void autorzyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AboutBox1 ab = new AboutBox1();
            ab.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double xp;
            double xk;
            int n;
            //string f;

            double s;
            double st;
            double x;
            int i;
            double dx;


            xp = Convert.ToDouble(textBox1.Text);
            xk = Convert.ToDouble(textBox2.Text);
            n = Convert.ToInt32(textBox3.Text);
            //f=textBox4.Text;

            dx = (xk - xp) / n;
            s = 0;
            st = 0;
            for (i = 1; i <= n; i++)
            {
                x = xp + i * dx;
                st = st + f(x - (dx / 2));
                if (i < n) s = s + f(x);
            }
            s = dx / 6 * (f(xp) + f(xk) + 2 * s + 4 * st);


            //MessageBox.Show(s.ToString());


            textBox5.Text = s.ToString();
           

        }
    }
}

tyle mam na razie, pomoglby mi ktos moze dopisac reszte?

0

Temat stary jak świat ale pozwolę sobie odświeżyć, bo może komuś się przyda potmnemu (metoda simpsona w C++): http://haker.edu.pl/2014/01/07/metoda-simpsona-calka-oznaczona-algorytm-w-c/

1 użytkowników online, w tym zalogowanych: 0, gości: 1