PDA

View Full Version : سوال: حل معادلات و دنباله هاي رياضي



saeedenferadi
چهارشنبه 08 اردیبهشت 1389, 19:01 عصر
سلام از دوستان تقاضای یک کمک داشتم من میخوام کد یکی از دنباله های زیر رو بنویسم احتیاج به کمک دارم اگر کسیام کد این برنامه هارو داره برام بزاره ممنون میشم
1-با دریافت xمقدار sinxرا باتوجه به دنباله ی زیر بدست اورید
sin x=x-x^3/3!+x^5/5!-x^7/7!+...x
2-با دریافت xمقدار cosxرا باتوجه به دنباله ی زیر بدست اورید

cos x=x-x^2/2!+x^4/4!-x^6/6!+...........x

Pooria121
پنج شنبه 09 اردیبهشت 1389, 08:29 صبح
تا اونجایی که من میدونم شما اگر از سری برای جواب استفاده کنید، باید یک N تعیین کنید، چون این سری ها تا بینهایت میرن ولی من یک Pusedocode برای حل sinx میزارم خودت تغییر بده.




int main(){
long result = x - sinx(x);

}

long sinx(long x,long index){

if(index == 0) return 0;
else{
int factor = (index * 2) + 3;
return x ^ (factor / fact(factor)) + sinx(x,index-1);
}
}

long fact(long i){
if(i <= 1) return 1;
else return i * fact(i-1);
}


ساختارش رو شبیه به C نوشتم که درکش راحت باشه، ولی باید تغییر بده تا اجرا شه

saeedenferadi
پنج شنبه 09 اردیبهشت 1389, 15:48 عصر
ممنون ولی من بازهم متوجه نشدم

Amir 2010a
پنج شنبه 09 اردیبهشت 1389, 23:45 عصر
تابع Sin و Coos را میتوانید بوسیله سری مکلورن بدست بیارین فرمول آن مطابق زیر است



Sin(X) = ∑(-1)^n (X^2n+1)/(2n+1)!




Cos(X) = ∑(-1)^n(X^2n)/(2n)!

مقدار n رو شمارنده حلقه در نظر بگبرین مقادیری که بدست میاد بر حسب رادیان است بعدا میتونید به درجه هم تبدیلش کنین ( ریاضی2 - معادلاس دیفرانسیل - ریاضیات مهندسی)
برنامه اون هم ساده است من این مشکل رو قبلا داشتن فقط مونده بودم n رو چه مقدار بدم که بسته به دقت مورد نظر برای جواب میتوانید n رو در حلقه به عنوان کانتر از صفر تا هر مقدار مثبت (بینهایت که منظورم حد کران بالای سری است ) مقدار بدین

موفق باشید

saeedenferadi
جمعه 10 اردیبهشت 1389, 11:57 صبح
بازم سلام من تونستم کد برنامه را به زبون cبنویسم حالا یه کمک کوچیک می خواستم تا بتونم به زبانvb.netهم بنویسم.این کدی که من نوشتم

#include <stdio.h>
#include <math.h>
//#include "stdafx.h"

int factorial (int);


int main ()
{
int n, m;
float x,sinx;
printf("input a value for x :");
scanf_s("%f",&x);
//comp_op=sin((double)x);
//printf("computer value: %f",comp_op);


n=1;
sinx=0;
while (n<=4);
{
n =pow(-1,(n-1)*pow(x,(2*(n-1)+1))/factorial(2*(n-1)+1));
sinx +=n;
}
printf("sin%f=%f",x, sin(x));
//scanf_s("%f",&x); return 0;
}
int factorial(int n);

int factorial(int n)
{







int factorial=1;
while(n>0)
{
factorial*=n;
n--;
}
return factorial;
}