اطلاعیه

Collapse
No announcement yet.

مشکل در استفاده همزمان for و solve

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در استفاده همزمان for و solve

    سلام دوستان
    من یک مشکل با استفاده همزمان تابع for و solve دارم
    فرض کنین که یک متغیر ما با دستور for سوییپ میکنه و ما درون حلقه حداقل یک متغیر دیگه نیز داریم که با تغییرات for اون نیز تغییر می کند.
    تابع مجهول مورد نظر ما در خودش متغیرهای بالا رو داره و قراره با دستور solve جوابش رو بدست بیاریم.
    اگه ماتریسی بنویسیم matlab خطا نشون میده. من در پایین یه مثال ساده رو آوردم:
    clc
    clear all
    sym k;
    b = 1;
    for n = 1:3
    s = n+1;
    O = solve('k^2-s/n'
    out(b,1) = O.k;
    b = b+1;
    end
    out;
    از دوستان کسی هست که بنده رو راهنمایی کنه؟
    سپاس گزارم

    #2
    پاسخ : مشکل در استفاده همزمان for و solve

    سلام
    نمیدونم درست متوجه شدم یا نه، به s و n میخواین مقدار بدین؟

    کد:
    clear
    sym k;
    b = 1;
    for n = 1:3
      s = n+1;
      O = solve(sprintf('k^2-%d/%d',[s n]));
      out(n,:) = O;
    end
    out
    http://www.noandishaan.com/forums

    دیدگاه


      #3
      پاسخ : مشکل در استفاده همزمان for و solve

      ممنونم
      n تویط ما مقدار دهی و سوییپ می شود و s تابعی از n است که طبعا تغیر می کند اما متغیر مورد نظر ما k هستش
      من کدی که شما نوشتین رو دیدم و مشکلم رو برطرف کرد
      حالا اگر معادله اصلیه ما متغیر و ثابت های زیادتری داشته باشه، باز میشه از این فرمت کد استفاده کرد؟
      مثلا اگر معادله مورد نظر بصورت زیر بود:

      a*s)-((f^c)/k)-(b/n)+k^2-s/n
      که در آن
      a = 0.94;
      c = 52;
      f = 2*n-n^2;
      می باشند.
      سپاس گزارم

      دیدگاه


        #4
        پاسخ : مشکل در استفاده همزمان for و solve

        نوشته اصلی توسط orcid
        ممنونم
        n تویط ما مقدار دهی و سوییپ می شود و s تابعی از n است که طبعا تغیر می کند اما متغیر مورد نظر ما k هستش
        من کدی که شما نوشتین رو دیدم و مشکلم رو برطرف کرد
        حالا اگر معادله اصلیه ما متغیر و ثابت های زیادتری داشته باشه، باز میشه از این فرمت کد استفاده کرد؟
        مثلا اگر معادله مورد نظر بصورت زیر بود:

        a*s)-((f^c)/k)-(b/n)+k^2-s/n
        که در آن
        a = 0.94;
        c = 52;
        f = 2*n-n^2;
        می باشند.
        سپاس گزارم
        شدن که میشه، اینجوری هم میتونین بنویسین:
        کد:
        clear
        sym k;
        b = 1;
        for n = 1:3
          s = n+1;
          a = 0.94;
          c = 52;
          f = 2*n-n^2;
          Eq = 'a*s-((f^c)/k)-(b/n)+k^2-s/n';
          O = solve(Eq,'k');
          out(n,:) = subs(O);
        end
        double(out)
        http://www.noandishaan.com/forums

        دیدگاه

        لطفا صبر کنید...
        X