ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2013/06/21
    مشهد
    115
    0

    تبدیل یک رشته به تابع برای حل در متلب

    ضمن عرض سلام به دوستان
    من یک تابع میخوام توسط دستور fsolve حل کننم، ولی به دلیل طولانی بودن تابع ورودی و عدم امکان تابپ، مجبور شدم به صورت رشته تابع بسازم، به این شکل یک ام فایل دارم:
    [code=matlab]
    function F = matrix(v)
    M=[];
    for d=1:9
    A=sprintf('3*v(%d)-v(%d+1)- 3;',d,d);
    M=vertcat(M,A);
    end
    B=sprintf('2*v(%d)-v(%d+1)-10;',d,d);
    M=vertcat(M,B);
    F=[M];
    end
    [/code]
    ( البته d تا 200 قراره بره، چون اجراش خیلی طولانی میشد، اینجا خلاصه نوشتم)
    F تابع منه که قراره حل بشه و حالا از نوع string هست.
    ( یه دستگاه معادلات 200 متغیره و 200 مجهول است که میخوام با دستور fsolve حل کنم. )
    حالا مشکل من اینجاست وقتی برای اجرا در Command Window تابع فراخوانی میکنم
    [code=matlab]
    [x,fval] = fsolve(@matrix,ّF0) % Call solver
    [/code]
    به دلیل string بودن F اجرا نمیشه.
    چجوری باید این تبدیل انجام بدم؟
    از سیمبول هم نمیشه استفاده کرد، چون v(1) v(2) v(3) و .... دارم.
    واقعا ممنون میشم کمکم کنید. خیلی مهمه برام
  2. #2
    2007/06/06
    229
    1

    پاسخ : تبدیل یک رشته به تابع برای حل در متلب

    کد:
    function F = matrix1(x) ;
    for d=1:200
      A(d,:)=3*x(d)-x(d+1)- 3;
    end
    A(d+1,:)=2*x(d)-x(d+1)-10;
    F=A;
    کد:
     [x,fval] = fsolve(@matrix1,x0
    در ضمن شما چون عادلاتتون خطیه بهتری ماتریسی حل کنید
  3. #3
    2013/06/21
    مشهد
    115
    0

    پاسخ : تبدیل یک رشته به تابع برای حل در متلب

    نقل قول نوشته اصلی توسط naser1363
    کد:
    function F = matrix1(x) ;
    for d=1:200
      A(d,:)=3*x(d)-x(d+1)- 3;
    end
    A(d+1,:)=2*x(d)-x(d+1)-10;
    F=A;
    کد:
     [x,fval] = fsolve(@matrix1,x0
    در ضمن شما چون عادلاتتون خطیه بهتری ماتریسی حل کنید
    مهندس عزیز دست گلت درد نکنه واقعا ..
    معالاتم یکم پیچیده شده از نظر حجم داره اذیتم میکنه ...
    داخل ام فایل اصلیم جواب نداد، ام فایل میزارم روش توضیح میدم، ممنونت میشم بتونی گرهشو باز کنی.
    [code=matlab]
    function F =v(Ven)
    load Ven
    load I_block
    Time=I_Block(1,;
    i=200;
    % IN THE NAME OF GOD
    %Vn_dot=((d/4*PI)*((Vn(n-1)-2*Vn(n)+Vn(n+1))/(delta_x)^2 + (Ve(n-1)-2*Ve(n)+Ve(n+1))/(delta_x)^2)- Iin )/Cm;
    %Iin(n,t)=gna*(m^3)*h*(V(n,t)-vna)+gk*(N^4)*(V(n,t)-vk)+gl(V(n,t)-vl);
    % T is the temperature insted of sentigerad
    T=18.5;
    q=3^((T-6.3)/10);
    % am=q*((2.5-0.1*V(n,t))/(exp(2.5-0.1*V(n,t))-1));
    % bm=q*4*exp(-1*V(n,t)/18);
    % ah=q*0.07*exp(-1*V(n,t)/20);
    % bh=q*(1/(exp(3-0.1*V(n,t))+1));
    % an=q*((0.1*(1-00.1*V(n,t)))/(exp(1-0.1*V(n,t))-1));
    % bn=q*0.125*exp(-1*V(n,t)/880);
    %
    % % inital value in V=0 & 18.5 degree of sentigrad :
    % if(V==0)
    % m=0.053;
    % h=0.596;
    % N=0.318;
    % end
    %
    % m_dot= am*(1-m) - bm*m;
    % h_dot= ah*(1-h)-bh*h;
    % N_dot= an*(1-N)-bn*N;

    gna= 12; % Ohm.m^2
    gk= 3.6; % Ohm.m^2
    gl= 0.03;% Ohm.m^2
    vna= 0.115; % Vlolt
    vk= -0.012; % Vlolt
    vl= 0.010589; % Vlolt

    d=1*10^(-6); % insted of meter
    PI=0.345; % insted of Ohm.m
    Cm= 1*10^(-2); % F/m^2
    delta_x= 0.2*10^(-3); % delta X insted Of meter For 1um diameter of unmiulinet axon
    simple_rate=1*10^(-5); %Simple rate Of I_Block Generator

    %for t=2: size(Time,2)
    t=2;
    %for t=2:140
    for n=1:i
    if t==2
    % inital value in V(n,0) & 18.5 degree of sentigrad
    m(n,t-1)=0.053;
    h(n,t-1)=0.596;
    N(n,t-1)=0.318;
    V(n,t-1)=0; % Megdare avalie tamamie Block ha =0
    V(n+1,t-1)=0; % Megdare avalie tamamie Block ha =0
    end

    if n==1 % First Block
    V(n,t) = ((((d/4*PI)*(((-1*V(n,t)+V(n+1,t))/(delta_x)^2) + ((-1*Ven(n,t)+Ven(n+1,t))/(delta_x)^2))- gna*(m(n,t-1)^3)*h(n,t-1)*(V(n,t)-vna)+gk*(N(n,t-1)^4)*(V(n,t)-vk)+gl*(V(n,t)-vl))/Cm)*simple_rate)+V(n,t-1);
    end

    if (1<n)&&(n<i) % Mide Blocks
    V(n,t) = ((((d/4*PI)*(((V(n-1,t)-2*V(n,t)+V(n+1,t))/(delta_x)^2) + ((Ven(n-1,t)-2*Ven(n,t)+Ven(n+1,t))/(delta_x)^2))- gna*(m(n,t)^3)*h(n,t)*(V(n,t)-vna)+gk*(N(n,t-1)^4)*(V(n,t)-vk)+gl*(V(n,t)-vl))/Cm)*simple_rate)+V(n,t-1);
    end

    if n==i % Last Block
    V(n,t) = ((((d/4*PI)*(((V(n-1,t)-1*V(n,t))/(delta_x)^2) + ((Ven(n-1,t)-1*Ven(n,t))/(delta_x)^2))- gna*(m(n,t-1)^3)*h(n,t-1)*(V(n,t)-vna)+gk*(N(n,t-1)^4)*(V(n,t)-vk)+gl*(V(n,t)-vl))/Cm)*simple_rate)+V(n,t-1);
    end

    am(n,t)=q*((2.5-0.1*V(n,t))/(exp(2.5-0.1*V(n,t))-1));
    bm(n,t)=q*4*exp(-1*V(n,t)/18);
    ah(n,t)=q*0.07*exp(-1*V(n,t)/20);
    bh(n,t)=q*(1/(exp(3-0.1*V(n,t))+1));
    an(n,t)=q*((0.1*(1-00.1*V(n,t)))/(exp(1-0.1*V(n,t))-1));
    bn(n,t)=q*0.125*exp(-1*V(n,t)/880);

    m(n,t)= ((am(n,t)*(1-m(n,t-1)) - bm(n,t)*m(n,t-1))*simple_rate)+m(n,t-1);
    h(n,t)= ((ah(n,t)*(1-h(n,t-1)) - bh(n,t)*h(n,t-1))*simple_rate)+h(n,t-1);
    N(n,t)= ((an(n,t)*(1-N(n,t-1)) - bn(n,t)*N(n,t-1))*simple_rate)+N(n,t-1);

    end
    F=A;
    %end
    %plot(1:1:140,V(1,);
    %mesh(V);
    end[/code]
  4. #4
    2013/06/21
    مشهد
    115
    0

    پاسخ : تبدیل یک رشته به تابع برای حل در متلب

    دارم یه پارامتر دو متغیره حل میکنم V(n,t) که n از 1 تا 200 تغییر میکنه در حلقه for داخلی و بعد که حلقه تمام شد و به اضای اون t مشخص ، در حلقه for خارجی مقدار t یک واحد اضافه میشه تا 1000 بار.

    خط 57 - 61 - 65 این معادلات v نوشتم.

    و همزمان با حل اون مقادیر v ، برای محاسبه v مرحله بعد، باید یه سری پارامتر دیگه محاسبه بشه
    خط 75 - 76 -77

    چیکار کنم؟
    اگه پیشنهاد شما ماتریسی روش حلشم بگید لطفا
    واقعا سپاس از وقتی که میزاری دوست عزیز
  5. #5
    2007/06/06
    229
    1

    پاسخ : تبدیل یک رشته به تابع برای حل در متلب

    الان مجهولات چی هستند؟ معلومات کدامند؟
  6. #6
    2013/06/21
    مشهد
    115
    0

    پاسخ : تبديل يک رشته به تابع براي حل در متلب

    نقل قول نوشته اصلی توسط naser1363
    الان مجهولات چي هستند؟ معلومات کدامند؟
    مجهولات v(n,t) هستند که به صورت خلاصه بخوام بنويسم اين شکلي ميشه:
    v(1,=0;
    v(:,1)=0;
    a=2; b=3;
    for t=2:1000
    for n=2:200
    v(n,t)= (((v(n-1 ,t) _2*v(n,t)+v(n +1,t))+a)*b)+v(n,t-1);
    end
    end
  7. #7
    2007/06/06
    229
    1

    پاسخ : تبدیل یک رشته به تابع برای حل در متلب

    همین معادله ساده شده رو خودتون برای n برابر دو و سه و t برابر دو بنویسید. بنظرم تعداد مجهولات بیشتر از معادلاته
نمایش نتایج: از 1 به 7 از 7

موضوعات مشابه

  1. تابع تبدیل عدد به رشته
    توسط bah69man در انجمن NXP
    پاسخ: 11
    آخرين نوشته: 2013/08/26, 13:39
  2. سئوال درمورد تابع تبدیل در متلب
    توسط hamalous در انجمن Matlab
    پاسخ: 1
    آخرين نوشته: 2012/11/08, 23:14
  3. تابع تبدیل بایت به عکس در متلب
    توسط rreyhanehh در انجمن Matlab
    پاسخ: 3
    آخرين نوشته: 2012/08/07, 11:51
  4. نرم افزاری برای استخراج تابع تبدیل یک سیستم ...
    توسط aminnima2 در انجمن آموزش نرم افزارهاي آناليز و شبيه ساز
    پاسخ: 10
    آخرين نوشته: 2012/02/26, 01:00
  5. راهنمایی برای تابع تبدیل
    توسط hamid256 در انجمن Matlab
    پاسخ: 4
    آخرين نوشته: 2010/12/31, 12:47

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •